From 2bdc2a72f166c97bc101813dfd55e9831f395366 Mon Sep 17 00:00:00 2001 From: Daniel Wirtz Date: Thu, 8 Nov 2018 08:04:24 +0100 Subject: [PATCH] Use stack IR when emitting text format (#312) --- examples/game-of-life/build/optimized.wat | 1112 +- examples/game-of-life/build/untouched.wat | 1310 +- examples/i64-polyfill/build/optimized.wat | 1952 +- examples/i64-polyfill/build/untouched.wat | 2011 +- examples/mandelbrot/build/optimized.wat | 527 +- examples/mandelbrot/build/untouched.wat | 645 +- examples/n-body/build/index.asm.js | 2 +- examples/n-body/build/optimized.wat | 2106 +- examples/n-body/build/untouched.wat | 3261 +- examples/pson/build/optimized.wat | 811 +- examples/pson/build/untouched.wat | 1136 +- lib/parse/build/index.wat | 2785 +- lib/parse/index.js | 2 +- lib/parse/index.js.map | 2 +- package-lock.json | 1092 +- package.json | 2 +- src/compiler.ts | 4 +- src/glue/js/binaryen.d.ts | 2 + src/glue/js/index.ts | 2 +- src/module.ts | 9 +- tests/compiler/abi.optimized.wat | 72 +- tests/compiler/abi.untouched.wat | 445 +- tests/compiler/asc-constants.optimized.wat | 6 +- tests/compiler/asc-constants.untouched.wat | 42 +- tests/compiler/assert.optimized.wat | 6 +- tests/compiler/assert.untouched.wat | 225 +- tests/compiler/binary.optimized.wat | 1770 +- tests/compiler/binary.untouched.wat | 7873 +- tests/compiler/builtins.optimized.wat | 1057 +- tests/compiler/builtins.untouched.wat | 5294 +- tests/compiler/call-inferred.optimized.wat | 126 +- tests/compiler/call-inferred.untouched.wat | 140 +- tests/compiler/call-optional.optimized.wat | 292 +- tests/compiler/call-optional.untouched.wat | 330 +- tests/compiler/class-extends.optimized.wat | 38 +- tests/compiler/class-extends.untouched.wat | 32 +- .../compiler/class-overloading.optimized.wat | 21 +- .../compiler/class-overloading.untouched.wat | 14 +- .../class-with-boolean-field.optimized.wat | 20 +- .../class-with-boolean-field.untouched.wat | 14 +- tests/compiler/class.optimized.wat | 98 +- tests/compiler/class.untouched.wat | 213 +- tests/compiler/closure.optimized.wat | 6 +- tests/compiler/closure.untouched.wat | 2 +- tests/compiler/comma.optimized.wat | 364 +- tests/compiler/comma.untouched.wat | 451 +- tests/compiler/declare.optimized.wat | 70 +- tests/compiler/declare.untouched.wat | 70 +- tests/compiler/do.optimized.wat | 327 +- tests/compiler/do.untouched.wat | 394 +- tests/compiler/empty.optimized.wat | 6 +- tests/compiler/empty.untouched.wat | 2 +- tests/compiler/enum.optimized.wat | 27 +- tests/compiler/enum.untouched.wat | 29 +- tests/compiler/export.optimized.wat | 33 +- tests/compiler/export.untouched.wat | 25 +- tests/compiler/exports.optimized.wat | 314 +- tests/compiler/exports.untouched.wat | 475 +- tests/compiler/external.optimized.wat | 10 +- tests/compiler/external.untouched.wat | 6 +- tests/compiler/for.optimized.wat | 360 +- tests/compiler/for.untouched.wat | 445 +- .../function-expression.optimized.wat | 134 +- .../function-expression.untouched.wat | 153 +- tests/compiler/function-types.optimized.wat | 401 +- tests/compiler/function-types.untouched.wat | 452 +- tests/compiler/function.optimized.wat | 126 +- tests/compiler/function.untouched.wat | 161 +- tests/compiler/getter-call.optimized.wat | 189 +- tests/compiler/getter-call.untouched.wat | 243 +- tests/compiler/getter-setter.optimized.wat | 104 +- tests/compiler/getter-setter.untouched.wat | 112 +- tests/compiler/i64-polyfill.optimized.wat | 1582 +- tests/compiler/i64-polyfill.untouched.wat | 1616 +- tests/compiler/if.optimized.wat | 223 +- tests/compiler/if.untouched.wat | 279 +- tests/compiler/import.optimized.wat | 50 +- tests/compiler/import.untouched.wat | 89 +- tests/compiler/infer-type.optimized.wat | 78 +- tests/compiler/infer-type.untouched.wat | 201 +- .../compiler/inlining-recursive.optimized.wat | 18 +- .../compiler/inlining-recursive.untouched.wat | 16 +- tests/compiler/inlining.optimized.wat | 84 +- tests/compiler/inlining.untouched.wat | 620 +- tests/compiler/instanceof.optimized.wat | 134 +- tests/compiler/instanceof.untouched.wat | 637 +- tests/compiler/limits.optimized.wat | 6 +- tests/compiler/limits.untouched.wat | 132 +- tests/compiler/literals.optimized.wat | 6 +- tests/compiler/literals.untouched.wat | 222 +- tests/compiler/logical.optimized.wat | 258 +- tests/compiler/logical.untouched.wat | 506 +- tests/compiler/main.optimized.wat | 35 +- tests/compiler/main.untouched.wat | 27 +- tests/compiler/mandelbrot.optimized.wat | 899 +- tests/compiler/mandelbrot.untouched.wat | 1009 +- tests/compiler/many-locals.optimized.wat | 86 +- tests/compiler/many-locals.untouched.wat | 1362 +- tests/compiler/memcpy.optimized.wat | 2720 +- tests/compiler/memcpy.untouched.wat | 3445 +- tests/compiler/memmove.optimized.wat | 874 +- tests/compiler/memmove.untouched.wat | 1038 +- tests/compiler/memset.optimized.wat | 795 +- tests/compiler/memset.untouched.wat | 871 +- .../named-export-default.optimized.wat | 10 +- .../named-export-default.untouched.wat | 4 +- .../named-import-default.optimized.wat | 14 +- .../named-import-default.untouched.wat | 6 +- tests/compiler/namespace.optimized.wat | 26 +- tests/compiler/namespace.untouched.wat | 26 +- .../new-without-allocator.optimized.wat | 19 +- .../new-without-allocator.untouched.wat | 23 +- tests/compiler/object-literal.optimized.wat | 518 +- tests/compiler/object-literal.untouched.wat | 625 +- tests/compiler/overflow.optimized.wat | 6 +- tests/compiler/overflow.untouched.wat | 1814 +- .../portable-conversions.optimized.wat | 184 +- .../portable-conversions.untouched.wat | 379 +- tests/compiler/recursive.optimized.wat | 57 +- tests/compiler/recursive.untouched.wat | 41 +- tests/compiler/reexport.optimized.wat | 55 +- tests/compiler/reexport.untouched.wat | 45 +- tests/compiler/rereexport.optimized.wat | 26 +- tests/compiler/rereexport.untouched.wat | 36 +- tests/compiler/retain-i32.optimized.wat | 669 +- tests/compiler/retain-i32.untouched.wat | 1861 +- tests/compiler/scoped.optimized.wat | 83 +- tests/compiler/scoped.untouched.wat | 118 +- tests/compiler/static-this.optimized.wat | 40 +- tests/compiler/static-this.untouched.wat | 35 +- .../std/allocator_arena.optimized.wat | 3756 +- .../std/allocator_arena.untouched.wat | 4830 +- tests/compiler/std/array-access.optimized.wat | 308 +- tests/compiler/std/array-access.untouched.wat | 521 +- .../compiler/std/array-literal.optimized.wat | 1810 +- .../compiler/std/array-literal.untouched.wat | 2685 +- tests/compiler/std/array.optimized.wat | 29540 ++--- tests/compiler/std/array.untouched.wat | 41179 +++---- tests/compiler/std/arraybuffer.optimized.wat | 4222 +- tests/compiler/std/arraybuffer.untouched.wat | 5195 +- tests/compiler/std/constructor.optimized.wat | 347 +- tests/compiler/std/constructor.untouched.wat | 604 +- tests/compiler/std/gc-array.optimized.wat | 4736 +- tests/compiler/std/gc-array.untouched.wat | 5789 +- tests/compiler/std/gc-basics.optimized.wat | 1030 +- tests/compiler/std/gc-basics.untouched.wat | 1267 +- .../compiler/std/gc-integration.optimized.wat | 111 +- .../compiler/std/gc-integration.untouched.wat | 124 +- tests/compiler/std/gc-object.optimized.wat | 898 +- tests/compiler/std/gc-object.untouched.wat | 1099 +- tests/compiler/std/hash.optimized.wat | 511 +- tests/compiler/std/hash.untouched.wat | 823 +- tests/compiler/std/libm.optimized.wat | 9341 +- tests/compiler/std/libm.untouched.wat | 10595 +- tests/compiler/std/map.optimized.wat | 15718 ++- tests/compiler/std/map.untouched.wat | 20477 ++-- tests/compiler/std/math.optimized.wat | 88746 ++++++-------- tests/compiler/std/math.untouched.wat | 95998 +++++++--------- tests/compiler/std/mod.optimized.wat | 5351 +- tests/compiler/std/mod.untouched.wat | 5669 +- tests/compiler/std/new.optimized.wat | 212 +- tests/compiler/std/new.untouched.wat | 284 +- .../std/operator-overloading.optimized.wat | 5923 +- .../std/operator-overloading.untouched.wat | 6411 +- tests/compiler/std/pointer.optimized.wat | 3858 +- tests/compiler/std/pointer.untouched.wat | 5490 +- tests/compiler/std/polyfills.optimized.wat | 567 +- tests/compiler/std/polyfills.untouched.wat | 1931 +- tests/compiler/std/set.optimized.wat | 13202 +-- tests/compiler/std/set.untouched.wat | 17701 ++- tests/compiler/std/static-array.optimized.wat | 4608 +- tests/compiler/std/static-array.untouched.wat | 5876 +- tests/compiler/std/string-utf8.optimized.wat | 5121 +- tests/compiler/std/string-utf8.untouched.wat | 6136 +- tests/compiler/std/string.optimized.wat | 19920 ++-- tests/compiler/std/string.untouched.wat | 22983 ++-- tests/compiler/std/symbol.optimized.wat | 2909 +- tests/compiler/std/symbol.untouched.wat | 3505 +- tests/compiler/std/trace.optimized.wat | 166 +- tests/compiler/std/trace.untouched.wat | 158 +- tests/compiler/std/typedarray.optimized.wat | 6836 +- tests/compiler/std/typedarray.untouched.wat | 9775 +- tests/compiler/switch.optimized.wat | 1065 +- tests/compiler/switch.untouched.wat | 1274 +- tests/compiler/ternary.optimized.wat | 23 +- tests/compiler/ternary.untouched.wat | 32 +- tests/compiler/typealias.optimized.wat | 10 +- tests/compiler/typealias.untouched.wat | 6 +- tests/compiler/unary.optimized.wat | 560 +- tests/compiler/unary.untouched.wat | 870 +- tests/compiler/void.optimized.wat | 17 +- tests/compiler/void.untouched.wat | 24 +- tests/compiler/while.optimized.wat | 396 +- tests/compiler/while.untouched.wat | 472 +- 194 files changed, 239934 insertions(+), 340697 deletions(-) diff --git a/examples/game-of-life/build/optimized.wat b/examples/game-of-life/build/optimized.wat index 2faa816f..e1eb0b91 100644 --- a/examples/game-of-life/build/optimized.wat +++ b/examples/game-of-life/build/optimized.wat @@ -4,12 +4,12 @@ (type $v (func)) (type $iiFv (func (param i32 i32 f64))) (import "env" "memory" (memory $0 0)) - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "config" "BGR_ALIVE" (global $assembly/config/BGR_ALIVE i32)) (import "config" "BGR_DEAD" (global $assembly/config/BGR_DEAD i32)) (import "config" "BIT_ROT" (global $assembly/config/BIT_ROT i32)) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $assembly/index/w (mut i32) (i32.const 0)) (global $assembly/index/h (mut i32) (i32.const 0)) (global $assembly/index/s (mut i32) (i32.const 0)) @@ -18,123 +18,76 @@ (export "init" (func $assembly/index/init)) (export "step" (func $assembly/index/step)) (export "fill" (func $assembly/index/fill)) - (func $assembly/index/init (; 1 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $assembly/index/init (; 1 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) - ;;@ assembly/index.ts:29:2 - (set_global $assembly/index/w - (get_local $0) - ) - ;;@ assembly/index.ts:30:2 - (set_global $assembly/index/h - (get_local $1) - ) - ;;@ assembly/index.ts:31:2 - (set_global $assembly/index/s - ;;@ assembly/index.ts:31:6 - (i32.mul - (get_local $0) - (get_local $1) - ) - ) - ;;@ assembly/index.ts:34:2 - (block $break|0 - ;;@ assembly/index.ts:34:7 - (set_local $0 - ;;@ assembly/index.ts:34:15 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - ;;@ assembly/index.ts:34:18 - (i32.ge_s - (get_local $0) - ;;@ assembly/index.ts:34:22 - (get_global $assembly/index/h) - ) - ) - ;;@ assembly/index.ts:35:4 - (block $break|1 - ;;@ assembly/index.ts:35:9 - (set_local $1 - ;;@ assembly/index.ts:35:17 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - ;;@ assembly/index.ts:35:20 - (i32.ge_s - (get_local $1) - ;;@ assembly/index.ts:35:24 - (get_global $assembly/index/w) - ) - ) - (set_local $2 - ;;@ assembly/index.ts:36:16 - (if (result i32) - (f64.gt - ;;@ assembly/index.ts:36:21 - (call $~lib/bindings/Math/random) - ;;@ assembly/index.ts:36:32 - (f64.const 0.1) - ) - ;;@ assembly/index.ts:36:38 - (i32.and - (get_global $assembly/config/BGR_DEAD) - ;;@ assembly/index.ts:36:49 - (i32.const 16777215) - ) - ;;@ assembly/index.ts:36:62 - (i32.or - (get_global $assembly/config/BGR_ALIVE) - ;;@ assembly/index.ts:36:74 - (i32.const -16777216) - ) - ) - ) - ;;@ assembly/index.ts:17:2 - (i32.store - ;;@ assembly/index.ts:17:13 - (i32.shl - (i32.add - ;;@ assembly/index.ts:17:14 - (i32.add - (get_global $assembly/index/s) - ;;@ assembly/index.ts:17:18 - (i32.mul - (get_local $0) - ;;@ assembly/index.ts:17:22 - (get_global $assembly/index/w) - ) - ) - (get_local $1) - ) - ;;@ assembly/index.ts:17:32 - (i32.const 2) - ) - (get_local $2) - ) - ;;@ assembly/index.ts:35:27 - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ;;@ assembly/index.ts:34:25 - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_local $0 + set_global $assembly/index/w + get_local $1 + set_global $assembly/index/h + get_local $0 + get_local $1 + i32.mul + set_global $assembly/index/s + block $break|0 + i32.const 0 + set_local $0 + loop $repeat|0 + get_local $0 + get_global $assembly/index/h + i32.ge_s + br_if $break|0 + block $break|1 + i32.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + get_global $assembly/index/w + i32.ge_s + br_if $break|1 + call $~lib/bindings/Math/random + f64.const 0.1 + f64.gt + if (result i32) + get_global $assembly/config/BGR_DEAD + i32.const 16777215 + i32.and + else + get_global $assembly/config/BGR_ALIVE + i32.const -16777216 + i32.or + end + set_local $2 + get_global $assembly/index/s + get_local $0 + get_global $assembly/index/w + i32.mul + i32.add + get_local $1 + i32.add + i32.const 2 + i32.shl + get_local $2 + i32.store + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $assembly/index/step (; 2 ;) (; has Stack IR ;) (type $v) + (func $assembly/index/step (; 2 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -143,587 +96,354 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $6 - ;;@ assembly/index.ts:43:12 - (i32.sub - (get_global $assembly/index/h) - ;;@ assembly/index.ts:43:16 - (i32.const 1) - ) - ) - (set_local $7 - ;;@ assembly/index.ts:44:12 - (i32.sub - (get_global $assembly/index/w) - ;;@ assembly/index.ts:44:16 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:48:2 - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - ;;@ assembly/index.ts:48:18 - (i32.ge_s - (get_local $0) - ;;@ assembly/index.ts:48:22 - (get_global $assembly/index/h) - ) - ) - (set_local $4 - (tee_local $2 - ;;@ assembly/index.ts:49:14 - (if (result i32) - (get_local $0) - ;;@ assembly/index.ts:49:29 - (i32.sub - (get_local $0) - ;;@ assembly/index.ts:49:33 - (i32.const 1) - ) - (get_local $6) - ) - ) - ) - (set_local $5 - ;;@ assembly/index.ts:50:14 - (if (result i32) - (i32.eq - (get_local $0) - (get_local $6) - ) - ;;@ assembly/index.ts:50:25 - (i32.const 0) - ;;@ assembly/index.ts:50:29 - (i32.add - (get_local $0) - ;;@ assembly/index.ts:50:33 - (i32.const 1) - ) - ) - ) - ;;@ assembly/index.ts:51:4 - (block $break|1 - ;;@ assembly/index.ts:51:9 - (set_local $1 - ;;@ assembly/index.ts:51:17 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - ;;@ assembly/index.ts:51:20 - (i32.ge_s - (get_local $1) - ;;@ assembly/index.ts:51:24 - (get_global $assembly/index/w) - ) - ) - ;;@ assembly/index.ts:57:6 - (set_local $2 - ;;@ assembly/index.ts:57:27 - (i32.add - ;;@ assembly/index.ts:58:8 - (i32.add - (i32.add - (i32.add - (i32.add - (i32.add - (i32.add - (i32.and - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $4) - (get_global $assembly/index/w) - ) - (tee_local $2 - ;;@ assembly/index.ts:52:16 - (if (result i32) - (get_local $1) - ;;@ assembly/index.ts:52:31 - (i32.sub - (get_local $1) - ;;@ assembly/index.ts:52:35 - (i32.const 1) - ) - (get_local $7) - ) - ) - ) - (i32.const 2) - ) - ) - ;;@ assembly/index.ts:58:25 - (i32.const 1) - ) - ;;@ assembly/index.ts:58:30 - (i32.and - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $4) - (get_global $assembly/index/w) - ) - (get_local $1) - ) - (i32.const 2) - ) - ) - ;;@ assembly/index.ts:58:47 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:58:52 - (i32.and - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $4) - (get_global $assembly/index/w) - ) - (tee_local $3 - ;;@ assembly/index.ts:53:16 - (if (result i32) - (i32.eq - (get_local $1) - (get_local $7) - ) - ;;@ assembly/index.ts:53:27 - (i32.const 0) - ;;@ assembly/index.ts:53:31 - (i32.add - (get_local $1) - ;;@ assembly/index.ts:53:35 - (i32.const 1) - ) - ) - ) - ) - (i32.const 2) - ) - ) - ;;@ assembly/index.ts:58:69 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:59:8 - (i32.and - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $0) - (get_global $assembly/index/w) - ) - (get_local $2) - ) - (i32.const 2) - ) - ) - ;;@ assembly/index.ts:59:25 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:59:52 - (i32.and - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $0) - (get_global $assembly/index/w) - ) - (get_local $3) - ) - (i32.const 2) - ) - ) - ;;@ assembly/index.ts:59:69 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:60:8 - (i32.and - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $5) - (get_global $assembly/index/w) - ) - (get_local $2) - ) - (i32.const 2) - ) - ) - ;;@ assembly/index.ts:60:25 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:60:30 - (i32.and - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $5) - (get_global $assembly/index/w) - ) - (get_local $1) - ) - (i32.const 2) - ) - ) - ;;@ assembly/index.ts:60:47 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:60:52 - (i32.and - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $5) - (get_global $assembly/index/w) - ) - (get_local $3) - ) - (i32.const 2) - ) - ) - ;;@ assembly/index.ts:60:69 - (i32.const 1) - ) - ) - ) - ;;@ assembly/index.ts:64:6 - (if - ;;@ assembly/index.ts:64:10 - (i32.and - ;;@ assembly/index.ts:63:6 - (tee_local $3 - ;;@ assembly/index.ts:11:35 - (i32.load - ;;@ assembly/index.ts:11:19 - (i32.shl - (i32.add - ;;@ assembly/index.ts:11:20 - (i32.mul - (get_local $0) - ;;@ assembly/index.ts:11:24 - (get_global $assembly/index/w) - ) - (get_local $1) - ) - ;;@ assembly/index.ts:11:34 - (i32.const 2) - ) - ) - ) - ;;@ assembly/index.ts:64:17 - (i32.const 1) - ) - ;;@ assembly/index.ts:64:20 - (if - ;;@ assembly/index.ts:66:12 - (i32.eq - (i32.and - (get_local $2) - ;;@ assembly/index.ts:66:30 - (i32.const 14) - ) - ;;@ assembly/index.ts:66:41 - (i32.const 2) - ) - (i32.store - (i32.shl - (i32.add - (i32.add - (get_global $assembly/index/s) - (i32.mul - (get_local $0) - (get_global $assembly/index/w) - ) - ) - (get_local $1) - ) - (i32.const 2) - ) - (i32.or - (i32.shl - (select - (tee_local $2 - (i32.sub - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (get_global $assembly/config/BIT_ROT) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $2) - (i32.const 0) - ) - ) - (i32.const 24) - ) - (i32.and - (get_local $3) - (i32.const 16777215) - ) - ) - ) - (i32.store - (i32.shl - (i32.add - (i32.add - (get_global $assembly/index/s) - (i32.mul - (get_local $0) - (get_global $assembly/index/w) - ) - ) - (get_local $1) - ) - (i32.const 2) - ) - ;;@ assembly/index.ts:68:23 - (i32.or - (get_global $assembly/config/BGR_DEAD) - ;;@ assembly/index.ts:68:34 - (i32.const -16777216) - ) - ) - ) - ;;@ assembly/index.ts:69:13 - (if - ;;@ assembly/index.ts:71:12 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:71:30 - (i32.const 3) - ) - (i32.store - (i32.shl - (i32.add - (i32.add - (get_global $assembly/index/s) - (i32.mul - (get_local $0) - (get_global $assembly/index/w) - ) - ) - (get_local $1) - ) - (i32.const 2) - ) - ;;@ assembly/index.ts:71:43 - (i32.or - (get_global $assembly/config/BGR_ALIVE) - ;;@ assembly/index.ts:71:55 - (i32.const -16777216) - ) - ) - ;;@ assembly/index.ts:17:2 - (i32.store - ;;@ assembly/index.ts:17:13 - (i32.shl - (i32.add - ;;@ assembly/index.ts:17:14 - (i32.add - (get_global $assembly/index/s) - ;;@ assembly/index.ts:17:18 - (i32.mul - (get_local $0) - ;;@ assembly/index.ts:17:22 - (get_global $assembly/index/w) - ) - ) - (get_local $1) - ) - ;;@ assembly/index.ts:17:32 - (i32.const 2) - ) - ;;@ assembly/index.ts:24:12 - (i32.or - (i32.shl - ;;@ assembly/index.ts:23:10 - (select - (tee_local $2 - ;;@ assembly/index.ts:23:19 - (i32.sub - (i32.shr_u - (get_local $3) - ;;@ assembly/index.ts:23:26 - (i32.const 24) - ) - ;;@ assembly/index.ts:23:32 - (get_global $assembly/config/BIT_ROT) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $2) - (i32.const 0) - ) - ) - ;;@ assembly/index.ts:24:18 - (i32.const 24) - ) - ;;@ assembly/index.ts:24:24 - (i32.and - (get_local $3) - ;;@ assembly/index.ts:24:29 - (i32.const 16777215) - ) - ) - ) - ) - ) - ;;@ assembly/index.ts:51:27 - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ;;@ assembly/index.ts:48:25 - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_global $assembly/index/h + i32.const 1 + i32.sub + set_local $6 + get_global $assembly/index/w + i32.const 1 + i32.sub + set_local $7 + block $break|0 + loop $repeat|0 + get_local $0 + get_global $assembly/index/h + i32.ge_s + br_if $break|0 + get_local $0 + if (result i32) + get_local $0 + i32.const 1 + i32.sub + else + get_local $6 + end + tee_local $2 + set_local $4 + get_local $0 + get_local $6 + i32.eq + if (result i32) + i32.const 0 + else + get_local $0 + i32.const 1 + i32.add + end + set_local $5 + block $break|1 + i32.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + get_global $assembly/index/w + i32.ge_s + br_if $break|1 + get_local $4 + get_global $assembly/index/w + i32.mul + get_local $1 + if (result i32) + get_local $1 + i32.const 1 + i32.sub + else + get_local $7 + end + tee_local $2 + i32.add + i32.const 2 + i32.shl + i32.load + i32.const 1 + i32.and + get_local $4 + get_global $assembly/index/w + i32.mul + get_local $1 + i32.add + i32.const 2 + i32.shl + i32.load + i32.const 1 + i32.and + i32.add + get_local $4 + get_global $assembly/index/w + i32.mul + get_local $1 + get_local $7 + i32.eq + if (result i32) + i32.const 0 + else + get_local $1 + i32.const 1 + i32.add + end + tee_local $3 + i32.add + i32.const 2 + i32.shl + i32.load + i32.const 1 + i32.and + i32.add + get_local $0 + get_global $assembly/index/w + i32.mul + get_local $2 + i32.add + i32.const 2 + i32.shl + i32.load + i32.const 1 + i32.and + i32.add + get_local $0 + get_global $assembly/index/w + i32.mul + get_local $3 + i32.add + i32.const 2 + i32.shl + i32.load + i32.const 1 + i32.and + i32.add + get_local $5 + get_global $assembly/index/w + i32.mul + get_local $2 + i32.add + i32.const 2 + i32.shl + i32.load + i32.const 1 + i32.and + i32.add + get_local $5 + get_global $assembly/index/w + i32.mul + get_local $1 + i32.add + i32.const 2 + i32.shl + i32.load + i32.const 1 + i32.and + i32.add + get_local $5 + get_global $assembly/index/w + i32.mul + get_local $3 + i32.add + i32.const 2 + i32.shl + i32.load + i32.const 1 + i32.and + i32.add + set_local $2 + get_local $0 + get_global $assembly/index/w + i32.mul + get_local $1 + i32.add + i32.const 2 + i32.shl + i32.load + tee_local $3 + i32.const 1 + i32.and + if + get_local $2 + i32.const 14 + i32.and + i32.const 2 + i32.eq + if + get_global $assembly/index/s + get_local $0 + get_global $assembly/index/w + i32.mul + i32.add + get_local $1 + i32.add + i32.const 2 + i32.shl + get_local $3 + i32.const 24 + i32.shr_u + get_global $assembly/config/BIT_ROT + i32.sub + tee_local $2 + i32.const 0 + get_local $2 + i32.const 0 + i32.gt_s + select + i32.const 24 + i32.shl + get_local $3 + i32.const 16777215 + i32.and + i32.or + i32.store + else + get_global $assembly/index/s + get_local $0 + get_global $assembly/index/w + i32.mul + i32.add + get_local $1 + i32.add + i32.const 2 + i32.shl + get_global $assembly/config/BGR_DEAD + i32.const -16777216 + i32.or + i32.store + end + else + get_local $2 + i32.const 3 + i32.eq + if + get_global $assembly/index/s + get_local $0 + get_global $assembly/index/w + i32.mul + i32.add + get_local $1 + i32.add + i32.const 2 + i32.shl + get_global $assembly/config/BGR_ALIVE + i32.const -16777216 + i32.or + i32.store + else + get_global $assembly/index/s + get_local $0 + get_global $assembly/index/w + i32.mul + i32.add + get_local $1 + i32.add + i32.const 2 + i32.shl + get_local $3 + i32.const 24 + i32.shr_u + get_global $assembly/config/BIT_ROT + i32.sub + tee_local $2 + i32.const 0 + get_local $2 + i32.const 0 + i32.gt_s + select + i32.const 24 + i32.shl + get_local $3 + i32.const 16777215 + i32.and + i32.or + i32.store + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $assembly/index/fill (; 3 ;) (; has Stack IR ;) (type $iiFv) (param $0 i32) (param $1 i32) (param $2 f64) + (func $assembly/index/fill (; 3 ;) (type $iiFv) (param $0 i32) (param $1 i32) (param $2 f64) (local $3 i32) - ;;@ assembly/index.ts:81:2 - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - ;;@ assembly/index.ts:81:19 - (i32.ge_s - (get_local $3) - ;;@ assembly/index.ts:81:24 - (get_global $assembly/index/w) - ) - ) - ;;@ assembly/index.ts:82:4 - (if - ;;@ assembly/index.ts:82:8 - (f64.lt - ;;@ assembly/index.ts:82:13 - (call $~lib/bindings/Math/random) - (get_local $2) - ) - (i32.store - (i32.shl - (i32.add - (i32.add - (get_global $assembly/index/s) - (i32.mul - (get_local $1) - (get_global $assembly/index/w) - ) - ) - (get_local $3) - ) - (i32.const 2) - ) - ;;@ assembly/index.ts:82:38 - (i32.or - (get_global $assembly/config/BGR_ALIVE) - ;;@ assembly/index.ts:82:50 - (i32.const -16777216) - ) - ) - ) - ;;@ assembly/index.ts:81:27 - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ;;@ assembly/index.ts:84:2 - (block $break|1 - ;;@ assembly/index.ts:84:7 - (set_local $3 - ;;@ assembly/index.ts:84:16 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - ;;@ assembly/index.ts:84:19 - (i32.ge_s - (get_local $3) - ;;@ assembly/index.ts:84:24 - (get_global $assembly/index/h) - ) - ) - ;;@ assembly/index.ts:85:4 - (if - ;;@ assembly/index.ts:85:8 - (f64.lt - ;;@ assembly/index.ts:85:13 - (call $~lib/bindings/Math/random) - (get_local $2) - ) - ;;@ assembly/index.ts:17:2 - (i32.store - ;;@ assembly/index.ts:17:13 - (i32.shl - (i32.add - ;;@ assembly/index.ts:17:14 - (i32.add - (get_global $assembly/index/s) - ;;@ assembly/index.ts:17:18 - (i32.mul - (get_local $3) - ;;@ assembly/index.ts:17:22 - (get_global $assembly/index/w) - ) - ) - (get_local $0) - ) - ;;@ assembly/index.ts:17:32 - (i32.const 2) - ) - ;;@ assembly/index.ts:85:38 - (i32.or - (get_global $assembly/config/BGR_ALIVE) - ;;@ assembly/index.ts:85:50 - (i32.const -16777216) - ) - ) - ) - ;;@ assembly/index.ts:84:27 - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) + block $break|0 + loop $repeat|0 + get_local $3 + get_global $assembly/index/w + i32.ge_s + br_if $break|0 + call $~lib/bindings/Math/random + get_local $2 + f64.lt + if + get_global $assembly/index/s + get_local $1 + get_global $assembly/index/w + i32.mul + i32.add + get_local $3 + i32.add + i32.const 2 + i32.shl + get_global $assembly/config/BGR_ALIVE + i32.const -16777216 + i32.or + i32.store + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + block $break|1 + i32.const 0 + set_local $3 + loop $repeat|1 + get_local $3 + get_global $assembly/index/h + i32.ge_s + br_if $break|1 + call $~lib/bindings/Math/random + get_local $2 + f64.lt + if + get_global $assembly/index/s + get_local $3 + get_global $assembly/index/w + i32.mul + i32.add + get_local $0 + i32.add + i32.const 2 + i32.shl + get_global $assembly/config/BGR_ALIVE + i32.const -16777216 + i32.or + i32.store + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|1 + unreachable + end + unreachable + end ) - (func $null (; 4 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 4 ;) (type $v) + nop ) ) diff --git a/examples/game-of-life/build/untouched.wat b/examples/game-of-life/build/untouched.wat index be37ea55..54d1abe4 100644 --- a/examples/game-of-life/build/untouched.wat +++ b/examples/game-of-life/build/untouched.wat @@ -4,12 +4,12 @@ (type $v (func)) (type $iiFv (func (param i32 i32 f64))) (import "env" "memory" (memory $0 0)) - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "config" "BGR_ALIVE" (global $assembly/config/BGR_ALIVE i32)) (import "config" "BGR_DEAD" (global $assembly/config/BGR_DEAD i32)) (import "config" "BIT_ROT" (global $assembly/config/BIT_ROT i32)) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $assembly/index/w (mut i32) (i32.const 0)) (global $assembly/index/h (mut i32) (i32.const 0)) (global $assembly/index/s (mut i32) (i32.const 0)) @@ -23,133 +23,76 @@ (local $2 i32) (local $3 i32) (local $4 i32) - ;;@ assembly/index.ts:29:2 - (set_global $assembly/index/w - ;;@ assembly/index.ts:29:6 - (get_local $0) - ) - ;;@ assembly/index.ts:30:2 - (set_global $assembly/index/h - ;;@ assembly/index.ts:30:6 - (get_local $1) - ) - ;;@ assembly/index.ts:31:2 - (set_global $assembly/index/s - ;;@ assembly/index.ts:31:6 - (i32.mul - (get_local $0) - ;;@ assembly/index.ts:31:14 - (get_local $1) - ) - ) - ;;@ assembly/index.ts:34:2 - (block $break|0 - ;;@ assembly/index.ts:34:7 - (set_local $2 - ;;@ assembly/index.ts:34:15 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - ;;@ assembly/index.ts:34:18 - (i32.lt_s - (get_local $2) - ;;@ assembly/index.ts:34:22 - (get_global $assembly/index/h) - ) - ) - ) - ;;@ assembly/index.ts:35:4 - (block $break|1 - ;;@ assembly/index.ts:35:9 - (set_local $3 - ;;@ assembly/index.ts:35:17 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - ;;@ assembly/index.ts:35:20 - (i32.lt_s - (get_local $3) - ;;@ assembly/index.ts:35:24 - (get_global $assembly/index/w) - ) - ) - ) - ;;@ assembly/index.ts:36:6 - (block $assembly/index/set|inlined.0 - (set_local $4 - ;;@ assembly/index.ts:36:16 - (if (result i32) - (f64.gt - ;;@ assembly/index.ts:36:21 - (call $~lib/bindings/Math/random) - ;;@ assembly/index.ts:36:32 - (f64.const 0.1) - ) - ;;@ assembly/index.ts:36:38 - (i32.and - (get_global $assembly/config/BGR_DEAD) - ;;@ assembly/index.ts:36:49 - (i32.const 16777215) - ) - ;;@ assembly/index.ts:36:62 - (i32.or - (get_global $assembly/config/BGR_ALIVE) - ;;@ assembly/index.ts:36:74 - (i32.const -16777216) - ) - ) - ) - ;;@ assembly/index.ts:17:2 - (i32.store - ;;@ assembly/index.ts:17:13 - (i32.shl - (i32.add - ;;@ assembly/index.ts:17:14 - (i32.add - (get_global $assembly/index/s) - ;;@ assembly/index.ts:17:18 - (i32.mul - (get_local $2) - ;;@ assembly/index.ts:17:22 - (get_global $assembly/index/w) - ) - ) - ;;@ assembly/index.ts:17:26 - (get_local $3) - ) - ;;@ assembly/index.ts:17:32 - (i32.const 2) - ) - ;;@ assembly/index.ts:17:35 - (get_local $4) - ) - ) - ;;@ assembly/index.ts:35:27 - (set_local $3 - (i32.add - ;;@ assembly/index.ts:35:29 - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ;;@ assembly/index.ts:34:25 - (set_local $2 - (i32.add - ;;@ assembly/index.ts:34:27 - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_local $0 + set_global $assembly/index/w + get_local $1 + set_global $assembly/index/h + get_local $0 + get_local $1 + i32.mul + set_global $assembly/index/s + block $break|0 + i32.const 0 + set_local $2 + loop $repeat|0 + get_local $2 + get_global $assembly/index/h + i32.lt_s + i32.eqz + br_if $break|0 + block $break|1 + i32.const 0 + set_local $3 + loop $repeat|1 + get_local $3 + get_global $assembly/index/w + i32.lt_s + i32.eqz + br_if $break|1 + block $assembly/index/set|inlined.0 + call $~lib/bindings/Math/random + f64.const 0.1 + f64.gt + if (result i32) + get_global $assembly/config/BGR_DEAD + i32.const 16777215 + i32.and + else + get_global $assembly/config/BGR_ALIVE + i32.const -16777216 + i32.or + end + set_local $4 + get_global $assembly/index/s + get_local $2 + get_global $assembly/index/w + i32.mul + i32.add + get_local $3 + i32.add + i32.const 2 + i32.shl + get_local $4 + i32.store + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|1 + unreachable + end + unreachable + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end ) (func $assembly/index/step (; 2 ;) (type $v) (local $0 i32) @@ -164,718 +107,411 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $0 - ;;@ assembly/index.ts:43:12 - (i32.sub - (get_global $assembly/index/h) - ;;@ assembly/index.ts:43:16 - (i32.const 1) - ) - ) - (set_local $1 - ;;@ assembly/index.ts:44:12 - (i32.sub - (get_global $assembly/index/w) - ;;@ assembly/index.ts:44:16 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:48:2 - (block $break|0 - ;;@ assembly/index.ts:48:7 - (set_local $2 - ;;@ assembly/index.ts:48:15 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - ;;@ assembly/index.ts:48:18 - (i32.lt_s - (get_local $2) - ;;@ assembly/index.ts:48:22 - (get_global $assembly/index/h) - ) - ) - ) - ;;@ assembly/index.ts:48:30 - (block - (set_local $3 - ;;@ assembly/index.ts:49:14 - (if (result i32) - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:49:19 - (i32.const 0) - ) - ;;@ assembly/index.ts:49:23 - (get_local $0) - ;;@ assembly/index.ts:49:29 - (i32.sub - (get_local $2) - ;;@ assembly/index.ts:49:33 - (i32.const 1) - ) - ) - ) - (set_local $4 - ;;@ assembly/index.ts:50:14 - (if (result i32) - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:50:19 - (get_local $0) - ) - ;;@ assembly/index.ts:50:25 - (i32.const 0) - ;;@ assembly/index.ts:50:29 - (i32.add - (get_local $2) - ;;@ assembly/index.ts:50:33 - (i32.const 1) - ) - ) - ) - ;;@ assembly/index.ts:51:4 - (block $break|1 - ;;@ assembly/index.ts:51:9 - (set_local $5 - ;;@ assembly/index.ts:51:17 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - ;;@ assembly/index.ts:51:20 - (i32.lt_s - (get_local $5) - ;;@ assembly/index.ts:51:24 - (get_global $assembly/index/w) - ) - ) - ) - ;;@ assembly/index.ts:51:32 - (block - (set_local $6 - ;;@ assembly/index.ts:52:16 - (if (result i32) - (i32.eq - (get_local $5) - ;;@ assembly/index.ts:52:21 - (i32.const 0) - ) - ;;@ assembly/index.ts:52:25 - (get_local $1) - ;;@ assembly/index.ts:52:31 - (i32.sub - (get_local $5) - ;;@ assembly/index.ts:52:35 - (i32.const 1) - ) - ) - ) - (set_local $7 - ;;@ assembly/index.ts:53:16 - (if (result i32) - (i32.eq - (get_local $5) - ;;@ assembly/index.ts:53:21 - (get_local $1) - ) - ;;@ assembly/index.ts:53:27 - (i32.const 0) - ;;@ assembly/index.ts:53:31 - (i32.add - (get_local $5) - ;;@ assembly/index.ts:53:35 - (i32.const 1) - ) - ) - ) - ;;@ assembly/index.ts:57:6 - (set_local $8 - ;;@ assembly/index.ts:57:27 - (i32.add - ;;@ assembly/index.ts:58:8 - (i32.add - (i32.add - (i32.add - (i32.add - (i32.add - (i32.add - (i32.and - ;;@ assembly/index.ts:58:9 - (block $assembly/index/get|inlined.0 (result i32) - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $3) - (get_global $assembly/index/w) - ) - (get_local $6) - ) - (i32.const 2) - ) - ) - ) - ;;@ assembly/index.ts:58:25 - (i32.const 1) - ) - ;;@ assembly/index.ts:58:30 - (i32.and - ;;@ assembly/index.ts:58:31 - (block $assembly/index/get|inlined.1 (result i32) - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $3) - (get_global $assembly/index/w) - ) - (get_local $5) - ) - (i32.const 2) - ) - ) - ) - ;;@ assembly/index.ts:58:47 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:58:52 - (i32.and - ;;@ assembly/index.ts:58:53 - (block $assembly/index/get|inlined.2 (result i32) - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $3) - (get_global $assembly/index/w) - ) - (get_local $7) - ) - (i32.const 2) - ) - ) - ) - ;;@ assembly/index.ts:58:69 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:59:8 - (i32.and - ;;@ assembly/index.ts:59:9 - (block $assembly/index/get|inlined.3 (result i32) - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $2) - (get_global $assembly/index/w) - ) - (get_local $6) - ) - (i32.const 2) - ) - ) - ) - ;;@ assembly/index.ts:59:25 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:59:52 - (i32.and - ;;@ assembly/index.ts:59:53 - (block $assembly/index/get|inlined.4 (result i32) - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $2) - (get_global $assembly/index/w) - ) - (get_local $7) - ) - (i32.const 2) - ) - ) - ) - ;;@ assembly/index.ts:59:69 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:60:8 - (i32.and - ;;@ assembly/index.ts:60:9 - (block $assembly/index/get|inlined.5 (result i32) - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $4) - (get_global $assembly/index/w) - ) - (get_local $6) - ) - (i32.const 2) - ) - ) - ) - ;;@ assembly/index.ts:60:25 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:60:30 - (i32.and - ;;@ assembly/index.ts:60:31 - (block $assembly/index/get|inlined.6 (result i32) - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $4) - (get_global $assembly/index/w) - ) - (get_local $5) - ) - (i32.const 2) - ) - ) - ) - ;;@ assembly/index.ts:60:47 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:60:52 - (i32.and - ;;@ assembly/index.ts:60:53 - (block $assembly/index/get|inlined.7 (result i32) - (i32.load - (i32.shl - (i32.add - (i32.mul - (get_local $4) - (get_global $assembly/index/w) - ) - (get_local $7) - ) - (i32.const 2) - ) - ) - ) - ;;@ assembly/index.ts:60:69 - (i32.const 1) - ) - ) - ) - ;;@ assembly/index.ts:63:6 - (set_local $9 - ;;@ assembly/index.ts:63:17 - (block $assembly/index/get|inlined.8 (result i32) - ;;@ assembly/index.ts:11:35 - (i32.load - ;;@ assembly/index.ts:11:19 - (i32.shl - (i32.add - ;;@ assembly/index.ts:11:20 - (i32.mul - (get_local $2) - ;;@ assembly/index.ts:11:24 - (get_global $assembly/index/w) - ) - ;;@ assembly/index.ts:11:28 - (get_local $5) - ) - ;;@ assembly/index.ts:11:34 - (i32.const 2) - ) - ) - ) - ) - ;;@ assembly/index.ts:64:6 - (if - ;;@ assembly/index.ts:64:10 - (i32.and - (get_local $9) - ;;@ assembly/index.ts:64:17 - (i32.const 1) - ) - ;;@ assembly/index.ts:64:20 - (if - ;;@ assembly/index.ts:66:12 - (i32.eq - (i32.and - ;;@ assembly/index.ts:66:13 - (get_local $8) - ;;@ assembly/index.ts:66:30 - (i32.const 14) - ) - ;;@ assembly/index.ts:66:41 - (i32.const 2) - ) - ;;@ assembly/index.ts:66:49 - (block $assembly/index/rot|inlined.0 - (set_local $10 - (select - (tee_local $10 - (i32.sub - (i32.shr_u - (get_local $9) - (i32.const 24) - ) - (get_global $assembly/config/BIT_ROT) - ) - ) - (tee_local $11 - (i32.const 0) - ) - (i32.gt_s - (get_local $10) - (get_local $11) - ) - ) - ) - (block $assembly/index/set|inlined.1 - (set_local $11 - (i32.or - (i32.shl - (get_local $10) - (i32.const 24) - ) - (i32.and - (get_local $9) - (i32.const 16777215) - ) - ) - ) - (i32.store - (i32.shl - (i32.add - (i32.add - (get_global $assembly/index/s) - (i32.mul - (get_local $2) - (get_global $assembly/index/w) - ) - ) - (get_local $5) - ) - (i32.const 2) - ) - (get_local $11) - ) - ) - ) - ;;@ assembly/index.ts:68:13 - (block $assembly/index/set|inlined.2 - (set_local $10 - ;;@ assembly/index.ts:68:23 - (i32.or - (get_global $assembly/config/BGR_DEAD) - ;;@ assembly/index.ts:68:34 - (i32.const -16777216) - ) - ) - (i32.store - (i32.shl - (i32.add - (i32.add - (get_global $assembly/index/s) - (i32.mul - (get_local $2) - (get_global $assembly/index/w) - ) - ) - (get_local $5) - ) - (i32.const 2) - ) - (get_local $10) - ) - ) - ) - ;;@ assembly/index.ts:69:13 - (if - ;;@ assembly/index.ts:71:12 - (i32.eq - (get_local $8) - ;;@ assembly/index.ts:71:30 - (i32.const 3) - ) - ;;@ assembly/index.ts:71:33 - (block $assembly/index/set|inlined.3 - (set_local $10 - ;;@ assembly/index.ts:71:43 - (i32.or - (get_global $assembly/config/BGR_ALIVE) - ;;@ assembly/index.ts:71:55 - (i32.const -16777216) - ) - ) - (i32.store - (i32.shl - (i32.add - (i32.add - (get_global $assembly/index/s) - (i32.mul - (get_local $2) - (get_global $assembly/index/w) - ) - ) - (get_local $5) - ) - (i32.const 2) - ) - (get_local $10) - ) - ) - ;;@ assembly/index.ts:73:13 - (block $assembly/index/rot|inlined.1 - ;;@ assembly/index.ts:23:2 - (set_local $10 - ;;@ assembly/index.ts:23:10 - (select - (tee_local $10 - ;;@ assembly/index.ts:23:19 - (i32.sub - (i32.shr_u - ;;@ assembly/index.ts:23:20 - (get_local $9) - ;;@ assembly/index.ts:23:26 - (i32.const 24) - ) - ;;@ assembly/index.ts:23:32 - (get_global $assembly/config/BIT_ROT) - ) - ) - (tee_local $11 - ;;@ assembly/index.ts:23:41 - (i32.const 0) - ) - (i32.gt_s - (get_local $10) - (get_local $11) - ) - ) - ) - ;;@ assembly/index.ts:24:2 - (block $assembly/index/set|inlined.4 - (set_local $11 - ;;@ assembly/index.ts:24:12 - (i32.or - (i32.shl - ;;@ assembly/index.ts:24:13 - (get_local $10) - ;;@ assembly/index.ts:24:18 - (i32.const 24) - ) - ;;@ assembly/index.ts:24:24 - (i32.and - ;;@ assembly/index.ts:24:25 - (get_local $9) - ;;@ assembly/index.ts:24:29 - (i32.const 16777215) - ) - ) - ) - ;;@ assembly/index.ts:17:2 - (i32.store - ;;@ assembly/index.ts:17:13 - (i32.shl - (i32.add - ;;@ assembly/index.ts:17:14 - (i32.add - (get_global $assembly/index/s) - ;;@ assembly/index.ts:17:18 - (i32.mul - (get_local $2) - ;;@ assembly/index.ts:17:22 - (get_global $assembly/index/w) - ) - ) - ;;@ assembly/index.ts:17:26 - (get_local $5) - ) - ;;@ assembly/index.ts:17:32 - (i32.const 2) - ) - ;;@ assembly/index.ts:17:35 - (get_local $11) - ) - ) - ) - ) - ) - ) - ;;@ assembly/index.ts:51:27 - (set_local $5 - (i32.add - ;;@ assembly/index.ts:51:29 - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ;;@ assembly/index.ts:48:25 - (set_local $2 - (i32.add - ;;@ assembly/index.ts:48:27 - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_global $assembly/index/h + i32.const 1 + i32.sub + set_local $0 + get_global $assembly/index/w + i32.const 1 + i32.sub + set_local $1 + block $break|0 + i32.const 0 + set_local $2 + loop $repeat|0 + get_local $2 + get_global $assembly/index/h + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $2 + i32.const 0 + i32.eq + if (result i32) + get_local $0 + else + get_local $2 + i32.const 1 + i32.sub + end + set_local $3 + get_local $2 + get_local $0 + i32.eq + if (result i32) + i32.const 0 + else + get_local $2 + i32.const 1 + i32.add + end + set_local $4 + block $break|1 + i32.const 0 + set_local $5 + loop $repeat|1 + get_local $5 + get_global $assembly/index/w + i32.lt_s + i32.eqz + br_if $break|1 + block + get_local $5 + i32.const 0 + i32.eq + if (result i32) + get_local $1 + else + get_local $5 + i32.const 1 + i32.sub + end + set_local $6 + get_local $5 + get_local $1 + i32.eq + if (result i32) + i32.const 0 + else + get_local $5 + i32.const 1 + i32.add + end + set_local $7 + block $assembly/index/get|inlined.0 (result i32) + get_local $3 + get_global $assembly/index/w + i32.mul + get_local $6 + i32.add + i32.const 2 + i32.shl + i32.load + end + i32.const 1 + i32.and + block $assembly/index/get|inlined.1 (result i32) + get_local $3 + get_global $assembly/index/w + i32.mul + get_local $5 + i32.add + i32.const 2 + i32.shl + i32.load + end + i32.const 1 + i32.and + i32.add + block $assembly/index/get|inlined.2 (result i32) + get_local $3 + get_global $assembly/index/w + i32.mul + get_local $7 + i32.add + i32.const 2 + i32.shl + i32.load + end + i32.const 1 + i32.and + i32.add + block $assembly/index/get|inlined.3 (result i32) + get_local $2 + get_global $assembly/index/w + i32.mul + get_local $6 + i32.add + i32.const 2 + i32.shl + i32.load + end + i32.const 1 + i32.and + i32.add + block $assembly/index/get|inlined.4 (result i32) + get_local $2 + get_global $assembly/index/w + i32.mul + get_local $7 + i32.add + i32.const 2 + i32.shl + i32.load + end + i32.const 1 + i32.and + i32.add + block $assembly/index/get|inlined.5 (result i32) + get_local $4 + get_global $assembly/index/w + i32.mul + get_local $6 + i32.add + i32.const 2 + i32.shl + i32.load + end + i32.const 1 + i32.and + i32.add + block $assembly/index/get|inlined.6 (result i32) + get_local $4 + get_global $assembly/index/w + i32.mul + get_local $5 + i32.add + i32.const 2 + i32.shl + i32.load + end + i32.const 1 + i32.and + i32.add + block $assembly/index/get|inlined.7 (result i32) + get_local $4 + get_global $assembly/index/w + i32.mul + get_local $7 + i32.add + i32.const 2 + i32.shl + i32.load + end + i32.const 1 + i32.and + i32.add + set_local $8 + block $assembly/index/get|inlined.8 (result i32) + get_local $2 + get_global $assembly/index/w + i32.mul + get_local $5 + i32.add + i32.const 2 + i32.shl + i32.load + end + set_local $9 + get_local $9 + i32.const 1 + i32.and + if + get_local $8 + i32.const 14 + i32.and + i32.const 2 + i32.eq + if + get_local $9 + i32.const 24 + i32.shr_u + get_global $assembly/config/BIT_ROT + i32.sub + tee_local $10 + i32.const 0 + tee_local $11 + get_local $10 + get_local $11 + i32.gt_s + select + set_local $10 + block $assembly/index/set|inlined.1 + get_local $10 + i32.const 24 + i32.shl + get_local $9 + i32.const 16777215 + i32.and + i32.or + set_local $11 + get_global $assembly/index/s + get_local $2 + get_global $assembly/index/w + i32.mul + i32.add + get_local $5 + i32.add + i32.const 2 + i32.shl + get_local $11 + i32.store + end + else + get_global $assembly/config/BGR_DEAD + i32.const -16777216 + i32.or + set_local $10 + get_global $assembly/index/s + get_local $2 + get_global $assembly/index/w + i32.mul + i32.add + get_local $5 + i32.add + i32.const 2 + i32.shl + get_local $10 + i32.store + end + else + get_local $8 + i32.const 3 + i32.eq + if + get_global $assembly/config/BGR_ALIVE + i32.const -16777216 + i32.or + set_local $10 + get_global $assembly/index/s + get_local $2 + get_global $assembly/index/w + i32.mul + i32.add + get_local $5 + i32.add + i32.const 2 + i32.shl + get_local $10 + i32.store + else + get_local $9 + i32.const 24 + i32.shr_u + get_global $assembly/config/BIT_ROT + i32.sub + tee_local $10 + i32.const 0 + tee_local $11 + get_local $10 + get_local $11 + i32.gt_s + select + set_local $10 + block $assembly/index/set|inlined.4 + get_local $10 + i32.const 24 + i32.shl + get_local $9 + i32.const 16777215 + i32.and + i32.or + set_local $11 + get_global $assembly/index/s + get_local $2 + get_global $assembly/index/w + i32.mul + i32.add + get_local $5 + i32.add + i32.const 2 + i32.shl + get_local $11 + i32.store + end + end + end + end + get_local $5 + i32.const 1 + i32.add + set_local $5 + br $repeat|1 + unreachable + end + unreachable + end + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end ) (func $assembly/index/fill (; 3 ;) (type $iiFv) (param $0 i32) (param $1 i32) (param $2 f64) (local $3 i32) (local $4 i32) - ;;@ assembly/index.ts:81:2 - (block $break|0 - ;;@ assembly/index.ts:81:7 - (set_local $3 - ;;@ assembly/index.ts:81:16 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - ;;@ assembly/index.ts:81:19 - (i32.lt_s - (get_local $3) - ;;@ assembly/index.ts:81:24 - (get_global $assembly/index/w) - ) - ) - ) - ;;@ assembly/index.ts:82:4 - (if - ;;@ assembly/index.ts:82:8 - (f64.lt - ;;@ assembly/index.ts:82:13 - (call $~lib/bindings/Math/random) - ;;@ assembly/index.ts:82:24 - (get_local $2) - ) - ;;@ assembly/index.ts:82:27 - (block $assembly/index/set|inlined.5 - (set_local $4 - ;;@ assembly/index.ts:82:38 - (i32.or - (get_global $assembly/config/BGR_ALIVE) - ;;@ assembly/index.ts:82:50 - (i32.const -16777216) - ) - ) - (i32.store - (i32.shl - (i32.add - (i32.add - (get_global $assembly/index/s) - (i32.mul - (get_local $1) - (get_global $assembly/index/w) - ) - ) - (get_local $3) - ) - (i32.const 2) - ) - (get_local $4) - ) - ) - ) - ;;@ assembly/index.ts:81:27 - (set_local $3 - (i32.add - ;;@ assembly/index.ts:81:29 - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ;;@ assembly/index.ts:84:2 - (block $break|1 - ;;@ assembly/index.ts:84:7 - (set_local $3 - ;;@ assembly/index.ts:84:16 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - ;;@ assembly/index.ts:84:19 - (i32.lt_s - (get_local $3) - ;;@ assembly/index.ts:84:24 - (get_global $assembly/index/h) - ) - ) - ) - ;;@ assembly/index.ts:85:4 - (if - ;;@ assembly/index.ts:85:8 - (f64.lt - ;;@ assembly/index.ts:85:13 - (call $~lib/bindings/Math/random) - ;;@ assembly/index.ts:85:24 - (get_local $2) - ) - ;;@ assembly/index.ts:85:27 - (block $assembly/index/set|inlined.6 - (set_local $4 - ;;@ assembly/index.ts:85:38 - (i32.or - (get_global $assembly/config/BGR_ALIVE) - ;;@ assembly/index.ts:85:50 - (i32.const -16777216) - ) - ) - ;;@ assembly/index.ts:17:2 - (i32.store - ;;@ assembly/index.ts:17:13 - (i32.shl - (i32.add - ;;@ assembly/index.ts:17:14 - (i32.add - (get_global $assembly/index/s) - ;;@ assembly/index.ts:17:18 - (i32.mul - (get_local $3) - ;;@ assembly/index.ts:17:22 - (get_global $assembly/index/w) - ) - ) - ;;@ assembly/index.ts:17:26 - (get_local $0) - ) - ;;@ assembly/index.ts:17:32 - (i32.const 2) - ) - ;;@ assembly/index.ts:17:35 - (get_local $4) - ) - ) - ) - ;;@ assembly/index.ts:84:27 - (set_local $3 - (i32.add - ;;@ assembly/index.ts:84:29 - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) + block $break|0 + i32.const 0 + set_local $3 + loop $repeat|0 + get_local $3 + get_global $assembly/index/w + i32.lt_s + i32.eqz + br_if $break|0 + call $~lib/bindings/Math/random + get_local $2 + f64.lt + if + get_global $assembly/config/BGR_ALIVE + i32.const -16777216 + i32.or + set_local $4 + get_global $assembly/index/s + get_local $1 + get_global $assembly/index/w + i32.mul + i32.add + get_local $3 + i32.add + i32.const 2 + i32.shl + get_local $4 + i32.store + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + block $break|1 + i32.const 0 + set_local $3 + loop $repeat|1 + get_local $3 + get_global $assembly/index/h + i32.lt_s + i32.eqz + br_if $break|1 + call $~lib/bindings/Math/random + get_local $2 + f64.lt + if + get_global $assembly/config/BGR_ALIVE + i32.const -16777216 + i32.or + set_local $4 + get_global $assembly/index/s + get_local $3 + get_global $assembly/index/w + i32.mul + i32.add + get_local $0 + i32.add + i32.const 2 + i32.shl + get_local $4 + i32.store + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|1 + unreachable + end + unreachable + end ) (func $null (; 4 ;) (type $v) ) diff --git a/examples/i64-polyfill/build/optimized.wat b/examples/i64-polyfill/build/optimized.wat index 418428c7..031793a0 100644 --- a/examples/i64-polyfill/build/optimized.wat +++ b/examples/i64-polyfill/build/optimized.wat @@ -4,7 +4,7 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $assembly/i64/lo (mut i32) (i32.const 0)) (global $assembly/i64/hi (mut i32) (i32.const 0)) @@ -41,1394 +41,658 @@ (export "gt_u" (func $assembly/i64/gt_u)) (export "ge_s" (func $assembly/i64/ge_s)) (export "ge_u" (func $assembly/i64/ge_u)) - (func $assembly/i64/getLo (; 0 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ assembly/i64.ts:4:9 - (get_global $assembly/i64/lo) + (func $assembly/i64/getLo (; 0 ;) (type $i) (result i32) + get_global $assembly/i64/lo ) - (func $assembly/i64/getHi (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ assembly/i64.ts:8:9 - (get_global $assembly/i64/hi) + (func $assembly/i64/getHi (; 1 ;) (type $i) (result i32) + get_global $assembly/i64/hi ) - (func $assembly/i64/clz (; 2 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - ;;@ assembly/i64.ts:15:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:15:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:14:12 - (i64.clz - ;;@ assembly/i64.ts:14:29 - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:14:43 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:14:58 - (i64.const 32) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:16:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:16:7 - (i32.const 0) - ) + (func $assembly/i64/clz (; 2 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.clz + i32.wrap/i64 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/ctz (; 3 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - ;;@ assembly/i64.ts:23:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:23:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:22:12 - (i64.ctz - ;;@ assembly/i64.ts:22:29 - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:22:43 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:22:58 - (i64.const 32) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:24:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:24:7 - (i32.const 0) - ) + (func $assembly/i64/ctz (; 3 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ctz + i32.wrap/i64 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/popcnt (; 4 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - ;;@ assembly/i64.ts:31:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:31:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:30:12 - (i64.popcnt - ;;@ assembly/i64.ts:30:32 - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:30:46 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:30:61 - (i64.const 32) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:32:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:32:7 - (i32.const 0) - ) + (func $assembly/i64/popcnt (; 4 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.popcnt + i32.wrap/i64 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/eqz (; 5 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - ;;@ assembly/i64.ts:37:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:36:18 - (i64.eqz - ;;@ assembly/i64.ts:36:19 - (i64.or - ;;@ assembly/i64.ts:36:20 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:36:34 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:36:49 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:38:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:38:7 - (i32.const 0) - ) + (func $assembly/i64/eqz (; 5 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.eqz + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/add (; 6 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/add (; 6 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:43:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:43:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:42:2 - (tee_local $4 - ;;@ assembly/i64.ts:42:12 - (i64.add - (i64.or - ;;@ assembly/i64.ts:42:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:42:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:42:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:42:48 - (i64.or - ;;@ assembly/i64.ts:42:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:42:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:42:80 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:44:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:44:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:44:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:44:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.add + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/sub (; 7 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/sub (; 7 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:49:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:49:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:48:2 - (tee_local $4 - ;;@ assembly/i64.ts:48:12 - (i64.sub - (i64.or - ;;@ assembly/i64.ts:48:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:48:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:48:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:48:48 - (i64.or - ;;@ assembly/i64.ts:48:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:48:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:48:80 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:50:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:50:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:50:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:50:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.sub + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/mul (; 8 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/mul (; 8 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:55:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:55:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:54:2 - (tee_local $4 - ;;@ assembly/i64.ts:54:12 - (i64.mul - (i64.or - ;;@ assembly/i64.ts:54:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:54:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:54:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:54:48 - (i64.or - ;;@ assembly/i64.ts:54:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:54:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:54:80 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:56:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:56:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:56:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:56:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.mul + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/div_s (; 9 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/div_s (; 9 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:61:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:61:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:60:2 - (tee_local $4 - ;;@ assembly/i64.ts:60:12 - (i64.div_s - ;;@ assembly/i64.ts:60:18 - (i64.or - ;;@ assembly/i64.ts:60:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:60:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:60:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:60:59 - (i64.or - ;;@ assembly/i64.ts:60:65 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:60:80 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:60:96 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:62:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:62:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:62:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:62:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.div_s + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/div_u (; 10 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/div_u (; 10 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:67:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:67:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:66:2 - (tee_local $4 - ;;@ assembly/i64.ts:66:12 - (i64.div_u - (i64.or - ;;@ assembly/i64.ts:66:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:66:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:66:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:66:48 - (i64.or - ;;@ assembly/i64.ts:66:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:66:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:66:80 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:68:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:68:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:68:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:68:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.div_u + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/rem_s (; 11 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/rem_s (; 11 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:73:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:73:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:72:2 - (tee_local $4 - ;;@ assembly/i64.ts:72:12 - (i64.rem_s - ;;@ assembly/i64.ts:72:18 - (i64.or - ;;@ assembly/i64.ts:72:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:72:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:72:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:72:59 - (i64.or - ;;@ assembly/i64.ts:72:65 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:72:80 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:72:96 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:74:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:74:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:74:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:74:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rem_s + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/rem_u (; 12 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/rem_u (; 12 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:79:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:79:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:78:2 - (tee_local $4 - ;;@ assembly/i64.ts:78:12 - (i64.rem_u - (i64.or - ;;@ assembly/i64.ts:78:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:78:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:78:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:78:48 - (i64.or - ;;@ assembly/i64.ts:78:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:78:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:78:80 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:80:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:80:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:80:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:80:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rem_u + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/and (; 13 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/and (; 13 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:85:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:85:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:84:2 - (tee_local $4 - ;;@ assembly/i64.ts:84:12 - (i64.and - (i64.or - ;;@ assembly/i64.ts:84:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:84:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:84:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:84:48 - (i64.or - ;;@ assembly/i64.ts:84:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:84:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:84:80 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:86:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:86:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:86:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:86:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.and + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/or (; 14 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/or (; 14 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:91:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:91:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:90:2 - (tee_local $4 - ;;@ assembly/i64.ts:90:12 - (i64.or - (i64.or - ;;@ assembly/i64.ts:90:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:90:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:90:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:90:48 - (i64.or - ;;@ assembly/i64.ts:90:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:90:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:90:80 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:92:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:92:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:92:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:92:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.or + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/xor (; 15 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/xor (; 15 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:97:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:97:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:96:2 - (tee_local $4 - ;;@ assembly/i64.ts:96:12 - (i64.xor - (i64.or - ;;@ assembly/i64.ts:96:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:96:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:96:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:96:48 - (i64.or - ;;@ assembly/i64.ts:96:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:96:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:96:80 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:98:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:98:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:98:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:98:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.xor + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/shl (; 16 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/shl (; 16 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:103:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:103:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:102:2 - (tee_local $4 - ;;@ assembly/i64.ts:102:12 - (i64.shl - (i64.or - ;;@ assembly/i64.ts:102:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:102:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:102:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:102:49 - (i64.or - ;;@ assembly/i64.ts:102:50 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:102:65 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:102:81 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:104:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:104:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:104:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:104:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shl + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/shr_s (; 17 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/shr_s (; 17 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:109:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:109:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:108:2 - (tee_local $4 - ;;@ assembly/i64.ts:108:12 - (i64.shr_s - ;;@ assembly/i64.ts:108:18 - (i64.or - ;;@ assembly/i64.ts:108:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:108:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:108:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:108:60 - (i64.or - ;;@ assembly/i64.ts:108:66 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:108:81 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:108:97 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:110:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:110:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:110:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:110:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shr_s + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/shr_u (; 18 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/shr_u (; 18 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:115:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:115:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:114:2 - (tee_local $4 - ;;@ assembly/i64.ts:114:12 - (i64.shr_u - (i64.or - ;;@ assembly/i64.ts:114:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:114:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:114:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:114:49 - (i64.or - ;;@ assembly/i64.ts:114:50 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:114:65 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:114:81 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:116:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:116:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:116:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:116:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shr_u + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/rotl (; 19 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/rotl (; 19 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:123:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:123:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:122:2 - (tee_local $4 - ;;@ assembly/i64.ts:122:12 - (i64.rotl - ;;@ assembly/i64.ts:122:30 - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:122:44 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:122:59 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:122:63 - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:122:78 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:122:94 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:124:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:124:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:124:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:124:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rotl + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/rotr (; 20 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/i64/rotr (; 20 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:131:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:131:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:130:2 - (tee_local $4 - ;;@ assembly/i64.ts:130:12 - (i64.rotr - ;;@ assembly/i64.ts:130:30 - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:130:44 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:130:59 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:130:63 - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:130:78 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:130:94 - (i64.const 32) - ) - ) - ) - ) - ) - ) - ;;@ assembly/i64.ts:132:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:132:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:132:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:132:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rotr + tee_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) - (func $assembly/i64/eq (; 21 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ assembly/i64.ts:137:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:136:18 - (i64.eq - (i64.or - ;;@ assembly/i64.ts:136:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:136:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:136:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:136:55 - (i64.or - ;;@ assembly/i64.ts:136:56 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:136:71 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:136:87 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:138:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:138:7 - (i32.const 0) - ) + (func $assembly/i64/eq (; 21 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.eq + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/ne (; 22 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ assembly/i64.ts:143:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:142:18 - (i64.ne - (i64.or - ;;@ assembly/i64.ts:142:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:142:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:142:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:142:55 - (i64.or - ;;@ assembly/i64.ts:142:56 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:142:71 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:142:87 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:144:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:144:7 - (i32.const 0) - ) + (func $assembly/i64/ne (; 22 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ne + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/lt_s (; 23 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ assembly/i64.ts:149:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:148:18 - (i64.lt_s - (i64.or - ;;@ assembly/i64.ts:148:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:148:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:148:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:148:59 - (i64.or - ;;@ assembly/i64.ts:148:65 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:148:80 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:148:96 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:150:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:150:7 - (i32.const 0) - ) + (func $assembly/i64/lt_s (; 23 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.lt_s + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/lt_u (; 24 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ assembly/i64.ts:155:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:154:18 - (i64.lt_u - (i64.or - ;;@ assembly/i64.ts:154:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:154:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:154:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:154:54 - (i64.or - ;;@ assembly/i64.ts:154:55 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:154:70 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:154:86 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:156:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:156:7 - (i32.const 0) - ) + (func $assembly/i64/lt_u (; 24 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.lt_u + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/le_s (; 25 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ assembly/i64.ts:161:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:160:18 - (i64.le_s - (i64.or - ;;@ assembly/i64.ts:160:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:160:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:160:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:160:60 - (i64.or - ;;@ assembly/i64.ts:160:66 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:160:81 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:160:97 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:162:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:162:7 - (i32.const 0) - ) + (func $assembly/i64/le_s (; 25 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.le_s + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/le_u (; 26 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ assembly/i64.ts:167:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:166:18 - (i64.le_u - (i64.or - ;;@ assembly/i64.ts:166:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:166:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:166:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:166:55 - (i64.or - ;;@ assembly/i64.ts:166:56 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:166:71 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:166:87 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:168:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:168:7 - (i32.const 0) - ) + (func $assembly/i64/le_u (; 26 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.le_u + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/gt_s (; 27 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ assembly/i64.ts:173:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:172:18 - (i64.gt_s - (i64.or - ;;@ assembly/i64.ts:172:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:172:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:172:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:172:59 - (i64.or - ;;@ assembly/i64.ts:172:65 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:172:80 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:172:96 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:174:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:174:7 - (i32.const 0) - ) + (func $assembly/i64/gt_s (; 27 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.gt_s + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/gt_u (; 28 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ assembly/i64.ts:179:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:178:18 - (i64.gt_u - (i64.or - ;;@ assembly/i64.ts:178:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:178:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:178:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:178:54 - (i64.or - ;;@ assembly/i64.ts:178:55 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:178:70 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:178:86 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:180:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:180:7 - (i32.const 0) - ) + (func $assembly/i64/gt_u (; 28 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.gt_u + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/ge_s (; 29 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ assembly/i64.ts:185:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:184:18 - (i64.ge_s - (i64.or - ;;@ assembly/i64.ts:184:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:184:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:184:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:184:60 - (i64.or - ;;@ assembly/i64.ts:184:66 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:184:81 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:184:97 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:186:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:186:7 - (i32.const 0) - ) + (func $assembly/i64/ge_s (; 29 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ge_s + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $assembly/i64/ge_u (; 30 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ assembly/i64.ts:191:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:190:18 - (i64.ge_u - (i64.or - ;;@ assembly/i64.ts:190:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:190:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:190:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:190:55 - (i64.or - ;;@ assembly/i64.ts:190:56 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:190:71 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:190:87 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:192:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:192:7 - (i32.const 0) - ) + (func $assembly/i64/ge_u (; 30 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ge_u + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) - (func $null (; 31 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 31 ;) (type $v) + nop ) ) diff --git a/examples/i64-polyfill/build/untouched.wat b/examples/i64-polyfill/build/untouched.wat index 73041433..32fafb2f 100644 --- a/examples/i64-polyfill/build/untouched.wat +++ b/examples/i64-polyfill/build/untouched.wat @@ -4,7 +4,7 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $assembly/i64/lo (mut i32) (i32.const 0)) (global $assembly/i64/hi (mut i32) (i32.const 0)) @@ -45,1487 +45,712 @@ (export "ge_s" (func $assembly/i64/ge_s)) (export "ge_u" (func $assembly/i64/ge_u)) (func $assembly/i64/getLo (; 0 ;) (type $i) (result i32) - ;;@ assembly/i64.ts:4:9 - (get_global $assembly/i64/lo) + get_global $assembly/i64/lo ) (func $assembly/i64/getHi (; 1 ;) (type $i) (result i32) - ;;@ assembly/i64.ts:8:9 - (get_global $assembly/i64/hi) + get_global $assembly/i64/hi ) (func $assembly/i64/clz (; 2 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i64) - ;;@ assembly/i64.ts:14:2 - (set_local $2 - ;;@ assembly/i64.ts:14:12 - (i64.clz - ;;@ assembly/i64.ts:14:29 - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:14:43 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:14:58 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:15:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:15:7 - (i32.wrap/i64 - (get_local $2) - ) - ) - ;;@ assembly/i64.ts:16:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:16:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.clz + set_local $2 + get_local $2 + i32.wrap/i64 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/ctz (; 3 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i64) - ;;@ assembly/i64.ts:22:2 - (set_local $2 - ;;@ assembly/i64.ts:22:12 - (i64.ctz - ;;@ assembly/i64.ts:22:29 - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:22:43 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:22:58 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:23:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:23:7 - (i32.wrap/i64 - (get_local $2) - ) - ) - ;;@ assembly/i64.ts:24:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:24:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ctz + set_local $2 + get_local $2 + i32.wrap/i64 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/popcnt (; 4 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i64) - ;;@ assembly/i64.ts:30:2 - (set_local $2 - ;;@ assembly/i64.ts:30:12 - (i64.popcnt - ;;@ assembly/i64.ts:30:32 - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:30:46 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:30:61 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:31:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:31:7 - (i32.wrap/i64 - (get_local $2) - ) - ) - ;;@ assembly/i64.ts:32:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:32:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.popcnt + set_local $2 + get_local $2 + i32.wrap/i64 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/eqz (; 5 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) - ;;@ assembly/i64.ts:36:2 - (set_local $2 - ;;@ assembly/i64.ts:36:18 - (i64.eqz - ;;@ assembly/i64.ts:36:19 - (i64.or - ;;@ assembly/i64.ts:36:20 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:36:34 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:36:49 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:37:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:37:7 - (get_local $2) - ) - ;;@ assembly/i64.ts:38:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:38:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.eqz + set_local $2 + get_local $2 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/add (; 6 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:42:2 - (set_local $4 - ;;@ assembly/i64.ts:42:12 - (i64.add - (i64.or - ;;@ assembly/i64.ts:42:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:42:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:42:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:42:48 - (i64.or - ;;@ assembly/i64.ts:42:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:42:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:42:80 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:43:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:43:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:44:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:44:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:44:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:44:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.add + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/sub (; 7 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:48:2 - (set_local $4 - ;;@ assembly/i64.ts:48:12 - (i64.sub - (i64.or - ;;@ assembly/i64.ts:48:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:48:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:48:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:48:48 - (i64.or - ;;@ assembly/i64.ts:48:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:48:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:48:80 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:49:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:49:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:50:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:50:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:50:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:50:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.sub + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/mul (; 8 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:54:2 - (set_local $4 - ;;@ assembly/i64.ts:54:12 - (i64.mul - (i64.or - ;;@ assembly/i64.ts:54:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:54:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:54:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:54:48 - (i64.or - ;;@ assembly/i64.ts:54:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:54:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:54:80 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:55:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:55:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:56:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:56:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:56:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:56:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.mul + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/div_s (; 9 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:60:2 - (set_local $4 - ;;@ assembly/i64.ts:60:12 - (i64.div_s - ;;@ assembly/i64.ts:60:18 - (i64.or - ;;@ assembly/i64.ts:60:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:60:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:60:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:60:59 - (i64.or - ;;@ assembly/i64.ts:60:65 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:60:80 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:60:96 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:61:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:61:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:62:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:62:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:62:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:62:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.div_s + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/div_u (; 10 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:66:2 - (set_local $4 - ;;@ assembly/i64.ts:66:12 - (i64.div_u - (i64.or - ;;@ assembly/i64.ts:66:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:66:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:66:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:66:48 - (i64.or - ;;@ assembly/i64.ts:66:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:66:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:66:80 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:67:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:67:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:68:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:68:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:68:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:68:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.div_u + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/rem_s (; 11 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:72:2 - (set_local $4 - ;;@ assembly/i64.ts:72:12 - (i64.rem_s - ;;@ assembly/i64.ts:72:18 - (i64.or - ;;@ assembly/i64.ts:72:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:72:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:72:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:72:59 - (i64.or - ;;@ assembly/i64.ts:72:65 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:72:80 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:72:96 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:73:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:73:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:74:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:74:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:74:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:74:20 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rem_s + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/rem_u (; 12 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:78:2 - (set_local $4 - ;;@ assembly/i64.ts:78:12 - (i64.rem_u - (i64.or - ;;@ assembly/i64.ts:78:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:78:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:78:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:78:48 - (i64.or - ;;@ assembly/i64.ts:78:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:78:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:78:80 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:79:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:79:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:80:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:80:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:80:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:80:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rem_u + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/and (; 13 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:84:2 - (set_local $4 - ;;@ assembly/i64.ts:84:12 - (i64.and - (i64.or - ;;@ assembly/i64.ts:84:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:84:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:84:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:84:48 - (i64.or - ;;@ assembly/i64.ts:84:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:84:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:84:80 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:85:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:85:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:86:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:86:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:86:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:86:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.and + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/or (; 14 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:90:2 - (set_local $4 - ;;@ assembly/i64.ts:90:12 - (i64.or - (i64.or - ;;@ assembly/i64.ts:90:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:90:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:90:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:90:48 - (i64.or - ;;@ assembly/i64.ts:90:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:90:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:90:80 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:91:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:91:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:92:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:92:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:92:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:92:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.or + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/xor (; 15 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:96:2 - (set_local $4 - ;;@ assembly/i64.ts:96:12 - (i64.xor - (i64.or - ;;@ assembly/i64.ts:96:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:96:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:96:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:96:48 - (i64.or - ;;@ assembly/i64.ts:96:49 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:96:64 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:96:80 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:97:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:97:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:98:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:98:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:98:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:98:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.xor + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/shl (; 16 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:102:2 - (set_local $4 - ;;@ assembly/i64.ts:102:12 - (i64.shl - (i64.or - ;;@ assembly/i64.ts:102:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:102:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:102:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:102:49 - (i64.or - ;;@ assembly/i64.ts:102:50 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:102:65 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:102:81 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:103:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:103:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:104:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:104:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:104:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:104:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shl + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/shr_s (; 17 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:108:2 - (set_local $4 - ;;@ assembly/i64.ts:108:12 - (i64.shr_s - ;;@ assembly/i64.ts:108:18 - (i64.or - ;;@ assembly/i64.ts:108:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:108:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:108:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:108:60 - (i64.or - ;;@ assembly/i64.ts:108:66 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:108:81 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:108:97 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:109:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:109:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:110:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:110:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:110:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:110:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shr_s + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/shr_u (; 18 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:114:2 - (set_local $4 - ;;@ assembly/i64.ts:114:12 - (i64.shr_u - (i64.or - ;;@ assembly/i64.ts:114:13 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:114:27 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:114:42 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:114:49 - (i64.or - ;;@ assembly/i64.ts:114:50 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:114:65 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:114:81 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:115:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:115:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:116:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:116:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:116:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:116:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shr_u + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/rotl (; 19 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:122:2 - (set_local $4 - ;;@ assembly/i64.ts:122:12 - (i64.rotl - ;;@ assembly/i64.ts:122:30 - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:122:44 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:122:59 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:122:63 - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:122:78 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:122:94 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:123:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:123:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:124:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:124:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:124:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:124:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rotl + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/rotr (; 20 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - ;;@ assembly/i64.ts:130:2 - (set_local $4 - ;;@ assembly/i64.ts:130:12 - (i64.rotr - ;;@ assembly/i64.ts:130:30 - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:130:44 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:130:59 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:130:63 - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:130:78 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:130:94 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:131:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:131:7 - (i32.wrap/i64 - (get_local $4) - ) - ) - ;;@ assembly/i64.ts:132:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:132:7 - (i32.wrap/i64 - ;;@ assembly/i64.ts:132:13 - (i64.shr_u - (get_local $4) - ;;@ assembly/i64.ts:132:21 - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rotr + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $assembly/i64/hi ) (func $assembly/i64/eq (; 21 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - ;;@ assembly/i64.ts:136:2 - (set_local $4 - ;;@ assembly/i64.ts:136:18 - (i64.eq - (i64.or - ;;@ assembly/i64.ts:136:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:136:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:136:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:136:55 - (i64.or - ;;@ assembly/i64.ts:136:56 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:136:71 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:136:87 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:137:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:137:7 - (get_local $4) - ) - ;;@ assembly/i64.ts:138:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:138:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.eq + set_local $4 + get_local $4 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/ne (; 22 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - ;;@ assembly/i64.ts:142:2 - (set_local $4 - ;;@ assembly/i64.ts:142:18 - (i64.ne - (i64.or - ;;@ assembly/i64.ts:142:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:142:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:142:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:142:55 - (i64.or - ;;@ assembly/i64.ts:142:56 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:142:71 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:142:87 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:143:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:143:7 - (get_local $4) - ) - ;;@ assembly/i64.ts:144:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:144:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ne + set_local $4 + get_local $4 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/lt_s (; 23 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - ;;@ assembly/i64.ts:148:2 - (set_local $4 - ;;@ assembly/i64.ts:148:18 - (i64.lt_s - (i64.or - ;;@ assembly/i64.ts:148:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:148:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:148:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:148:59 - (i64.or - ;;@ assembly/i64.ts:148:65 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:148:80 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:148:96 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:149:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:149:7 - (get_local $4) - ) - ;;@ assembly/i64.ts:150:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:150:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.lt_s + set_local $4 + get_local $4 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/lt_u (; 24 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - ;;@ assembly/i64.ts:154:2 - (set_local $4 - ;;@ assembly/i64.ts:154:18 - (i64.lt_u - (i64.or - ;;@ assembly/i64.ts:154:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:154:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:154:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:154:54 - (i64.or - ;;@ assembly/i64.ts:154:55 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:154:70 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:154:86 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:155:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:155:7 - (get_local $4) - ) - ;;@ assembly/i64.ts:156:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:156:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.lt_u + set_local $4 + get_local $4 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/le_s (; 25 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - ;;@ assembly/i64.ts:160:2 - (set_local $4 - ;;@ assembly/i64.ts:160:18 - (i64.le_s - (i64.or - ;;@ assembly/i64.ts:160:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:160:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:160:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:160:60 - (i64.or - ;;@ assembly/i64.ts:160:66 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:160:81 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:160:97 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:161:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:161:7 - (get_local $4) - ) - ;;@ assembly/i64.ts:162:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:162:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.le_s + set_local $4 + get_local $4 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/le_u (; 26 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - ;;@ assembly/i64.ts:166:2 - (set_local $4 - ;;@ assembly/i64.ts:166:18 - (i64.le_u - (i64.or - ;;@ assembly/i64.ts:166:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:166:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:166:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:166:55 - (i64.or - ;;@ assembly/i64.ts:166:56 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:166:71 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:166:87 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:167:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:167:7 - (get_local $4) - ) - ;;@ assembly/i64.ts:168:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:168:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.le_u + set_local $4 + get_local $4 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/gt_s (; 27 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - ;;@ assembly/i64.ts:172:2 - (set_local $4 - ;;@ assembly/i64.ts:172:18 - (i64.gt_s - (i64.or - ;;@ assembly/i64.ts:172:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:172:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:172:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:172:59 - (i64.or - ;;@ assembly/i64.ts:172:65 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:172:80 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:172:96 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:173:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:173:7 - (get_local $4) - ) - ;;@ assembly/i64.ts:174:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:174:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.gt_s + set_local $4 + get_local $4 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/gt_u (; 28 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - ;;@ assembly/i64.ts:178:2 - (set_local $4 - ;;@ assembly/i64.ts:178:18 - (i64.gt_u - (i64.or - ;;@ assembly/i64.ts:178:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:178:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:178:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:178:54 - (i64.or - ;;@ assembly/i64.ts:178:55 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:178:70 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:178:86 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:179:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:179:7 - (get_local $4) - ) - ;;@ assembly/i64.ts:180:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:180:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.gt_u + set_local $4 + get_local $4 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/ge_s (; 29 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - ;;@ assembly/i64.ts:184:2 - (set_local $4 - ;;@ assembly/i64.ts:184:18 - (i64.ge_s - (i64.or - ;;@ assembly/i64.ts:184:24 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:184:38 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:184:53 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:184:60 - (i64.or - ;;@ assembly/i64.ts:184:66 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:184:81 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:184:97 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:185:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:185:7 - (get_local $4) - ) - ;;@ assembly/i64.ts:186:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:186:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ge_s + set_local $4 + get_local $4 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $assembly/i64/ge_u (; 30 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - ;;@ assembly/i64.ts:190:2 - (set_local $4 - ;;@ assembly/i64.ts:190:18 - (i64.ge_u - (i64.or - ;;@ assembly/i64.ts:190:19 - (i64.extend_u/i32 - (get_local $0) - ) - ;;@ assembly/i64.ts:190:33 - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - ;;@ assembly/i64.ts:190:48 - (i64.const 32) - ) - ) - ;;@ assembly/i64.ts:190:55 - (i64.or - ;;@ assembly/i64.ts:190:56 - (i64.extend_u/i32 - (get_local $2) - ) - ;;@ assembly/i64.ts:190:71 - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - ;;@ assembly/i64.ts:190:87 - (i64.const 32) - ) - ) - ) - ) - ;;@ assembly/i64.ts:191:2 - (set_global $assembly/i64/lo - ;;@ assembly/i64.ts:191:7 - (get_local $4) - ) - ;;@ assembly/i64.ts:192:2 - (set_global $assembly/i64/hi - ;;@ assembly/i64.ts:192:7 - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ge_u + set_local $4 + get_local $4 + set_global $assembly/i64/lo + i32.const 0 + set_global $assembly/i64/hi ) (func $null (; 31 ;) (type $v) ) diff --git a/examples/mandelbrot/build/optimized.wat b/examples/mandelbrot/build/optimized.wat index f6824b05..8d8ea52d 100644 --- a/examples/mandelbrot/build/optimized.wat +++ b/examples/mandelbrot/build/optimized.wat @@ -3,15 +3,15 @@ (type $FF (func (param f64) (result f64))) (type $v (func)) (import "env" "memory" (memory $0 0)) - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "Math" "LN2" (global $~lib/bindings/Math/LN2 f64)) (import "Math" "sqrt" (func $~lib/bindings/Math/sqrt (param f64) (result f64))) (import "Math" "log" (func $~lib/bindings/Math/log (param f64) (result f64))) + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "computeLine" (func $assembly/index/computeLine)) - (func $assembly/index/computeLine (; 2 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $assembly/index/computeLine (; 2 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 f64) (local $5 f64) (local $6 f64) @@ -21,342 +21,191 @@ (local $10 f64) (local $11 f64) (local $12 f64) - ;;@ assembly/index.ts:8:2 - (set_local $11 - ;;@ assembly/index.ts:8:19 - (f64.div - (tee_local $6 - (f64.convert_u/i32 - (get_local $1) - ) - ) - ;;@ assembly/index.ts:8:27 - (f64.const 1.6) - ) - ) - ;;@ assembly/index.ts:11:2 - (set_local $9 - ;;@ assembly/index.ts:11:18 - (f64.mul - (f64.sub - (f64.convert_u/i32 - (get_local $0) - ) - ;;@ assembly/index.ts:9:2 - (tee_local $7 - ;;@ assembly/index.ts:9:19 - (f64.div - (tee_local $4 - (f64.convert_u/i32 - (get_local $2) - ) - ) - ;;@ assembly/index.ts:9:28 - (f64.const 2) - ) - ) - ) - ;;@ assembly/index.ts:10:2 - (tee_local $12 - ;;@ assembly/index.ts:10:14 - (f64.div - (f64.const 10) - ;;@ assembly/index.ts:10:21 - (f64.min - ;;@ assembly/index.ts:10:25 - (f64.mul - (f64.const 3) - (get_local $6) - ) - ;;@ assembly/index.ts:10:36 - (f64.mul - (f64.const 4) - (get_local $4) - ) - ) - ) - ) - ) - ) - ;;@ assembly/index.ts:12:2 - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - ;;@ assembly/index.ts:12:23 - (i32.ge_u - (get_local $8) - (get_local $1) - ) - ) - ;;@ assembly/index.ts:13:4 - (set_local $10 - ;;@ assembly/index.ts:13:15 - (f64.mul - (f64.sub - (f64.convert_u/i32 - (get_local $8) - ) - (get_local $11) - ) - (get_local $12) - ) - ) - (set_local $4 - ;;@ assembly/index.ts:16:13 - (f64.const 0) - ) - (set_local $5 - ;;@ assembly/index.ts:16:23 - (f64.const 0) - ) - ;;@ assembly/index.ts:17:4 - (set_local $2 - ;;@ assembly/index.ts:17:25 - (i32.const 0) - ) - ;;@ assembly/index.ts:18:4 - (block $break|1 - (loop $continue|1 - (if - ;;@ assembly/index.ts:18:11 - (f64.le - (f64.add - (tee_local $6 - ;;@ assembly/index.ts:18:19 - (f64.mul - (get_local $4) - (get_local $4) - ) - ) - ;;@ assembly/index.ts:18:30 - (tee_local $7 - ;;@ assembly/index.ts:18:38 - (f64.mul - (get_local $5) - (get_local $5) - ) - ) - ) - ;;@ assembly/index.ts:18:50 - (f64.const 4) - ) - (block - ;;@ assembly/index.ts:20:6 - (set_local $5 - ;;@ assembly/index.ts:20:11 - (f64.add - (f64.mul - (f64.mul - (f64.const 2) - (get_local $4) - ) - (get_local $5) - ) - (get_local $9) - ) - ) - ;;@ assembly/index.ts:21:6 - (set_local $4 - ;;@ assembly/index.ts:19:18 - (f64.add - (f64.sub - (get_local $6) - (get_local $7) - ) - (get_local $10) - ) - ) - ;;@ assembly/index.ts:22:30 - (br_if $break|1 - ;;@ assembly/index.ts:22:10 - (i32.ge_u - (get_local $2) - (get_local $3) - ) - ) - ;;@ assembly/index.ts:23:6 - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ;;@ assembly/index.ts:27:4 - (block $break|2 - ;;@ assembly/index.ts:27:9 - (set_local $6 - ;;@ assembly/index.ts:27:29 - (f64.min - ;;@ assembly/index.ts:27:33 - (f64.const 8) - ;;@ assembly/index.ts:27:36 - (f64.convert_u/i32 - (get_local $3) - ) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - ;;@ assembly/index.ts:27:44 - (f64.lt - (f64.convert_u/i32 - (get_local $2) - ) - (get_local $6) - ) - ) - ) - ;;@ assembly/index.ts:28:6 - (set_local $7 - ;;@ assembly/index.ts:28:18 - (f64.add - (f64.sub - (f64.mul - (get_local $4) - (get_local $4) - ) - ;;@ assembly/index.ts:28:28 - (f64.mul - (get_local $5) - (get_local $5) - ) - ) - (get_local $10) - ) - ) - ;;@ assembly/index.ts:29:6 - (set_local $5 - ;;@ assembly/index.ts:29:11 - (f64.add - (f64.mul - (f64.mul - (f64.const 2) - (get_local $4) - ) - (get_local $5) - ) - (get_local $9) - ) - ) - ;;@ assembly/index.ts:30:6 - (set_local $4 - (get_local $7) - ) - ;;@ assembly/index.ts:27:71 - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ;;@ assembly/index.ts:40:4 - (i32.store16 - ;;@ assembly/index.ts:40:15 - (i32.shl - (i32.add - ;;@ assembly/index.ts:40:16 - (i32.mul - (get_local $0) - (get_local $1) - ) - (get_local $8) - ) - ;;@ assembly/index.ts:40:34 - (i32.const 1) - ) - (tee_local $2 - ;;@ assembly/index.ts:37:15 - (if (result i32) - (f64.eq - (f64.sub - ;;@ assembly/index.ts:36:4 - (tee_local $6 - ;;@ assembly/index.ts:36:15 - (f64.div - ;;@ assembly/index.ts:36:20 - (call $~lib/bindings/Math/log - ;;@ assembly/index.ts:36:29 - (call $~lib/bindings/Math/log - ;;@ assembly/index.ts:36:38 - (call $~lib/bindings/Math/sqrt - ;;@ assembly/index.ts:36:43 - (f64.add - (f64.mul - (get_local $4) - (get_local $4) - ) - ;;@ assembly/index.ts:36:53 - (f64.mul - (get_local $5) - (get_local $5) - ) - ) - ) - ) - ) - ;;@ assembly/index.ts:36:66 - (get_global $~lib/bindings/Math/LN2) - ) - ) - (get_local $6) - ) - (f64.const 0) - ) - ;;@ assembly/index.ts:38:8 - (i32.trunc_u/f64 - ;;@ assembly/index.ts:38:14 - (f64.mul - (f64.const 2047) - (f64.min - (f64.max - ;;@ assembly/index.ts:38:39 - (f64.div - (f64.sub - (f64.convert_u/i32 - ;;@ assembly/index.ts:38:40 - (i32.add - (get_local $2) - ;;@ assembly/index.ts:38:52 - (i32.const 1) - ) - ) - (get_local $6) - ) - (f64.convert_u/i32 - (get_local $3) - ) - ) - (f64.const 0) - ) - (f64.const 1) - ) - ) - ) - (i32.const 2047) - ) - ) - ) - ;;@ assembly/index.ts:12:34 - (set_local $8 - (i32.add - (get_local $8) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_local $1 + f64.convert_u/i32 + tee_local $6 + f64.const 1.6 + f64.div + set_local $11 + get_local $0 + f64.convert_u/i32 + get_local $2 + f64.convert_u/i32 + tee_local $4 + f64.const 2 + f64.div + tee_local $7 + f64.sub + f64.const 10 + f64.const 3 + get_local $6 + f64.mul + f64.const 4 + get_local $4 + f64.mul + f64.min + f64.div + tee_local $12 + f64.mul + set_local $9 + block $break|0 + loop $repeat|0 + get_local $8 + get_local $1 + i32.ge_u + br_if $break|0 + get_local $8 + f64.convert_u/i32 + get_local $11 + f64.sub + get_local $12 + f64.mul + set_local $10 + f64.const 0 + set_local $4 + f64.const 0 + set_local $5 + i32.const 0 + set_local $2 + block $break|1 + loop $continue|1 + get_local $4 + get_local $4 + f64.mul + tee_local $6 + get_local $5 + get_local $5 + f64.mul + tee_local $7 + f64.add + f64.const 4 + f64.le + if + f64.const 2 + get_local $4 + f64.mul + get_local $5 + f64.mul + get_local $9 + f64.add + set_local $5 + get_local $6 + get_local $7 + f64.sub + get_local $10 + f64.add + set_local $4 + get_local $2 + get_local $3 + i32.ge_u + br_if $break|1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $continue|1 + end + end + end + block $break|2 + f64.const 8 + get_local $3 + f64.convert_u/i32 + f64.min + set_local $6 + loop $repeat|2 + get_local $2 + f64.convert_u/i32 + get_local $6 + f64.lt + i32.eqz + br_if $break|2 + get_local $4 + get_local $4 + f64.mul + get_local $5 + get_local $5 + f64.mul + f64.sub + get_local $10 + f64.add + set_local $7 + f64.const 2 + get_local $4 + f64.mul + get_local $5 + f64.mul + get_local $9 + f64.add + set_local $5 + get_local $7 + set_local $4 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + get_local $1 + i32.mul + get_local $8 + i32.add + i32.const 1 + i32.shl + get_local $4 + get_local $4 + f64.mul + get_local $5 + get_local $5 + f64.mul + f64.add + call $~lib/bindings/Math/sqrt + call $~lib/bindings/Math/log + call $~lib/bindings/Math/log + get_global $~lib/bindings/Math/LN2 + f64.div + tee_local $6 + get_local $6 + f64.sub + f64.const 0 + f64.eq + if (result i32) + f64.const 2047 + get_local $2 + i32.const 1 + i32.add + f64.convert_u/i32 + get_local $6 + f64.sub + get_local $3 + f64.convert_u/i32 + f64.div + f64.const 0 + f64.max + f64.const 1 + f64.min + f64.mul + i32.trunc_u/f64 + else + i32.const 2047 + end + tee_local $2 + i32.store16 + get_local $8 + i32.const 1 + i32.add + set_local $8 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/examples/mandelbrot/build/untouched.wat b/examples/mandelbrot/build/untouched.wat index 3d313e2d..7fd33eb0 100644 --- a/examples/mandelbrot/build/untouched.wat +++ b/examples/mandelbrot/build/untouched.wat @@ -5,42 +5,29 @@ (type $FFFF (func (param f64 f64 f64) (result f64))) (type $v (func)) (import "env" "memory" (memory $0 0)) - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "Math" "LN2" (global $~lib/bindings/Math/LN2 f64)) (import "Math" "sqrt" (func $~lib/bindings/Math/sqrt (param f64) (result f64))) (import "Math" "log" (func $~lib/bindings/Math/log (param f64) (result f64))) + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $assembly/index/NUM_COLORS i32 (i32.const 2048)) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) (export "table" (table $0)) (export "computeLine" (func $assembly/index/computeLine)) (func $~lib/builtins/isFinite (; 2 ;) (type $Fi) (param $0 f64) (result i32) - ;;@ ~lib/builtins.ts:16:78 - (f64.eq - ;;@ ~lib/builtins.ts:16:61 - (f64.sub - (get_local $0) - ;;@ ~lib/builtins.ts:16:69 - (get_local $0) - ) - ;;@ ~lib/builtins.ts:16:78 - (f64.const 0) - ) + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.eq ) (func $assembly/index/clamp (; 3 ;) (type $FFFF) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) - ;;@ assembly/index.ts:47:43 - (f64.min - ;;@ assembly/index.ts:47:13 - (f64.max - ;;@ assembly/index.ts:47:17 - (get_local $0) - ;;@ assembly/index.ts:47:24 - (get_local $1) - ) - ;;@ assembly/index.ts:47:35 - (get_local $2) - ) + get_local $0 + get_local $1 + f64.max + get_local $2 + f64.min ) (func $assembly/index/computeLine (; 4 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 f64) @@ -57,413 +44,207 @@ (local $15 f64) (local $16 f64) (local $17 i32) - ;;@ assembly/index.ts:8:2 - (set_local $4 - ;;@ assembly/index.ts:8:19 - (f64.div - (f64.convert_u/i32 - (get_local $1) - ) - ;;@ assembly/index.ts:8:27 - (f64.const 1.6) - ) - ) - ;;@ assembly/index.ts:9:2 - (set_local $5 - ;;@ assembly/index.ts:9:19 - (f64.div - (f64.convert_u/i32 - (get_local $2) - ) - ;;@ assembly/index.ts:9:28 - (f64.const 2) - ) - ) - ;;@ assembly/index.ts:10:2 - (set_local $6 - ;;@ assembly/index.ts:10:14 - (f64.div - (f64.const 10) - ;;@ assembly/index.ts:10:21 - (f64.min - ;;@ assembly/index.ts:10:25 - (f64.mul - (f64.const 3) - (f64.convert_u/i32 - ;;@ assembly/index.ts:10:29 - (get_local $1) - ) - ) - ;;@ assembly/index.ts:10:36 - (f64.mul - (f64.const 4) - (f64.convert_u/i32 - ;;@ assembly/index.ts:10:40 - (get_local $2) - ) - ) - ) - ) - ) - ;;@ assembly/index.ts:11:2 - (set_local $7 - ;;@ assembly/index.ts:11:18 - (f64.mul - (f64.sub - (f64.convert_u/i32 - ;;@ assembly/index.ts:11:19 - (get_local $0) - ) - ;;@ assembly/index.ts:11:23 - (get_local $5) - ) - ;;@ assembly/index.ts:11:37 - (get_local $6) - ) - ) - ;;@ assembly/index.ts:12:2 - (block $break|0 - ;;@ assembly/index.ts:12:7 - (set_local $8 - ;;@ assembly/index.ts:12:20 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - ;;@ assembly/index.ts:12:23 - (i32.lt_u - (get_local $8) - ;;@ assembly/index.ts:12:27 - (get_local $1) - ) - ) - ) - ;;@ assembly/index.ts:12:39 - (block - ;;@ assembly/index.ts:13:4 - (set_local $9 - ;;@ assembly/index.ts:13:15 - (f64.mul - (f64.sub - (f64.convert_u/i32 - ;;@ assembly/index.ts:13:16 - (get_local $8) - ) - ;;@ assembly/index.ts:13:20 - (get_local $4) - ) - ;;@ assembly/index.ts:13:34 - (get_local $6) - ) - ) - (set_local $10 - ;;@ assembly/index.ts:16:13 - (f64.const 0) - ) - (set_local $11 - ;;@ assembly/index.ts:16:23 - (f64.const 0) - ) - ;;@ assembly/index.ts:17:4 - (set_local $14 - ;;@ assembly/index.ts:17:25 - (i32.const 0) - ) - ;;@ assembly/index.ts:18:4 - (block $break|1 - (loop $continue|1 - (if - ;;@ assembly/index.ts:18:11 - (f64.le - (f64.add - (tee_local $12 - ;;@ assembly/index.ts:18:19 - (f64.mul - (get_local $10) - ;;@ assembly/index.ts:18:24 - (get_local $10) - ) - ) - ;;@ assembly/index.ts:18:30 - (tee_local $13 - ;;@ assembly/index.ts:18:38 - (f64.mul - (get_local $11) - ;;@ assembly/index.ts:18:43 - (get_local $11) - ) - ) - ) - ;;@ assembly/index.ts:18:50 - (f64.const 4) - ) - (block - ;;@ assembly/index.ts:18:55 - (block - ;;@ assembly/index.ts:19:6 - (set_local $15 - ;;@ assembly/index.ts:19:18 - (f64.add - (f64.sub - (get_local $12) - ;;@ assembly/index.ts:19:25 - (get_local $13) - ) - ;;@ assembly/index.ts:19:32 - (get_local $9) - ) - ) - ;;@ assembly/index.ts:20:6 - (set_local $11 - ;;@ assembly/index.ts:20:11 - (f64.add - (f64.mul - (f64.mul - (f64.const 2) - ;;@ assembly/index.ts:20:17 - (get_local $10) - ) - ;;@ assembly/index.ts:20:22 - (get_local $11) - ) - ;;@ assembly/index.ts:20:27 - (get_local $7) - ) - ) - ;;@ assembly/index.ts:21:6 - (set_local $10 - ;;@ assembly/index.ts:21:11 - (get_local $15) - ) - ;;@ assembly/index.ts:22:6 - (if - ;;@ assembly/index.ts:22:10 - (i32.ge_u - (get_local $14) - ;;@ assembly/index.ts:22:23 - (get_local $3) - ) - ;;@ assembly/index.ts:22:30 - (br $break|1) - ) - ;;@ assembly/index.ts:23:6 - (set_local $14 - (i32.add - ;;@ assembly/index.ts:23:8 - (get_local $14) - (i32.const 1) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ;;@ assembly/index.ts:27:4 - (block $break|2 - ;;@ assembly/index.ts:27:9 - (set_local $15 - ;;@ assembly/index.ts:27:29 - (f64.min - ;;@ assembly/index.ts:27:33 - (f64.const 8) - ;;@ assembly/index.ts:27:36 - (f64.convert_u/i32 - (get_local $3) - ) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - ;;@ assembly/index.ts:27:44 - (f64.lt - (f64.convert_u/i32 - (get_local $14) - ) - ;;@ assembly/index.ts:27:56 - (get_local $15) - ) - ) - ) - ;;@ assembly/index.ts:27:84 - (block - ;;@ assembly/index.ts:28:6 - (set_local $16 - ;;@ assembly/index.ts:28:18 - (f64.add - (f64.sub - (f64.mul - (get_local $10) - ;;@ assembly/index.ts:28:23 - (get_local $10) - ) - ;;@ assembly/index.ts:28:28 - (f64.mul - (get_local $11) - ;;@ assembly/index.ts:28:33 - (get_local $11) - ) - ) - ;;@ assembly/index.ts:28:38 - (get_local $9) - ) - ) - ;;@ assembly/index.ts:29:6 - (set_local $11 - ;;@ assembly/index.ts:29:11 - (f64.add - (f64.mul - (f64.mul - (f64.const 2) - ;;@ assembly/index.ts:29:17 - (get_local $10) - ) - ;;@ assembly/index.ts:29:22 - (get_local $11) - ) - ;;@ assembly/index.ts:29:27 - (get_local $7) - ) - ) - ;;@ assembly/index.ts:30:6 - (set_local $10 - ;;@ assembly/index.ts:30:11 - (get_local $16) - ) - ) - ;;@ assembly/index.ts:27:71 - (set_local $14 - (i32.add - ;;@ assembly/index.ts:27:73 - (get_local $14) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ;;@ assembly/index.ts:36:4 - (set_local $15 - ;;@ assembly/index.ts:36:15 - (f64.div - ;;@ assembly/index.ts:36:20 - (call $~lib/bindings/Math/log - ;;@ assembly/index.ts:36:29 - (call $~lib/bindings/Math/log - ;;@ assembly/index.ts:36:38 - (call $~lib/bindings/Math/sqrt - ;;@ assembly/index.ts:36:43 - (f64.add - (f64.mul - (get_local $10) - ;;@ assembly/index.ts:36:48 - (get_local $10) - ) - ;;@ assembly/index.ts:36:53 - (f64.mul - (get_local $11) - ;;@ assembly/index.ts:36:58 - (get_local $11) - ) - ) - ) - ) - ) - ;;@ assembly/index.ts:36:66 - (get_global $~lib/bindings/Math/LN2) - ) - ) - ;;@ assembly/index.ts:37:4 - (set_local $17 - ;;@ assembly/index.ts:37:15 - (if (result i32) - (call $~lib/builtins/isFinite - ;;@ assembly/index.ts:37:24 - (get_local $15) - ) - ;;@ assembly/index.ts:38:8 - (i32.trunc_u/f64 - ;;@ assembly/index.ts:38:14 - (f64.mul - (f64.convert_s/i32 - (i32.sub - ;;@ assembly/index.ts:38:15 - (get_global $assembly/index/NUM_COLORS) - ;;@ assembly/index.ts:38:28 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:38:33 - (call $assembly/index/clamp - ;;@ assembly/index.ts:38:39 - (f64.div - (f64.sub - (f64.convert_u/i32 - ;;@ assembly/index.ts:38:40 - (i32.add - (get_local $14) - ;;@ assembly/index.ts:38:52 - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:38:56 - (get_local $15) - ) - (f64.convert_u/i32 - ;;@ assembly/index.ts:38:64 - (get_local $3) - ) - ) - ;;@ assembly/index.ts:38:71 - (f64.const 0) - ;;@ assembly/index.ts:38:76 - (f64.const 1) - ) - ) - ) - ;;@ assembly/index.ts:39:8 - (i32.sub - (get_global $assembly/index/NUM_COLORS) - ;;@ assembly/index.ts:39:21 - (i32.const 1) - ) - ) - ) - ;;@ assembly/index.ts:40:4 - (i32.store16 - ;;@ assembly/index.ts:40:15 - (i32.shl - (i32.add - ;;@ assembly/index.ts:40:16 - (i32.mul - (get_local $0) - ;;@ assembly/index.ts:40:20 - (get_local $1) - ) - ;;@ assembly/index.ts:40:28 - (get_local $8) - ) - ;;@ assembly/index.ts:40:34 - (i32.const 1) - ) - ;;@ assembly/index.ts:40:37 - (get_local $17) - ) - ) - ;;@ assembly/index.ts:12:34 - (set_local $8 - (i32.add - ;;@ assembly/index.ts:12:36 - (get_local $8) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_local $1 + f64.convert_u/i32 + f64.const 1.6 + f64.div + set_local $4 + get_local $2 + f64.convert_u/i32 + f64.const 2 + f64.div + set_local $5 + f64.const 10 + f64.const 3 + get_local $1 + f64.convert_u/i32 + f64.mul + f64.const 4 + get_local $2 + f64.convert_u/i32 + f64.mul + f64.min + f64.div + set_local $6 + get_local $0 + f64.convert_u/i32 + get_local $5 + f64.sub + get_local $6 + f64.mul + set_local $7 + block $break|0 + i32.const 0 + set_local $8 + loop $repeat|0 + get_local $8 + get_local $1 + i32.lt_u + i32.eqz + br_if $break|0 + block + get_local $8 + f64.convert_u/i32 + get_local $4 + f64.sub + get_local $6 + f64.mul + set_local $9 + f64.const 0 + set_local $10 + f64.const 0 + set_local $11 + i32.const 0 + set_local $14 + block $break|1 + loop $continue|1 + get_local $10 + get_local $10 + f64.mul + tee_local $12 + get_local $11 + get_local $11 + f64.mul + tee_local $13 + f64.add + f64.const 4 + f64.le + if + block + get_local $12 + get_local $13 + f64.sub + get_local $9 + f64.add + set_local $15 + f64.const 2 + get_local $10 + f64.mul + get_local $11 + f64.mul + get_local $7 + f64.add + set_local $11 + get_local $15 + set_local $10 + get_local $14 + get_local $3 + i32.ge_u + if + br $break|1 + end + get_local $14 + i32.const 1 + i32.add + set_local $14 + end + br $continue|1 + end + end + end + block $break|2 + f64.const 8 + get_local $3 + f64.convert_u/i32 + f64.min + set_local $15 + loop $repeat|2 + get_local $14 + f64.convert_u/i32 + get_local $15 + f64.lt + i32.eqz + br_if $break|2 + block + get_local $10 + get_local $10 + f64.mul + get_local $11 + get_local $11 + f64.mul + f64.sub + get_local $9 + f64.add + set_local $16 + f64.const 2 + get_local $10 + f64.mul + get_local $11 + f64.mul + get_local $7 + f64.add + set_local $11 + get_local $16 + set_local $10 + end + get_local $14 + i32.const 1 + i32.add + set_local $14 + br $repeat|2 + unreachable + end + unreachable + end + get_local $10 + get_local $10 + f64.mul + get_local $11 + get_local $11 + f64.mul + f64.add + call $~lib/bindings/Math/sqrt + call $~lib/bindings/Math/log + call $~lib/bindings/Math/log + get_global $~lib/bindings/Math/LN2 + f64.div + set_local $15 + get_local $15 + call $~lib/builtins/isFinite + if (result i32) + get_global $assembly/index/NUM_COLORS + i32.const 1 + i32.sub + f64.convert_s/i32 + get_local $14 + i32.const 1 + i32.add + f64.convert_u/i32 + get_local $15 + f64.sub + get_local $3 + f64.convert_u/i32 + f64.div + f64.const 0 + f64.const 1 + call $assembly/index/clamp + f64.mul + i32.trunc_u/f64 + else + get_global $assembly/index/NUM_COLORS + i32.const 1 + i32.sub + end + set_local $17 + get_local $0 + get_local $1 + i32.mul + get_local $8 + i32.add + i32.const 1 + i32.shl + get_local $17 + i32.store16 + end + get_local $8 + i32.const 1 + i32.add + set_local $8 + br $repeat|0 + unreachable + end + unreachable + end ) (func $null (; 5 ;) (type $v) ) diff --git a/examples/n-body/build/index.asm.js b/examples/n-body/build/index.asm.js index 1f504a1f..a306f2e2 100644 --- a/examples/n-body/build/index.asm.js +++ b/examples/n-body/build/index.asm.js @@ -447,7 +447,7 @@ function asmFunc(global, env, buffer) { pagesToAdd = pagesToAdd | 0; var oldPages = __wasm_current_memory() | 0; var newPages = oldPages + pagesToAdd | 0; - if ((oldPages < newPages) && (newPages < 65535)) { + if ((oldPages < newPages) && (newPages < 65536)) { var newBuffer = new ArrayBuffer(Math_imul(newPages, 65536)); var newHEAP8 = new global.Int8Array(newBuffer); newHEAP8.set(HEAP8); diff --git a/examples/n-body/build/optimized.wat b/examples/n-body/build/optimized.wat index faf58123..ea453e2c 100644 --- a/examples/n-body/build/optimized.wat +++ b/examples/n-body/build/optimized.wat @@ -11,7 +11,7 @@ (type $FUNCSIG$vi (func (param i32))) (import "env" "memory" (memory $0 1)) (data (i32.const 8) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) @@ -23,473 +23,344 @@ (export "bench" (func $assembly/index/bench)) (export "getBody" (func $assembly/index/getBody)) (start $start) - (func $~lib/allocator/arena/__memory_allocate (; 0 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 0 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $assembly/index/Body#constructor (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$iddddddd) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 f64) (param $5 f64) (param $6 f64) (result i32) + (func $assembly/index/Body#constructor (; 1 ;) (type $FUNCSIG$iddddddd) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 f64) (param $5 f64) (param $6 f64) (result i32) (local $7 i32) - (f64.store - (tee_local $7 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 56) - ) - ) - (get_local $0) - ) - (f64.store offset=8 - (get_local $7) - (get_local $1) - ) - (f64.store offset=16 - (get_local $7) - (get_local $2) - ) - (f64.store offset=24 - (get_local $7) - (get_local $3) - ) - (f64.store offset=32 - (get_local $7) - (get_local $4) - ) - (f64.store offset=40 - (get_local $7) - (get_local $5) - ) - (f64.store offset=48 - (get_local $7) - (get_local $6) - ) - (get_local $7) + i32.const 56 + call $~lib/allocator/arena/__memory_allocate + tee_local $7 + get_local $0 + f64.store + get_local $7 + get_local $1 + f64.store offset=8 + get_local $7 + get_local $2 + f64.store offset=16 + get_local $7 + get_local $3 + f64.store offset=24 + get_local $7 + get_local $4 + f64.store offset=32 + get_local $7 + get_local $5 + f64.store offset=40 + get_local $7 + get_local $6 + f64.store offset=48 + get_local $7 ) - (func $~lib/internal/memory/memset (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memset (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $1) - ) - (return) - ) - (i32.store8 - (get_local $0) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $2) - (i32.const 3) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $1 - (i32.and - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 8) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 28) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 16) - ) - (i32.const 0) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i64.const 0) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $1 + i32.eqz + if + return + end + get_local $0 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + get_local $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $2 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $0 + get_local $1 + get_local $2 + i32.sub + i32.const -4 + i32.and + tee_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 8 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 12 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 8 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 16 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 20 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 24 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 28 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 24 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 20 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 16 + i32.sub + i32.const 0 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $2 + i32.add + set_local $0 + get_local $1 + get_local $2 + i32.sub + set_local $1 + loop $continue|0 + get_local $1 + i32.const 32 + i32.ge_u + if + get_local $0 + i64.const 0 + i64.store + get_local $0 + i32.const 8 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 16 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 24 + i32.add + i64.const 0 + i64.store + get_local $1 + i32.const 32 + i32.sub + set_local $1 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/array/Array#constructor (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#constructor (; 3 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 32) - ) - ) - (i32.const 20) - ) - (i32.store - (tee_local $0 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 8) - ) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 5) - ) - (call $~lib/internal/memory/memset - (i32.add - (get_local $1) - (i32.const 8) - ) - (i32.const 20) - ) - (get_local $0) + i32.const 32 + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + i32.const 20 + i32.store + i32.const 8 + call $~lib/allocator/arena/__memory_allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 5 + i32.store offset=4 + get_local $1 + i32.const 8 + i32.add + i32.const 20 + call $~lib/internal/memory/memset + get_local $0 ) - (func $assembly/index/NBodySystem#constructor (; 4 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $assembly/index/NBodySystem#constructor (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -497,245 +368,177 @@ (local $5 f64) (local $6 f64) (local $7 i32) - (set_local $7 - (i32.load offset=4 - (get_local $0) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $1) - (get_local $7) - ) - ) - (set_local $3 - (f64.load offset=48 - (tee_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (set_local $4 - (f64.add - (get_local $4) - (f64.mul - (f64.load offset=24 - (get_local $2) - ) - (get_local $3) - ) - ) - ) - (set_local $5 - (f64.add - (get_local $5) - (f64.mul - (f64.load offset=32 - (get_local $2) - ) - (get_local $3) - ) - ) - ) - (set_local $6 - (f64.add - (get_local $6) - (f64.mul - (f64.load offset=40 - (get_local $2) - ) - (get_local $3) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (f64.store offset=24 - (tee_local $1 - (if (result i32) - (i32.lt_u - (i32.const 0) - (i32.shr_u - (i32.load - (tee_local $1 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (i32.load offset=8 - (get_local $1) - ) - (unreachable) - ) - ) - (f64.div - (f64.neg - (get_local $4) - ) - (f64.const 39.47841760435743) - ) - ) - (f64.store offset=32 - (get_local $1) - (f64.div - (f64.neg - (get_local $5) - ) - (f64.const 39.47841760435743) - ) - ) - (f64.store offset=40 - (get_local $1) - (f64.div - (f64.neg - (get_local $6) - ) - (f64.const 39.47841760435743) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 4) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.load offset=4 + set_local $7 + block $break|0 + loop $repeat|0 + get_local $1 + get_local $7 + i32.ge_s + br_if $break|0 + get_local $0 + i32.load + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $2 + f64.load offset=48 + set_local $3 + get_local $4 + get_local $2 + f64.load offset=24 + get_local $3 + f64.mul + f64.add + set_local $4 + get_local $5 + get_local $2 + f64.load offset=32 + get_local $3 + f64.mul + f64.add + set_local $5 + get_local $6 + get_local $2 + f64.load offset=40 + get_local $3 + f64.mul + f64.add + set_local $6 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 0 + get_local $0 + i32.load + tee_local $1 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $1 + i32.load offset=8 + else + unreachable + end + tee_local $1 + get_local $4 + f64.neg + f64.const 39.47841760435743 + f64.div + f64.store offset=24 + get_local $1 + get_local $5 + f64.neg + f64.const 39.47841760435743 + f64.div + f64.store offset=32 + get_local $1 + get_local $6 + f64.neg + f64.const 39.47841760435743 + f64.div + f64.store offset=40 + i32.const 4 + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $assembly/index/init (; 5 ;) (; has Stack IR ;) (type $v) + (func $assembly/index/init (; 5 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/array/Array#constructor) - ) - (set_local $0 - (call $assembly/index/Body#constructor - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 39.47841760435743) - ) - ) - (i32.store offset=8 - (i32.load - (get_local $1) - ) - (get_local $0) - ) - (set_local $0 - (call $assembly/index/Body#constructor - (f64.const 4.841431442464721) - (f64.const -1.1603200440274284) - (f64.const -0.10362204447112311) - (f64.const 0.606326392995832) - (f64.const 2.81198684491626) - (f64.const -0.02521836165988763) - (f64.const 0.03769367487038949) - ) - ) - (i32.store offset=8 - (i32.add - (i32.load - (get_local $1) - ) - (i32.const 4) - ) - (get_local $0) - ) - (set_local $0 - (call $assembly/index/Body#constructor - (f64.const 8.34336671824458) - (f64.const 4.124798564124305) - (f64.const -0.4035234171143214) - (f64.const -1.0107743461787924) - (f64.const 1.8256623712304119) - (f64.const 0.008415761376584154) - (f64.const 0.011286326131968767) - ) - ) - (i32.store offset=8 - (i32.add - (i32.load - (get_local $1) - ) - (i32.const 8) - ) - (get_local $0) - ) - (set_local $0 - (call $assembly/index/Body#constructor - (f64.const 12.894369562139131) - (f64.const -15.111151401698631) - (f64.const -0.22330757889265573) - (f64.const 1.0827910064415354) - (f64.const 0.8687130181696082) - (f64.const -0.010832637401363636) - (f64.const 1.7237240570597112e-03) - ) - ) - (i32.store offset=8 - (i32.add - (i32.load - (get_local $1) - ) - (i32.const 12) - ) - (get_local $0) - ) - (set_local $0 - (call $assembly/index/Body#constructor - (f64.const 15.379697114850917) - (f64.const -25.919314609987964) - (f64.const 0.17925877295037118) - (f64.const 0.979090732243898) - (f64.const 0.5946989986476762) - (f64.const -0.034755955504078104) - (f64.const 2.0336868699246304e-03) - ) - ) - (i32.store offset=8 - (i32.add - (i32.load - (get_local $1) - ) - (i32.const 16) - ) - (get_local $0) - ) - (set_global $assembly/index/system - (call $assembly/index/NBodySystem#constructor - (get_local $1) - ) - ) + call $~lib/array/Array#constructor + set_local $1 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 39.47841760435743 + call $assembly/index/Body#constructor + set_local $0 + get_local $1 + i32.load + get_local $0 + i32.store offset=8 + f64.const 4.841431442464721 + f64.const -1.1603200440274284 + f64.const -0.10362204447112311 + f64.const 0.606326392995832 + f64.const 2.81198684491626 + f64.const -0.02521836165988763 + f64.const 0.03769367487038949 + call $assembly/index/Body#constructor + set_local $0 + get_local $1 + i32.load + i32.const 4 + i32.add + get_local $0 + i32.store offset=8 + f64.const 8.34336671824458 + f64.const 4.124798564124305 + f64.const -0.4035234171143214 + f64.const -1.0107743461787924 + f64.const 1.8256623712304119 + f64.const 0.008415761376584154 + f64.const 0.011286326131968767 + call $assembly/index/Body#constructor + set_local $0 + get_local $1 + i32.load + i32.const 8 + i32.add + get_local $0 + i32.store offset=8 + f64.const 12.894369562139131 + f64.const -15.111151401698631 + f64.const -0.22330757889265573 + f64.const 1.0827910064415354 + f64.const 0.8687130181696082 + f64.const -0.010832637401363636 + f64.const 1.7237240570597112e-03 + call $assembly/index/Body#constructor + set_local $0 + get_local $1 + i32.load + i32.const 12 + i32.add + get_local $0 + i32.store offset=8 + f64.const 15.379697114850917 + f64.const -25.919314609987964 + f64.const 0.17925877295037118 + f64.const 0.979090732243898 + f64.const 0.5946989986476762 + f64.const -0.034755955504078104 + f64.const 2.0336868699246304e-03 + call $assembly/index/Body#constructor + set_local $0 + get_local $1 + i32.load + i32.const 16 + i32.add + get_local $0 + i32.store offset=8 + get_local $1 + call $assembly/index/NBodySystem#constructor + set_global $assembly/index/system ) - (func $assembly/index/NBodySystem#advance (; 6 ;) (; has Stack IR ;) (type $FUNCSIG$vi) (param $0 i32) + (func $assembly/index/NBodySystem#advance (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 f64) (local $3 i32) @@ -754,292 +557,196 @@ (local $16 f64) (local $17 f64) (local $18 f64) - (set_local $13 - (i32.load offset=4 - (tee_local $12 - (i32.load - (get_local $0) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $3) - (get_local $13) - ) - ) - (set_local $14 - (f64.load - (tee_local $0 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $12) - ) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (set_local $15 - (f64.load offset=8 - (get_local $0) - ) - ) - (set_local $16 - (f64.load offset=16 - (get_local $0) - ) - ) - (set_local $4 - (f64.load offset=24 - (get_local $0) - ) - ) - (set_local $5 - (f64.load offset=32 - (get_local $0) - ) - ) - (set_local $6 - (f64.load offset=40 - (get_local $0) - ) - ) - (set_local $17 - (f64.load offset=48 - (get_local $0) - ) - ) - (block $break|1 - (set_local $7 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_u - (get_local $7) - (get_local $13) - ) - ) - (set_local $11 - (f64.sqrt - (tee_local $8 - (f64.add - (f64.add - (f64.mul - (tee_local $2 - (tee_local $18 - (f64.sub - (get_local $14) - (f64.load - (tee_local $1 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $12) - ) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - ) - ) - ) - ) - ) - ) - (get_local $2) - ) - (f64.mul - (tee_local $9 - (f64.sub - (get_local $15) - (f64.load offset=8 - (get_local $1) - ) - ) - ) - (get_local $9) - ) - ) - (f64.mul - (tee_local $10 - (f64.sub - (get_local $16) - (f64.load offset=16 - (get_local $1) - ) - ) - ) - (get_local $10) - ) - ) - ) - ) - ) - (set_local $4 - (f64.sub - (get_local $4) - (f64.mul - (get_local $2) - (tee_local $8 - (f64.mul - (f64.load offset=48 - (get_local $1) - ) - (tee_local $11 - (f64.div - (f64.const 0.01) - (f64.mul - (get_local $8) - (get_local $11) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $5 - (f64.sub - (get_local $5) - (f64.mul - (get_local $9) - (get_local $8) - ) - ) - ) - (set_local $6 - (f64.sub - (get_local $6) - (f64.mul - (get_local $10) - (get_local $8) - ) - ) - ) - (f64.store offset=24 - (get_local $1) - (f64.add - (f64.load offset=24 - (get_local $1) - ) - (f64.mul - (get_local $18) - (tee_local $2 - (f64.mul - (get_local $17) - (get_local $11) - ) - ) - ) - ) - ) - (f64.store offset=32 - (get_local $1) - (f64.add - (f64.load offset=32 - (get_local $1) - ) - (f64.mul - (get_local $9) - (get_local $2) - ) - ) - ) - (f64.store offset=40 - (get_local $1) - (f64.add - (f64.load offset=40 - (get_local $1) - ) - (f64.mul - (get_local $10) - (get_local $2) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (f64.store offset=24 - (get_local $0) - (get_local $4) - ) - (f64.store offset=32 - (get_local $0) - (get_local $5) - ) - (f64.store offset=40 - (get_local $0) - (get_local $6) - ) - (f64.store - (get_local $0) - (f64.add - (f64.load - (get_local $0) - ) - (f64.mul - (f64.const 0.01) - (get_local $4) - ) - ) - ) - (f64.store offset=8 - (get_local $0) - (f64.add - (f64.load offset=8 - (get_local $0) - ) - (f64.mul - (f64.const 0.01) - (get_local $5) - ) - ) - ) - (f64.store offset=16 - (get_local $0) - (f64.add - (f64.load offset=16 - (get_local $0) - ) - (f64.mul - (f64.const 0.01) - (get_local $6) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_local $0 + i32.load + tee_local $12 + i32.load offset=4 + set_local $13 + block $break|0 + loop $repeat|0 + get_local $3 + get_local $13 + i32.ge_u + br_if $break|0 + get_local $12 + i32.load + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $0 + f64.load + set_local $14 + get_local $0 + f64.load offset=8 + set_local $15 + get_local $0 + f64.load offset=16 + set_local $16 + get_local $0 + f64.load offset=24 + set_local $4 + get_local $0 + f64.load offset=32 + set_local $5 + get_local $0 + f64.load offset=40 + set_local $6 + get_local $0 + f64.load offset=48 + set_local $17 + block $break|1 + get_local $3 + i32.const 1 + i32.add + set_local $7 + loop $repeat|1 + get_local $7 + get_local $13 + i32.ge_u + br_if $break|1 + get_local $14 + get_local $12 + i32.load + get_local $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $1 + f64.load + f64.sub + tee_local $18 + tee_local $2 + get_local $2 + f64.mul + get_local $15 + get_local $1 + f64.load offset=8 + f64.sub + tee_local $9 + get_local $9 + f64.mul + f64.add + get_local $16 + get_local $1 + f64.load offset=16 + f64.sub + tee_local $10 + get_local $10 + f64.mul + f64.add + tee_local $8 + f64.sqrt + set_local $11 + get_local $4 + get_local $2 + get_local $1 + f64.load offset=48 + f64.const 0.01 + get_local $8 + get_local $11 + f64.mul + f64.div + tee_local $11 + f64.mul + tee_local $8 + f64.mul + f64.sub + set_local $4 + get_local $5 + get_local $9 + get_local $8 + f64.mul + f64.sub + set_local $5 + get_local $6 + get_local $10 + get_local $8 + f64.mul + f64.sub + set_local $6 + get_local $1 + get_local $1 + f64.load offset=24 + get_local $18 + get_local $17 + get_local $11 + f64.mul + tee_local $2 + f64.mul + f64.add + f64.store offset=24 + get_local $1 + get_local $1 + f64.load offset=32 + get_local $9 + get_local $2 + f64.mul + f64.add + f64.store offset=32 + get_local $1 + get_local $1 + f64.load offset=40 + get_local $10 + get_local $2 + f64.mul + f64.add + f64.store offset=40 + get_local $7 + i32.const 1 + i32.add + set_local $7 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + get_local $4 + f64.store offset=24 + get_local $0 + get_local $5 + f64.store offset=32 + get_local $0 + get_local $6 + f64.store offset=40 + get_local $0 + get_local $0 + f64.load + f64.const 0.01 + get_local $4 + f64.mul + f64.add + f64.store + get_local $0 + get_local $0 + f64.load offset=8 + f64.const 0.01 + get_local $5 + f64.mul + f64.add + f64.store offset=8 + get_local $0 + get_local $0 + f64.load offset=16 + f64.const 0.01 + get_local $6 + f64.mul + f64.add + f64.store offset=16 + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $assembly/index/NBodySystem#energy (; 7 ;) (; has Stack IR ;) (type $iF) (param $0 i32) (result f64) + (func $assembly/index/NBodySystem#energy (; 7 ;) (type $iF) (param $0 i32) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -1050,275 +757,194 @@ (local $8 f64) (local $9 f64) (local $10 f64) - (block $break|0 - (set_local $5 - (i32.load offset=4 - (tee_local $4 - (i32.load - (get_local $0) - ) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $2) - (get_local $5) - ) - ) - (set_local $7 - (f64.load - (tee_local $0 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $4) - ) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (set_local $8 - (f64.load offset=8 - (get_local $0) - ) - ) - (set_local $9 - (f64.load offset=16 - (get_local $0) - ) - ) - (set_local $1 - (f64.add - (get_local $1) - (f64.mul - (f64.mul - (f64.const 0.5) - (tee_local $10 - (f64.load offset=48 - (get_local $0) - ) - ) - ) - (f64.add - (f64.add - (f64.mul - (tee_local $1 - (f64.load offset=24 - (get_local $0) - ) - ) - (get_local $1) - ) - (f64.mul - (tee_local $1 - (f64.load offset=32 - (get_local $0) - ) - ) - (get_local $1) - ) - ) - (f64.mul - (tee_local $1 - (f64.load offset=40 - (get_local $0) - ) - ) - (get_local $1) - ) - ) - ) - ) - ) - (block $break|1 - (set_local $0 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_u - (get_local $0) - (get_local $5) - ) - ) - (set_local $6 - (f64.sub - (get_local $7) - (f64.load - (tee_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $4) - ) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - ) - ) - ) - ) - (set_local $1 - (f64.sub - (get_local $1) - (f64.div - (f64.mul - (get_local $10) - (f64.load offset=48 - (get_local $3) - ) - ) - (f64.sqrt - (f64.add - (f64.add - (f64.mul - (get_local $6) - (get_local $6) - ) - (f64.mul - (tee_local $1 - (f64.sub - (get_local $8) - (f64.load offset=8 - (get_local $3) - ) - ) - ) - (get_local $1) - ) - ) - (f64.mul - (tee_local $1 - (f64.sub - (get_local $9) - (f64.load offset=16 - (get_local $3) - ) - ) - ) - (get_local $1) - ) - ) - ) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + block $break|0 + get_local $0 + i32.load + tee_local $4 + i32.load offset=4 + set_local $5 + loop $repeat|0 + get_local $2 + get_local $5 + i32.ge_u + br_if $break|0 + get_local $4 + i32.load + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $0 + f64.load + set_local $7 + get_local $0 + f64.load offset=8 + set_local $8 + get_local $0 + f64.load offset=16 + set_local $9 + get_local $1 + f64.const 0.5 + get_local $0 + f64.load offset=48 + tee_local $10 + f64.mul + get_local $0 + f64.load offset=24 + tee_local $1 + get_local $1 + f64.mul + get_local $0 + f64.load offset=32 + tee_local $1 + get_local $1 + f64.mul + f64.add + get_local $0 + f64.load offset=40 + tee_local $1 + get_local $1 + f64.mul + f64.add + f64.mul + f64.add + set_local $1 + block $break|1 + get_local $2 + i32.const 1 + i32.add + set_local $0 + loop $repeat|1 + get_local $0 + get_local $5 + i32.ge_u + br_if $break|1 + get_local $7 + get_local $4 + i32.load + get_local $0 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $3 + f64.load + f64.sub + set_local $6 + get_local $1 + get_local $10 + get_local $3 + f64.load offset=48 + f64.mul + get_local $6 + get_local $6 + f64.mul + get_local $8 + get_local $3 + f64.load offset=8 + f64.sub + tee_local $1 + get_local $1 + f64.mul + f64.add + get_local $9 + get_local $3 + f64.load offset=16 + f64.sub + tee_local $1 + get_local $1 + f64.mul + f64.add + f64.sqrt + f64.div + f64.sub + set_local $1 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + unreachable + end + unreachable + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) - (func $assembly/index/step (; 8 ;) (; has Stack IR ;) (type $F) (result f64) - (call $assembly/index/NBodySystem#advance - (get_global $assembly/index/system) - ) - (call $assembly/index/NBodySystem#energy - (get_global $assembly/index/system) - ) + (func $assembly/index/step (; 8 ;) (type $F) (result f64) + get_global $assembly/index/system + call $assembly/index/NBodySystem#advance + get_global $assembly/index/system + call $assembly/index/NBodySystem#energy ) - (func $assembly/index/bench (; 9 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $assembly/index/bench (; 9 ;) (type $iv) (param $0 i32) (local $1 i32) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $1) - (get_local $0) - ) - ) - (call $assembly/index/NBodySystem#advance - (get_global $assembly/index/system) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + loop $repeat|0 + get_local $1 + get_local $0 + i32.ge_u + br_if $break|0 + get_global $assembly/index/system + call $assembly/index/NBodySystem#advance + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $assembly/index/getBody (; 10 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $assembly/index/getBody (; 10 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (tee_local $0 - (if (result i32) - (i32.lt_u - (get_local $0) - (i32.load offset=4 - (tee_local $1 - (i32.load - (get_global $assembly/index/system) - ) - ) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $0) - (i32.shr_u - (i32.load - (tee_local $1 - (i32.load - (get_local $1) - ) - ) - ) - (i32.const 2) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $1) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - (unreachable) - ) - (i32.const 0) - ) - ) + get_local $0 + get_global $assembly/index/system + i32.load + tee_local $1 + i32.load offset=4 + i32.lt_u + if (result i32) + get_local $0 + get_local $1 + i32.load + tee_local $1 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $1 + get_local $0 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end + else + i32.const 0 + end + tee_local $0 ) - (func $start (; 11 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.const 40) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) + (func $start (; 11 ;) (type $v) + i32.const 40 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset ) - (func $null (; 12 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 12 ;) (type $v) + nop ) ) diff --git a/examples/n-body/build/untouched.wat b/examples/n-body/build/untouched.wat index 7a88f0e6..12adfa5c 100644 --- a/examples/n-body/build/untouched.wat +++ b/examples/n-body/build/untouched.wat @@ -14,9 +14,9 @@ (import "env" "memory" (memory $0 1)) (data (i32.const 8) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 40) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -44,1226 +44,630 @@ (local $4 i32) (local $5 i32) (local $6 i32) - ;;@ ~lib/allocator/arena.ts:18:2 - (if - ;;@ ~lib/allocator/arena.ts:18:6 - (i32.gt_u - (get_local $0) - ;;@ ~lib/allocator/arena.ts:18:13 - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - ;;@ ~lib/allocator/arena.ts:18:26 - (unreachable) - ) - ;;@ ~lib/allocator/arena.ts:19:2 - (set_local $1 - ;;@ ~lib/allocator/arena.ts:19:12 - (get_global $~lib/allocator/arena/offset) - ) - ;;@ ~lib/allocator/arena.ts:20:2 - (set_local $4 - ;;@ ~lib/allocator/arena.ts:20:15 - (i32.and - (i32.add - ;;@ ~lib/allocator/arena.ts:20:16 - (i32.add - (get_local $1) - ;;@ ~lib/allocator/arena.ts:20:22 - (select - (tee_local $2 - ;;@ ~lib/allocator/arena.ts:20:33 - (get_local $0) - ) - (tee_local $3 - ;;@ ~lib/allocator/arena.ts:20:39 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - ;;@ ~lib/allocator/arena.ts:20:44 - (get_global $~lib/internal/allocator/AL_MASK) - ) - ;;@ ~lib/allocator/arena.ts:20:55 - (i32.xor - ;;@ ~lib/allocator/arena.ts:20:56 - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - ;;@ ~lib/allocator/arena.ts:21:2 - (set_local $5 - ;;@ ~lib/allocator/arena.ts:21:27 - (current_memory) - ) - ;;@ ~lib/allocator/arena.ts:22:2 - (if - ;;@ ~lib/allocator/arena.ts:22:6 - (i32.gt_u - (get_local $4) - ;;@ ~lib/allocator/arena.ts:22:15 - (i32.shl - (get_local $5) - ;;@ ~lib/allocator/arena.ts:22:37 - (i32.const 16) - ) - ) - ;;@ ~lib/allocator/arena.ts:22:41 - (block - ;;@ ~lib/allocator/arena.ts:23:4 - (set_local $2 - ;;@ ~lib/allocator/arena.ts:23:22 - (i32.shr_u - (i32.and - ;;@ ~lib/allocator/arena.ts:23:23 - (i32.add - ;;@ ~lib/allocator/arena.ts:23:24 - (i32.sub - (get_local $4) - ;;@ ~lib/allocator/arena.ts:23:33 - (get_local $1) - ) - ;;@ ~lib/allocator/arena.ts:23:39 - (i32.const 65535) - ) - ;;@ ~lib/allocator/arena.ts:23:49 - (i32.xor - ;;@ ~lib/allocator/arena.ts:23:50 - (i32.const 65535) - (i32.const -1) - ) - ) - ;;@ ~lib/allocator/arena.ts:23:62 - (i32.const 16) - ) - ) - ;;@ ~lib/allocator/arena.ts:24:4 - (set_local $3 - ;;@ ~lib/allocator/arena.ts:24:22 - (select - (tee_local $3 - ;;@ ~lib/allocator/arena.ts:24:26 - (get_local $5) - ) - (tee_local $6 - ;;@ ~lib/allocator/arena.ts:24:39 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - ;;@ ~lib/allocator/arena.ts:25:4 - (if - ;;@ ~lib/allocator/arena.ts:25:8 - (i32.lt_s - ;;@ ~lib/allocator/arena.ts:25:15 - (grow_memory - ;;@ ~lib/allocator/arena.ts:25:20 - (get_local $3) - ) - ;;@ ~lib/allocator/arena.ts:25:35 - (i32.const 0) - ) - ;;@ ~lib/allocator/arena.ts:25:38 - (if - ;;@ ~lib/allocator/arena.ts:26:10 - (i32.lt_s - ;;@ ~lib/allocator/arena.ts:26:17 - (grow_memory - ;;@ ~lib/allocator/arena.ts:26:22 - (get_local $2) - ) - ;;@ ~lib/allocator/arena.ts:26:37 - (i32.const 0) - ) - ;;@ ~lib/allocator/arena.ts:26:40 - (unreachable) - ) - ) - ) - ) - ;;@ ~lib/allocator/arena.ts:31:2 - (set_global $~lib/allocator/arena/offset - ;;@ ~lib/allocator/arena.ts:31:11 - (get_local $4) - ) - ;;@ ~lib/allocator/arena.ts:32:9 - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/memory/memory.allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) - ;;@ ~lib/memory.ts:41:4 - (return - ;;@ ~lib/memory.ts:41:45 - (call $~lib/allocator/arena/__memory_allocate - ;;@ ~lib/memory.ts:41:63 - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $assembly/index/Body#constructor (; 3 ;) (type $iFFFFFFFi) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 f64) (param $5 f64) (param $6 f64) (param $7 f64) (result i32) (local $8 i32) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $8 - (call $~lib/memory/memory.allocate - (i32.const 56) - ) - ) - (f64.store - (get_local $8) - (get_local $1) - ) - (f64.store offset=8 - (get_local $8) - (get_local $2) - ) - (f64.store offset=16 - (get_local $8) - (get_local $3) - ) - (f64.store offset=24 - (get_local $8) - (get_local $4) - ) - (f64.store offset=32 - (get_local $8) - (get_local $5) - ) - (f64.store offset=40 - (get_local $8) - (get_local $6) - ) - (f64.store offset=48 - (get_local $8) - (get_local $7) - ) - (get_local $8) - ) - ) - ) - ) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 56 + call $~lib/memory/memory.allocate + set_local $8 + get_local $8 + get_local $1 + f64.store + get_local $8 + get_local $2 + f64.store offset=8 + get_local $8 + get_local $3 + f64.store offset=16 + get_local $8 + get_local $4 + f64.store offset=24 + get_local $8 + get_local $5 + f64.store offset=32 + get_local $8 + get_local $6 + f64.store offset=40 + get_local $8 + get_local $7 + f64.store offset=48 + get_local $8 + end + tee_local $0 + end + tee_local $0 ) (func $assembly/index/Sun (; 4 ;) (type $i) (result i32) - ;;@ assembly/index.ts:34:2 - (call $assembly/index/Body#constructor - (i32.const 0) - ;;@ assembly/index.ts:33:4 - (f64.const 0) - ;;@ assembly/index.ts:33:9 - (f64.const 0) - ;;@ assembly/index.ts:33:14 - (f64.const 0) - ;;@ assembly/index.ts:33:19 - (f64.const 0) - ;;@ assembly/index.ts:33:24 - (f64.const 0) - ;;@ assembly/index.ts:33:29 - (f64.const 0) - ;;@ assembly/index.ts:33:34 - (get_global $assembly/index/SOLAR_MASS) - ) + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + get_global $assembly/index/SOLAR_MASS + call $assembly/index/Body#constructor ) (func $assembly/index/Jupiter (; 5 ;) (type $i) (result i32) - ;;@ assembly/index.ts:46:2 - (call $assembly/index/Body#constructor - (i32.const 0) - ;;@ assembly/index.ts:39:5 - (f64.const 4.841431442464721) - ;;@ assembly/index.ts:40:4 - (f64.const -1.1603200440274284) - ;;@ assembly/index.ts:41:4 - (f64.const -0.10362204447112311) - ;;@ assembly/index.ts:42:5 - (f64.mul - (f64.const 0.001660076642744037) - ;;@ assembly/index.ts:42:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:43:5 - (f64.mul - (f64.const 0.007699011184197404) - ;;@ assembly/index.ts:43:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:44:4 - (f64.mul - (f64.const -6.90460016972063e-05) - ;;@ assembly/index.ts:44:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:45:5 - (f64.mul - (f64.const 9.547919384243266e-04) - ;;@ assembly/index.ts:45:31 - (get_global $assembly/index/SOLAR_MASS) - ) - ) + i32.const 0 + f64.const 4.841431442464721 + f64.const -1.1603200440274284 + f64.const -0.10362204447112311 + f64.const 0.001660076642744037 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const 0.007699011184197404 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const -6.90460016972063e-05 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const 9.547919384243266e-04 + get_global $assembly/index/SOLAR_MASS + f64.mul + call $assembly/index/Body#constructor ) (func $assembly/index/Saturn (; 6 ;) (type $i) (result i32) - ;;@ assembly/index.ts:58:2 - (call $assembly/index/Body#constructor - (i32.const 0) - ;;@ assembly/index.ts:51:5 - (f64.const 8.34336671824458) - ;;@ assembly/index.ts:52:5 - (f64.const 4.124798564124305) - ;;@ assembly/index.ts:53:4 - (f64.const -0.4035234171143214) - ;;@ assembly/index.ts:54:4 - (f64.mul - (f64.const -0.002767425107268624) - ;;@ assembly/index.ts:54:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:55:5 - (f64.mul - (f64.const 0.004998528012349172) - ;;@ assembly/index.ts:55:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:56:5 - (f64.mul - (f64.const 2.3041729757376393e-05) - ;;@ assembly/index.ts:56:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:57:5 - (f64.mul - (f64.const 2.858859806661308e-04) - ;;@ assembly/index.ts:57:31 - (get_global $assembly/index/SOLAR_MASS) - ) - ) + i32.const 0 + f64.const 8.34336671824458 + f64.const 4.124798564124305 + f64.const -0.4035234171143214 + f64.const -0.002767425107268624 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const 0.004998528012349172 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const 2.3041729757376393e-05 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const 2.858859806661308e-04 + get_global $assembly/index/SOLAR_MASS + f64.mul + call $assembly/index/Body#constructor ) (func $assembly/index/Uranus (; 7 ;) (type $i) (result i32) - ;;@ assembly/index.ts:70:2 - (call $assembly/index/Body#constructor - (i32.const 0) - ;;@ assembly/index.ts:63:5 - (f64.const 12.894369562139131) - ;;@ assembly/index.ts:64:4 - (f64.const -15.111151401698631) - ;;@ assembly/index.ts:65:4 - (f64.const -0.22330757889265573) - ;;@ assembly/index.ts:66:5 - (f64.mul - (f64.const 0.002964601375647616) - ;;@ assembly/index.ts:66:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:67:5 - (f64.mul - (f64.const 2.3784717395948095e-03) - ;;@ assembly/index.ts:67:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:68:4 - (f64.mul - (f64.const -2.9658956854023756e-05) - ;;@ assembly/index.ts:68:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:69:5 - (f64.mul - (f64.const 4.366244043351563e-05) - ;;@ assembly/index.ts:69:31 - (get_global $assembly/index/SOLAR_MASS) - ) - ) + i32.const 0 + f64.const 12.894369562139131 + f64.const -15.111151401698631 + f64.const -0.22330757889265573 + f64.const 0.002964601375647616 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const 2.3784717395948095e-03 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const -2.9658956854023756e-05 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const 4.366244043351563e-05 + get_global $assembly/index/SOLAR_MASS + f64.mul + call $assembly/index/Body#constructor ) (func $assembly/index/Neptune (; 8 ;) (type $i) (result i32) - ;;@ assembly/index.ts:82:2 - (call $assembly/index/Body#constructor - (i32.const 0) - ;;@ assembly/index.ts:75:5 - (f64.const 15.379697114850917) - ;;@ assembly/index.ts:76:4 - (f64.const -25.919314609987964) - ;;@ assembly/index.ts:77:5 - (f64.const 0.17925877295037118) - ;;@ assembly/index.ts:78:5 - (f64.mul - (f64.const 2.6806777249038932e-03) - ;;@ assembly/index.ts:78:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:79:5 - (f64.mul - (f64.const 0.001628241700382423) - ;;@ assembly/index.ts:79:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:80:4 - (f64.mul - (f64.const -9.515922545197159e-05) - ;;@ assembly/index.ts:80:31 - (get_global $assembly/index/DAYS_PER_YEAR) - ) - ;;@ assembly/index.ts:81:5 - (f64.mul - (f64.const 5.1513890204661145e-05) - ;;@ assembly/index.ts:81:31 - (get_global $assembly/index/SOLAR_MASS) - ) - ) + i32.const 0 + f64.const 15.379697114850917 + f64.const -25.919314609987964 + f64.const 0.17925877295037118 + f64.const 2.6806777249038932e-03 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const 0.001628241700382423 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const -9.515922545197159e-05 + get_global $assembly/index/DAYS_PER_YEAR + f64.mul + f64.const 5.1513890204661145e-05 + get_global $assembly/index/SOLAR_MASS + f64.mul + call $assembly/index/Body#constructor ) (func $~lib/internal/arraybuffer/computeSize (; 9 ;) (type $ii) (param $0 i32) (result i32) - ;;@ ~lib/internal/arraybuffer.ts:15:77 - (i32.shl - ;;@ ~lib/internal/arraybuffer.ts:15:9 - (i32.const 1) - ;;@ ~lib/internal/arraybuffer.ts:15:21 - (i32.sub - ;;@ ~lib/internal/arraybuffer.ts:15:29 - (i32.const 32) - ;;@ ~lib/internal/arraybuffer.ts:15:39 - (i32.clz - ;;@ ~lib/internal/arraybuffer.ts:15:48 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/arraybuffer.ts:15:61 - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ;;@ ~lib/internal/arraybuffer.ts:15:75 - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 10 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - ;;@ ~lib/internal/arraybuffer.ts:23:2 - (if - (i32.eqz - ;;@ ~lib/internal/arraybuffer.ts:23:9 - (i32.le_u - (get_local $0) - ;;@ ~lib/internal/arraybuffer.ts:23:28 - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - ;;@ ~lib/internal/arraybuffer.ts:25:2 - (set_local $1 - ;;@ ~lib/internal/arraybuffer.ts:28:20 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $2 - ;;@ ~lib/internal/arraybuffer.ts:28:29 - (call $~lib/internal/arraybuffer/computeSize - ;;@ ~lib/internal/arraybuffer.ts:28:41 - (get_local $0) - ) - ) - ;;@ ~lib/memory.ts:41:4 - (br $~lib/memory/memory.allocate|inlined.0 - ;;@ ~lib/memory.ts:41:45 - (call $~lib/allocator/arena/__memory_allocate - ;;@ ~lib/memory.ts:41:63 - (get_local $2) - ) - ) - ) - ) - ;;@ ~lib/internal/arraybuffer.ts:30:2 - (i32.store - ;;@ ~lib/internal/arraybuffer.ts:30:13 - (get_local $1) - ;;@ ~lib/internal/arraybuffer.ts:30:21 - (get_local $0) - ) - ;;@ ~lib/internal/arraybuffer.ts:31:39 - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_local $0 + call $~lib/internal/arraybuffer/computeSize + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/internal/memory/memset (; 11 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - ;;@ ~lib/internal/memory.ts:191:2 - (if - ;;@ ~lib/internal/memory.ts:191:6 - (i32.eqz - ;;@ ~lib/internal/memory.ts:191:7 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:191:10 - (return) - ) - ;;@ ~lib/internal/memory.ts:192:2 - (i32.store8 - ;;@ ~lib/internal/memory.ts:192:12 - (get_local $0) - ;;@ ~lib/internal/memory.ts:192:18 - (get_local $1) - ) - ;;@ ~lib/internal/memory.ts:193:2 - (i32.store8 - ;;@ ~lib/internal/memory.ts:193:12 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:193:19 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:193:23 - (i32.const 1) - ) - ;;@ ~lib/internal/memory.ts:193:26 - (get_local $1) - ) - ;;@ ~lib/internal/memory.ts:194:2 - (if - ;;@ ~lib/internal/memory.ts:194:6 - (i32.le_u - (get_local $2) - ;;@ ~lib/internal/memory.ts:194:11 - (i32.const 2) - ) - ;;@ ~lib/internal/memory.ts:194:14 - (return) - ) - ;;@ ~lib/internal/memory.ts:196:2 - (i32.store8 - ;;@ ~lib/internal/memory.ts:196:12 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:196:19 - (i32.const 1) - ) - ;;@ ~lib/internal/memory.ts:196:22 - (get_local $1) - ) - ;;@ ~lib/internal/memory.ts:197:2 - (i32.store8 - ;;@ ~lib/internal/memory.ts:197:12 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:197:19 - (i32.const 2) - ) - ;;@ ~lib/internal/memory.ts:197:22 - (get_local $1) - ) - ;;@ ~lib/internal/memory.ts:198:2 - (i32.store8 - ;;@ ~lib/internal/memory.ts:198:12 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:198:19 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:198:23 - (i32.const 2) - ) - ;;@ ~lib/internal/memory.ts:198:26 - (get_local $1) - ) - ;;@ ~lib/internal/memory.ts:199:2 - (i32.store8 - ;;@ ~lib/internal/memory.ts:199:12 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:199:19 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:199:23 - (i32.const 3) - ) - ;;@ ~lib/internal/memory.ts:199:26 - (get_local $1) - ) - ;;@ ~lib/internal/memory.ts:200:2 - (if - ;;@ ~lib/internal/memory.ts:200:6 - (i32.le_u - (get_local $2) - ;;@ ~lib/internal/memory.ts:200:11 - (i32.const 6) - ) - ;;@ ~lib/internal/memory.ts:200:14 - (return) - ) - ;;@ ~lib/internal/memory.ts:201:2 - (i32.store8 - ;;@ ~lib/internal/memory.ts:201:12 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:201:19 - (i32.const 3) - ) - ;;@ ~lib/internal/memory.ts:201:22 - (get_local $1) - ) - ;;@ ~lib/internal/memory.ts:202:2 - (i32.store8 - ;;@ ~lib/internal/memory.ts:202:12 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:202:19 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:202:23 - (i32.const 4) - ) - ;;@ ~lib/internal/memory.ts:202:26 - (get_local $1) - ) - ;;@ ~lib/internal/memory.ts:203:2 - (if - ;;@ ~lib/internal/memory.ts:203:6 - (i32.le_u - (get_local $2) - ;;@ ~lib/internal/memory.ts:203:11 - (i32.const 8) - ) - ;;@ ~lib/internal/memory.ts:203:14 - (return) - ) - ;;@ ~lib/internal/memory.ts:206:2 - (set_local $3 - ;;@ ~lib/internal/memory.ts:206:17 - (i32.and - (i32.sub - (i32.const 0) - ;;@ ~lib/internal/memory.ts:206:18 - (get_local $0) - ) - ;;@ ~lib/internal/memory.ts:206:25 - (i32.const 3) - ) - ) - ;;@ ~lib/internal/memory.ts:207:2 - (set_local $0 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:207:10 - (get_local $3) - ) - ) - ;;@ ~lib/internal/memory.ts:208:2 - (set_local $2 - (i32.sub - (get_local $2) - ;;@ ~lib/internal/memory.ts:208:7 - (get_local $3) - ) - ) - ;;@ ~lib/internal/memory.ts:209:2 - (set_local $2 - (i32.and - (get_local $2) - ;;@ ~lib/internal/memory.ts:209:7 - (i32.const -4) - ) - ) - ;;@ ~lib/internal/memory.ts:211:2 - (set_local $4 - ;;@ ~lib/internal/memory.ts:211:17 - (i32.mul - (i32.div_u - (i32.const -1) - ;;@ ~lib/internal/memory.ts:211:27 - (i32.const 255) - ) - (i32.and - ;;@ ~lib/internal/memory.ts:211:33 - (get_local $1) - (i32.const 255) - ) - ) - ) - ;;@ ~lib/internal/memory.ts:214:2 - (i32.store - ;;@ ~lib/internal/memory.ts:214:13 - (get_local $0) - ;;@ ~lib/internal/memory.ts:214:19 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:215:2 - (i32.store - ;;@ ~lib/internal/memory.ts:215:13 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:215:20 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:215:24 - (i32.const 4) - ) - ;;@ ~lib/internal/memory.ts:215:27 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:216:2 - (if - ;;@ ~lib/internal/memory.ts:216:6 - (i32.le_u - (get_local $2) - ;;@ ~lib/internal/memory.ts:216:11 - (i32.const 8) - ) - ;;@ ~lib/internal/memory.ts:216:14 - (return) - ) - ;;@ ~lib/internal/memory.ts:217:2 - (i32.store - ;;@ ~lib/internal/memory.ts:217:13 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:217:20 - (i32.const 4) - ) - ;;@ ~lib/internal/memory.ts:217:23 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:218:2 - (i32.store - ;;@ ~lib/internal/memory.ts:218:13 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:218:20 - (i32.const 8) - ) - ;;@ ~lib/internal/memory.ts:218:23 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:219:2 - (i32.store - ;;@ ~lib/internal/memory.ts:219:13 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:219:20 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:219:24 - (i32.const 12) - ) - ;;@ ~lib/internal/memory.ts:219:28 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:220:2 - (i32.store - ;;@ ~lib/internal/memory.ts:220:13 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:220:20 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:220:24 - (i32.const 8) - ) - ;;@ ~lib/internal/memory.ts:220:27 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:221:2 - (if - ;;@ ~lib/internal/memory.ts:221:6 - (i32.le_u - (get_local $2) - ;;@ ~lib/internal/memory.ts:221:11 - (i32.const 24) - ) - ;;@ ~lib/internal/memory.ts:221:15 - (return) - ) - ;;@ ~lib/internal/memory.ts:222:2 - (i32.store - ;;@ ~lib/internal/memory.ts:222:13 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:222:20 - (i32.const 12) - ) - ;;@ ~lib/internal/memory.ts:222:24 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:223:2 - (i32.store - ;;@ ~lib/internal/memory.ts:223:13 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:223:20 - (i32.const 16) - ) - ;;@ ~lib/internal/memory.ts:223:24 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:224:2 - (i32.store - ;;@ ~lib/internal/memory.ts:224:13 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:224:20 - (i32.const 20) - ) - ;;@ ~lib/internal/memory.ts:224:24 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:225:2 - (i32.store - ;;@ ~lib/internal/memory.ts:225:13 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:225:20 - (i32.const 24) - ) - ;;@ ~lib/internal/memory.ts:225:24 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:226:2 - (i32.store - ;;@ ~lib/internal/memory.ts:226:13 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:226:20 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:226:24 - (i32.const 28) - ) - ;;@ ~lib/internal/memory.ts:226:28 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:227:2 - (i32.store - ;;@ ~lib/internal/memory.ts:227:13 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:227:20 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:227:24 - (i32.const 24) - ) - ;;@ ~lib/internal/memory.ts:227:28 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:228:2 - (i32.store - ;;@ ~lib/internal/memory.ts:228:13 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:228:20 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:228:24 - (i32.const 20) - ) - ;;@ ~lib/internal/memory.ts:228:28 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:229:2 - (i32.store - ;;@ ~lib/internal/memory.ts:229:13 - (i32.sub - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:229:20 - (get_local $2) - ) - ;;@ ~lib/internal/memory.ts:229:24 - (i32.const 16) - ) - ;;@ ~lib/internal/memory.ts:229:28 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:232:2 - (set_local $3 - ;;@ ~lib/internal/memory.ts:232:6 - (i32.add - (i32.const 24) - ;;@ ~lib/internal/memory.ts:232:11 - (i32.and - ;;@ ~lib/internal/memory.ts:232:12 - (get_local $0) - ;;@ ~lib/internal/memory.ts:232:19 - (i32.const 4) - ) - ) - ) - ;;@ ~lib/internal/memory.ts:233:2 - (set_local $0 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:233:10 - (get_local $3) - ) - ) - ;;@ ~lib/internal/memory.ts:234:2 - (set_local $2 - (i32.sub - (get_local $2) - ;;@ ~lib/internal/memory.ts:234:7 - (get_local $3) - ) - ) - ;;@ ~lib/internal/memory.ts:237:2 - (set_local $5 - ;;@ ~lib/internal/memory.ts:237:17 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:237:28 - (i64.shl - ;;@ ~lib/internal/memory.ts:237:29 - (i64.extend_u/i32 - (get_local $4) - ) - ;;@ ~lib/internal/memory.ts:237:41 - (i64.const 32) - ) - ) - ) - ;;@ ~lib/internal/memory.ts:238:2 - (block $break|0 - (loop $continue|0 - (if - ;;@ ~lib/internal/memory.ts:238:9 - (i32.ge_u - (get_local $2) - ;;@ ~lib/internal/memory.ts:238:14 - (i32.const 32) - ) - (block - ;;@ ~lib/internal/memory.ts:238:18 - (block - ;;@ ~lib/internal/memory.ts:239:4 - (i64.store - ;;@ ~lib/internal/memory.ts:239:15 - (get_local $0) - ;;@ ~lib/internal/memory.ts:239:21 - (get_local $5) - ) - ;;@ ~lib/internal/memory.ts:240:4 - (i64.store - ;;@ ~lib/internal/memory.ts:240:15 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:240:22 - (i32.const 8) - ) - ;;@ ~lib/internal/memory.ts:240:25 - (get_local $5) - ) - ;;@ ~lib/internal/memory.ts:241:4 - (i64.store - ;;@ ~lib/internal/memory.ts:241:15 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:241:22 - (i32.const 16) - ) - ;;@ ~lib/internal/memory.ts:241:26 - (get_local $5) - ) - ;;@ ~lib/internal/memory.ts:242:4 - (i64.store - ;;@ ~lib/internal/memory.ts:242:15 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:242:22 - (i32.const 24) - ) - ;;@ ~lib/internal/memory.ts:242:26 - (get_local $5) - ) - ;;@ ~lib/internal/memory.ts:243:4 - (set_local $2 - (i32.sub - (get_local $2) - ;;@ ~lib/internal/memory.ts:243:9 - (i32.const 32) - ) - ) - ;;@ ~lib/internal/memory.ts:244:4 - (set_local $0 - (i32.add - (get_local $0) - ;;@ ~lib/internal/memory.ts:244:12 - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/array/Array#constructor (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - ;;@ ~lib/array.ts:37:4 - (if - ;;@ ~lib/array.ts:37:8 - (i32.gt_u - (get_local $1) - ;;@ ~lib/array.ts:37:22 - (i32.const 268435454) - ) - ;;@ ~lib/array.ts:37:39 - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - ;;@ ~lib/array.ts:38:4 - (set_local $2 - ;;@ ~lib/array.ts:38:21 - (i32.shl - (get_local $1) - ;;@ ~lib/array.ts:38:31 - (i32.const 2) - ) - ) - ;;@ ~lib/array.ts:39:4 - (set_local $3 - ;;@ ~lib/array.ts:39:17 - (call $~lib/internal/arraybuffer/allocateUnsafe - ;;@ ~lib/array.ts:39:32 - (get_local $2) - ) - ) - ;;@ ~lib/array.ts:40:4 - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - ;;@ ~lib/array.ts:40:19 - (get_local $3) - ) - ;;@ ~lib/array.ts:41:4 - (i32.store offset=4 - (get_local $0) - ;;@ ~lib/array.ts:41:19 - (get_local $1) - ) - ;;@ ~lib/array.ts:42:11 - (block $~lib/memory/memory.fill|inlined.0 - (set_local $4 - ;;@ ~lib/array.ts:43:6 - (i32.add - (get_local $3) - ;;@ ~lib/array.ts:43:34 - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - ;;@ ~lib/array.ts:44:6 - (i32.const 0) - ) - ;;@ ~lib/memory.ts:15:4 - (call $~lib/internal/memory/memset - ;;@ ~lib/memory.ts:15:11 - (get_local $4) - ;;@ ~lib/memory.ts:15:17 - (get_local $5) - ;;@ ~lib/memory.ts:15:20 - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.0 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array#__unchecked_set (; 13 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - ;;@ ~lib/array.ts:112:4 - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (set_local $3 - ;;@ ~lib/array.ts:112:21 - (i32.load - (get_local $0) - ) - ) - ;;@ ~lib/internal/arraybuffer.ts:72:2 - (i32.store offset=8 - ;;@ ~lib/internal/arraybuffer.ts:72:11 - (i32.add - (get_local $3) - ;;@ ~lib/internal/arraybuffer.ts:72:39 - (i32.shl - ;;@ ~lib/internal/arraybuffer.ts:72:40 - (get_local $1) - ;;@ ~lib/internal/arraybuffer.ts:72:56 - (i32.const 2) - ) - ) - ;;@ ~lib/internal/arraybuffer.ts:72:71 - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 ) (func $~lib/array/Array#__unchecked_get (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - ;;@ ~lib/array.ts:92:46 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (set_local $2 - ;;@ ~lib/array.ts:92:27 - (i32.load - (get_local $0) - ) - ) - ;;@ ~lib/internal/arraybuffer.ts:68:91 - (i32.load offset=8 - ;;@ ~lib/internal/arraybuffer.ts:68:20 - (i32.add - (get_local $2) - ;;@ ~lib/internal/arraybuffer.ts:68:48 - (i32.shl - ;;@ ~lib/internal/arraybuffer.ts:68:49 - (get_local $1) - ;;@ ~lib/internal/arraybuffer.ts:68:65 - (i32.const 2) - ) - ) - ) - ) + get_local $0 + i32.load + set_local $2 + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 ) (func $~lib/array/Array#__get (; 15 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - ;;@ ~lib/array.ts:84:4 - (set_local $2 - ;;@ ~lib/array.ts:84:17 - (i32.load - (get_local $0) - ) - ) - ;;@ ~lib/array.ts:87:23 - (if (result i32) - ;;@ ~lib/array.ts:85:11 - (i32.lt_u - (get_local $1) - ;;@ ~lib/array.ts:85:24 - (i32.shr_u - ;;@ ~lib/array.ts:85:30 - (i32.load - (get_local $2) - ) - ;;@ ~lib/array.ts:85:52 - (i32.const 2) - ) - ) - ;;@ ~lib/array.ts:86:8 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) - ;;@ ~lib/internal/arraybuffer.ts:68:91 - (i32.load offset=8 - ;;@ ~lib/internal/arraybuffer.ts:68:20 - (i32.add - (get_local $2) - ;;@ ~lib/internal/arraybuffer.ts:68:48 - (i32.shl - ;;@ ~lib/internal/arraybuffer.ts:68:49 - (get_local $1) - ;;@ ~lib/internal/arraybuffer.ts:68:65 - (i32.const 2) - ) - ) - ) - ) - ;;@ ~lib/array.ts:87:8 - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $assembly/index/Body#offsetMomentum (; 16 ;) (type $iFFFi) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - ;;@ assembly/index.ts:24:4 - (f64.store offset=24 - (get_local $0) - ;;@ assembly/index.ts:24:14 - (f64.div - (f64.neg - ;;@ assembly/index.ts:24:15 - (get_local $1) - ) - ;;@ assembly/index.ts:24:20 - (get_global $assembly/index/SOLAR_MASS) - ) - ) - ;;@ assembly/index.ts:25:4 - (f64.store offset=32 - (get_local $0) - ;;@ assembly/index.ts:25:14 - (f64.div - (f64.neg - ;;@ assembly/index.ts:25:15 - (get_local $2) - ) - ;;@ assembly/index.ts:25:20 - (get_global $assembly/index/SOLAR_MASS) - ) - ) - ;;@ assembly/index.ts:26:4 - (f64.store offset=40 - (get_local $0) - ;;@ assembly/index.ts:26:14 - (f64.div - (f64.neg - ;;@ assembly/index.ts:26:15 - (get_local $3) - ) - ;;@ assembly/index.ts:26:20 - (get_global $assembly/index/SOLAR_MASS) - ) - ) - ;;@ assembly/index.ts:27:11 - (get_local $0) + get_local $0 + get_local $1 + f64.neg + get_global $assembly/index/SOLAR_MASS + f64.div + f64.store offset=24 + get_local $0 + get_local $2 + f64.neg + get_global $assembly/index/SOLAR_MASS + f64.div + f64.store offset=32 + get_local $0 + get_local $3 + f64.neg + get_global $assembly/index/SOLAR_MASS + f64.div + f64.store offset=40 + get_local $0 ) (func $assembly/index/NBodySystem#constructor (; 17 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 f64) @@ -1273,210 +677,122 @@ (local $6 i32) (local $7 i32) (local $8 f64) - ;;@ assembly/index.ts:88:4 - (set_local $2 - ;;@ assembly/index.ts:88:20 - (f64.const 0) - ) - ;;@ assembly/index.ts:89:4 - (set_local $3 - ;;@ assembly/index.ts:89:20 - (f64.const 0) - ) - ;;@ assembly/index.ts:90:4 - (set_local $4 - ;;@ assembly/index.ts:90:20 - (f64.const 0) - ) - ;;@ assembly/index.ts:91:4 - (set_local $5 - ;;@ assembly/index.ts:91:15 - (block $~lib/array/Array#get:length|inlined.0 (result i32) - ;;@ ~lib/array.ts:51:16 - (i32.load offset=4 - ;;@ ~lib/array.ts:51:11 - (get_local $1) - ) - ) - ) - ;;@ assembly/index.ts:92:4 - (block $break|0 - ;;@ assembly/index.ts:92:9 - (set_local $6 - ;;@ assembly/index.ts:92:17 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - ;;@ assembly/index.ts:92:20 - (i32.lt_s - (get_local $6) - ;;@ assembly/index.ts:92:24 - (get_local $5) - ) - ) - ) - ;;@ assembly/index.ts:92:35 - (block - ;;@ assembly/index.ts:93:6 - (set_local $7 - ;;@ assembly/index.ts:93:14 - (call $~lib/array/Array#__unchecked_get - ;;@ assembly/index.ts:93:24 - (get_local $1) - ;;@ assembly/index.ts:93:31 - (get_local $6) - ) - ) - ;;@ assembly/index.ts:94:6 - (set_local $8 - ;;@ assembly/index.ts:94:14 - (f64.load offset=48 - (get_local $7) - ) - ) - ;;@ assembly/index.ts:95:6 - (set_local $2 - (f64.add - (get_local $2) - ;;@ assembly/index.ts:95:12 - (f64.mul - (f64.load offset=24 - (get_local $7) - ) - ;;@ assembly/index.ts:95:19 - (get_local $8) - ) - ) - ) - ;;@ assembly/index.ts:96:6 - (set_local $3 - (f64.add - (get_local $3) - ;;@ assembly/index.ts:96:12 - (f64.mul - (f64.load offset=32 - (get_local $7) - ) - ;;@ assembly/index.ts:96:19 - (get_local $8) - ) - ) - ) - ;;@ assembly/index.ts:97:6 - (set_local $4 - (f64.add - (get_local $4) - ;;@ assembly/index.ts:97:12 - (f64.mul - (f64.load offset=40 - (get_local $7) - ) - ;;@ assembly/index.ts:97:19 - (get_local $8) - ) - ) - ) - ) - ;;@ assembly/index.ts:92:30 - (set_local $6 - (i32.add - ;;@ assembly/index.ts:92:32 - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ;;@ assembly/index.ts:99:14 - (drop - (call $assembly/index/Body#offsetMomentum - ;;@ assembly/index.ts:99:4 - (call $~lib/array/Array#__get - (get_local $1) - ;;@ assembly/index.ts:99:11 - (i32.const 0) - ) - ;;@ assembly/index.ts:99:29 - (get_local $2) - ;;@ assembly/index.ts:99:33 - (get_local $3) - ;;@ assembly/index.ts:99:37 - (get_local $4) - ) - ) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $6 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.store - (get_local $6) - (get_local $1) - ) - (get_local $6) - ) - ) - ) - ) + f64.const 0 + set_local $2 + f64.const 0 + set_local $3 + f64.const 0 + set_local $4 + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_local $1 + i32.load offset=4 + end + set_local $5 + block $break|0 + i32.const 0 + set_local $6 + loop $repeat|0 + get_local $6 + get_local $5 + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $1 + get_local $6 + call $~lib/array/Array#__unchecked_get + set_local $7 + get_local $7 + f64.load offset=48 + set_local $8 + get_local $2 + get_local $7 + f64.load offset=24 + get_local $8 + f64.mul + f64.add + set_local $2 + get_local $3 + get_local $7 + f64.load offset=32 + get_local $8 + f64.mul + f64.add + set_local $3 + get_local $4 + get_local $7 + f64.load offset=40 + get_local $8 + f64.mul + f64.add + set_local $4 + end + get_local $6 + i32.const 1 + i32.add + set_local $6 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 + i32.const 0 + call $~lib/array/Array#__get + get_local $2 + get_local $3 + get_local $4 + call $assembly/index/Body#offsetMomentum + drop + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 4 + call $~lib/memory/memory.allocate + set_local $6 + get_local $6 + get_local $1 + i32.store + get_local $6 + end + tee_local $0 + end + tee_local $0 ) (func $assembly/index/init (; 18 ;) (type $v) (local $0 i32) - ;;@ assembly/index.ts:189:2 - (set_global $assembly/index/system - ;;@ assembly/index.ts:189:11 - (call $assembly/index/NBodySystem#constructor - (i32.const 0) - ;;@ assembly/index.ts:189:27 - (block (result i32) - (set_local $0 - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 5) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 0) - ;;@ assembly/index.ts:190:4 - (call $assembly/index/Sun) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 1) - ;;@ assembly/index.ts:191:4 - (call $assembly/index/Jupiter) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 2) - ;;@ assembly/index.ts:192:4 - (call $assembly/index/Saturn) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 3) - ;;@ assembly/index.ts:193:4 - (call $assembly/index/Uranus) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 4) - ;;@ assembly/index.ts:194:4 - (call $assembly/index/Neptune) - ) - (get_local $0) - ) - ) - ) + i32.const 0 + block (result i32) + i32.const 0 + i32.const 5 + call $~lib/array/Array#constructor + set_local $0 + get_local $0 + i32.const 0 + call $assembly/index/Sun + call $~lib/array/Array#__unchecked_set + get_local $0 + i32.const 1 + call $assembly/index/Jupiter + call $~lib/array/Array#__unchecked_set + get_local $0 + i32.const 2 + call $assembly/index/Saturn + call $~lib/array/Array#__unchecked_set + get_local $0 + i32.const 3 + call $assembly/index/Uranus + call $~lib/array/Array#__unchecked_set + get_local $0 + i32.const 4 + call $assembly/index/Neptune + call $~lib/array/Array#__unchecked_set + get_local $0 + end + call $assembly/index/NBodySystem#constructor + set_global $assembly/index/system ) (func $assembly/index/NBodySystem#advance (; 19 ;) (type $iFv) (param $0 i32) (param $1 f64) (local $2 i32) @@ -1500,408 +816,207 @@ (local $20 f64) (local $21 f64) (local $22 f64) - ;;@ assembly/index.ts:103:4 - (set_local $2 - ;;@ assembly/index.ts:103:17 - (i32.load - (get_local $0) - ) - ) - ;;@ assembly/index.ts:104:4 - (set_local $3 - ;;@ assembly/index.ts:104:20 - (block $~lib/array/Array#get:length|inlined.1 (result i32) - ;;@ ~lib/array.ts:51:16 - (i32.load offset=4 - ;;@ ~lib/array.ts:51:11 - (get_local $2) - ) - ) - ) - ;;@ assembly/index.ts:107:4 - (block $break|0 - ;;@ assembly/index.ts:107:9 - (set_local $4 - ;;@ assembly/index.ts:107:22 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - ;;@ assembly/index.ts:107:25 - (i32.lt_u - (get_local $4) - ;;@ assembly/index.ts:107:29 - (get_local $3) - ) - ) - ) - ;;@ assembly/index.ts:107:40 - (block - ;;@ assembly/index.ts:108:6 - (set_local $5 - ;;@ assembly/index.ts:108:18 - (call $~lib/array/Array#__unchecked_get - ;;@ assembly/index.ts:108:28 - (get_local $2) - ;;@ assembly/index.ts:108:35 - (get_local $4) - ) - ) - ;;@ assembly/index.ts:111:6 - (set_local $6 - ;;@ assembly/index.ts:111:15 - (f64.load - (get_local $5) - ) - ) - ;;@ assembly/index.ts:112:6 - (set_local $7 - ;;@ assembly/index.ts:112:15 - (f64.load offset=8 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:113:6 - (set_local $8 - ;;@ assembly/index.ts:113:15 - (f64.load offset=16 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:115:6 - (set_local $9 - ;;@ assembly/index.ts:115:17 - (f64.load offset=24 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:116:6 - (set_local $10 - ;;@ assembly/index.ts:116:17 - (f64.load offset=32 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:117:6 - (set_local $11 - ;;@ assembly/index.ts:117:17 - (f64.load offset=40 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:119:6 - (set_local $12 - ;;@ assembly/index.ts:119:19 - (f64.load offset=48 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:120:6 - (block $break|1 - ;;@ assembly/index.ts:120:11 - (set_local $13 - ;;@ assembly/index.ts:120:24 - (i32.add - (get_local $4) - ;;@ assembly/index.ts:120:28 - (i32.const 1) - ) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - ;;@ assembly/index.ts:120:31 - (i32.lt_u - (get_local $13) - ;;@ assembly/index.ts:120:35 - (get_local $3) - ) - ) - ) - ;;@ assembly/index.ts:120:46 - (block - ;;@ assembly/index.ts:121:8 - (set_local $14 - ;;@ assembly/index.ts:121:20 - (call $~lib/array/Array#__unchecked_get - ;;@ assembly/index.ts:121:30 - (get_local $2) - ;;@ assembly/index.ts:121:37 - (get_local $13) - ) - ) - ;;@ assembly/index.ts:124:8 - (set_local $15 - ;;@ assembly/index.ts:124:17 - (f64.sub - (get_local $6) - ;;@ assembly/index.ts:124:22 - (f64.load - (get_local $14) - ) - ) - ) - ;;@ assembly/index.ts:125:8 - (set_local $16 - ;;@ assembly/index.ts:125:17 - (f64.sub - (get_local $7) - ;;@ assembly/index.ts:125:22 - (f64.load offset=8 - (get_local $14) - ) - ) - ) - ;;@ assembly/index.ts:126:8 - (set_local $17 - ;;@ assembly/index.ts:126:17 - (f64.sub - (get_local $8) - ;;@ assembly/index.ts:126:22 - (f64.load offset=16 - (get_local $14) - ) - ) - ) - ;;@ assembly/index.ts:128:8 - (set_local $18 - ;;@ assembly/index.ts:128:25 - (f64.add - (f64.add - (f64.mul - (get_local $15) - ;;@ assembly/index.ts:128:30 - (get_local $15) - ) - ;;@ assembly/index.ts:128:35 - (f64.mul - (get_local $16) - ;;@ assembly/index.ts:128:40 - (get_local $16) - ) - ) - ;;@ assembly/index.ts:128:45 - (f64.mul - (get_local $17) - ;;@ assembly/index.ts:128:50 - (get_local $17) - ) - ) - ) - ;;@ assembly/index.ts:129:8 - (set_local $19 - ;;@ assembly/index.ts:129:23 - (block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) - ;;@ ~lib/math.ts:1016:30 - (f64.sqrt - ;;@ ~lib/math.ts:1016:29 - (get_local $18) - ) - ) - ) - ;;@ assembly/index.ts:130:8 - (set_local $20 - ;;@ assembly/index.ts:130:18 - (f64.div - (get_local $1) - ;;@ assembly/index.ts:130:23 - (f64.mul - ;;@ assembly/index.ts:130:24 - (get_local $18) - ;;@ assembly/index.ts:130:37 - (get_local $19) - ) - ) - ) - ;;@ assembly/index.ts:132:8 - (set_local $21 - ;;@ assembly/index.ts:132:18 - (f64.mul - (get_local $12) - ;;@ assembly/index.ts:132:27 - (get_local $20) - ) - ) - ;;@ assembly/index.ts:133:8 - (set_local $22 - ;;@ assembly/index.ts:133:18 - (f64.mul - (f64.load offset=48 - (get_local $14) - ) - ;;@ assembly/index.ts:133:31 - (get_local $20) - ) - ) - ;;@ assembly/index.ts:135:8 - (set_local $9 - (f64.sub - (get_local $9) - ;;@ assembly/index.ts:135:16 - (f64.mul - (get_local $15) - ;;@ assembly/index.ts:135:21 - (get_local $22) - ) - ) - ) - ;;@ assembly/index.ts:136:8 - (set_local $10 - (f64.sub - (get_local $10) - ;;@ assembly/index.ts:136:16 - (f64.mul - (get_local $16) - ;;@ assembly/index.ts:136:21 - (get_local $22) - ) - ) - ) - ;;@ assembly/index.ts:137:8 - (set_local $11 - (f64.sub - (get_local $11) - ;;@ assembly/index.ts:137:16 - (f64.mul - (get_local $17) - ;;@ assembly/index.ts:137:21 - (get_local $22) - ) - ) - ) - ;;@ assembly/index.ts:139:8 - (f64.store offset=24 - (get_local $14) - (f64.add - (f64.load offset=24 - (get_local $14) - ) - ;;@ assembly/index.ts:139:20 - (f64.mul - (get_local $15) - ;;@ assembly/index.ts:139:25 - (get_local $21) - ) - ) - ) - ;;@ assembly/index.ts:140:8 - (f64.store offset=32 - (get_local $14) - (f64.add - (f64.load offset=32 - (get_local $14) - ) - ;;@ assembly/index.ts:140:20 - (f64.mul - (get_local $16) - ;;@ assembly/index.ts:140:25 - (get_local $21) - ) - ) - ) - ;;@ assembly/index.ts:141:8 - (f64.store offset=40 - (get_local $14) - (f64.add - (f64.load offset=40 - (get_local $14) - ) - ;;@ assembly/index.ts:141:20 - (f64.mul - (get_local $17) - ;;@ assembly/index.ts:141:25 - (get_local $21) - ) - ) - ) - ) - ;;@ assembly/index.ts:120:41 - (set_local $13 - (i32.add - ;;@ assembly/index.ts:120:43 - (get_local $13) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ;;@ assembly/index.ts:144:6 - (f64.store offset=24 - (get_local $5) - ;;@ assembly/index.ts:144:17 - (get_local $9) - ) - ;;@ assembly/index.ts:145:6 - (f64.store offset=32 - (get_local $5) - ;;@ assembly/index.ts:145:17 - (get_local $10) - ) - ;;@ assembly/index.ts:146:6 - (f64.store offset=40 - (get_local $5) - ;;@ assembly/index.ts:146:17 - (get_local $11) - ) - ;;@ assembly/index.ts:148:6 - (f64.store - (get_local $5) - (f64.add - (f64.load - (get_local $5) - ) - ;;@ assembly/index.ts:148:17 - (f64.mul - (get_local $1) - ;;@ assembly/index.ts:148:22 - (get_local $9) - ) - ) - ) - ;;@ assembly/index.ts:149:6 - (f64.store offset=8 - (get_local $5) - (f64.add - (f64.load offset=8 - (get_local $5) - ) - ;;@ assembly/index.ts:149:17 - (f64.mul - (get_local $1) - ;;@ assembly/index.ts:149:22 - (get_local $10) - ) - ) - ) - ;;@ assembly/index.ts:150:6 - (f64.store offset=16 - (get_local $5) - (f64.add - (f64.load offset=16 - (get_local $5) - ) - ;;@ assembly/index.ts:150:17 - (f64.mul - (get_local $1) - ;;@ assembly/index.ts:150:22 - (get_local $11) - ) - ) - ) - ) - ;;@ assembly/index.ts:107:35 - (set_local $4 - (i32.add - ;;@ assembly/index.ts:107:37 - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_local $0 + i32.load + set_local $2 + block $~lib/array/Array#get:length|inlined.1 (result i32) + get_local $2 + i32.load offset=4 + end + set_local $3 + block $break|0 + i32.const 0 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $3 + i32.lt_u + i32.eqz + br_if $break|0 + block + get_local $2 + get_local $4 + call $~lib/array/Array#__unchecked_get + set_local $5 + get_local $5 + f64.load + set_local $6 + get_local $5 + f64.load offset=8 + set_local $7 + get_local $5 + f64.load offset=16 + set_local $8 + get_local $5 + f64.load offset=24 + set_local $9 + get_local $5 + f64.load offset=32 + set_local $10 + get_local $5 + f64.load offset=40 + set_local $11 + get_local $5 + f64.load offset=48 + set_local $12 + block $break|1 + get_local $4 + i32.const 1 + i32.add + set_local $13 + loop $repeat|1 + get_local $13 + get_local $3 + i32.lt_u + i32.eqz + br_if $break|1 + block + get_local $2 + get_local $13 + call $~lib/array/Array#__unchecked_get + set_local $14 + get_local $6 + get_local $14 + f64.load + f64.sub + set_local $15 + get_local $7 + get_local $14 + f64.load offset=8 + f64.sub + set_local $16 + get_local $8 + get_local $14 + f64.load offset=16 + f64.sub + set_local $17 + get_local $15 + get_local $15 + f64.mul + get_local $16 + get_local $16 + f64.mul + f64.add + get_local $17 + get_local $17 + f64.mul + f64.add + set_local $18 + block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) + get_local $18 + f64.sqrt + end + set_local $19 + get_local $1 + get_local $18 + get_local $19 + f64.mul + f64.div + set_local $20 + get_local $12 + get_local $20 + f64.mul + set_local $21 + get_local $14 + f64.load offset=48 + get_local $20 + f64.mul + set_local $22 + get_local $9 + get_local $15 + get_local $22 + f64.mul + f64.sub + set_local $9 + get_local $10 + get_local $16 + get_local $22 + f64.mul + f64.sub + set_local $10 + get_local $11 + get_local $17 + get_local $22 + f64.mul + f64.sub + set_local $11 + get_local $14 + get_local $14 + f64.load offset=24 + get_local $15 + get_local $21 + f64.mul + f64.add + f64.store offset=24 + get_local $14 + get_local $14 + f64.load offset=32 + get_local $16 + get_local $21 + f64.mul + f64.add + f64.store offset=32 + get_local $14 + get_local $14 + f64.load offset=40 + get_local $17 + get_local $21 + f64.mul + f64.add + f64.store offset=40 + end + get_local $13 + i32.const 1 + i32.add + set_local $13 + br $repeat|1 + unreachable + end + unreachable + end + get_local $5 + get_local $9 + f64.store offset=24 + get_local $5 + get_local $10 + f64.store offset=32 + get_local $5 + get_local $11 + f64.store offset=40 + get_local $5 + get_local $5 + f64.load + get_local $1 + get_local $9 + f64.mul + f64.add + f64.store + get_local $5 + get_local $5 + f64.load offset=8 + get_local $1 + get_local $10 + f64.mul + f64.add + f64.store offset=8 + get_local $5 + get_local $5 + f64.load offset=16 + get_local $1 + get_local $11 + f64.mul + f64.add + f64.store offset=16 + end + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) (func $assembly/index/NBodySystem#energy (; 20 ;) (type $iF) (param $0 i32) (result f64) (local $1 f64) @@ -1922,402 +1037,212 @@ (local $16 f64) (local $17 f64) (local $18 f64) - ;;@ assembly/index.ts:155:4 - (set_local $1 - ;;@ assembly/index.ts:155:19 - (f64.const 0) - ) - ;;@ assembly/index.ts:156:4 - (set_local $2 - ;;@ assembly/index.ts:156:17 - (i32.load - (get_local $0) - ) - ) - ;;@ assembly/index.ts:158:4 - (block $break|0 - ;;@ assembly/index.ts:158:9 - (block - (set_local $3 - ;;@ assembly/index.ts:158:22 - (i32.const 0) - ) - (set_local $4 - ;;@ assembly/index.ts:158:37 - (block $~lib/array/Array#get:length|inlined.2 (result i32) - ;;@ ~lib/array.ts:51:16 - (i32.load offset=4 - ;;@ ~lib/array.ts:51:11 - (get_local $2) - ) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - ;;@ assembly/index.ts:158:52 - (i32.lt_u - (get_local $3) - ;;@ assembly/index.ts:158:56 - (get_local $4) - ) - ) - ) - ;;@ assembly/index.ts:158:67 - (block - ;;@ assembly/index.ts:159:6 - (set_local $5 - ;;@ assembly/index.ts:159:18 - (call $~lib/array/Array#__unchecked_get - ;;@ assembly/index.ts:159:28 - (get_local $2) - ;;@ assembly/index.ts:159:35 - (get_local $3) - ) - ) - ;;@ assembly/index.ts:161:6 - (set_local $6 - ;;@ assembly/index.ts:161:15 - (f64.load - (get_local $5) - ) - ) - ;;@ assembly/index.ts:162:6 - (set_local $7 - ;;@ assembly/index.ts:162:15 - (f64.load offset=8 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:163:6 - (set_local $8 - ;;@ assembly/index.ts:163:15 - (f64.load offset=16 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:165:6 - (set_local $9 - ;;@ assembly/index.ts:165:15 - (f64.load offset=24 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:166:6 - (set_local $10 - ;;@ assembly/index.ts:166:15 - (f64.load offset=32 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:167:6 - (set_local $11 - ;;@ assembly/index.ts:167:15 - (f64.load offset=40 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:169:6 - (set_local $12 - ;;@ assembly/index.ts:169:16 - (f64.load offset=48 - (get_local $5) - ) - ) - ;;@ assembly/index.ts:171:6 - (set_local $1 - (f64.add - (get_local $1) - ;;@ assembly/index.ts:171:11 - (f64.mul - (f64.mul - (f64.const 0.5) - ;;@ assembly/index.ts:171:17 - (get_local $12) - ) - ;;@ assembly/index.ts:171:23 - (f64.add - ;;@ assembly/index.ts:171:24 - (f64.add - (f64.mul - (get_local $9) - ;;@ assembly/index.ts:171:29 - (get_local $9) - ) - ;;@ assembly/index.ts:171:34 - (f64.mul - (get_local $10) - ;;@ assembly/index.ts:171:39 - (get_local $10) - ) - ) - ;;@ assembly/index.ts:171:44 - (f64.mul - (get_local $11) - ;;@ assembly/index.ts:171:49 - (get_local $11) - ) - ) - ) - ) - ) - ;;@ assembly/index.ts:173:6 - (block $break|1 - ;;@ assembly/index.ts:173:11 - (set_local $13 - ;;@ assembly/index.ts:173:24 - (i32.add - (get_local $3) - ;;@ assembly/index.ts:173:28 - (i32.const 1) - ) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - ;;@ assembly/index.ts:173:31 - (i32.lt_u - (get_local $13) - ;;@ assembly/index.ts:173:35 - (get_local $4) - ) - ) - ) - ;;@ assembly/index.ts:173:46 - (block - ;;@ assembly/index.ts:174:8 - (set_local $14 - ;;@ assembly/index.ts:174:20 - (call $~lib/array/Array#__unchecked_get - ;;@ assembly/index.ts:174:30 - (get_local $2) - ;;@ assembly/index.ts:174:37 - (get_local $13) - ) - ) - ;;@ assembly/index.ts:175:8 - (set_local $15 - ;;@ assembly/index.ts:175:17 - (f64.sub - (get_local $6) - ;;@ assembly/index.ts:175:22 - (f64.load - (get_local $14) - ) - ) - ) - ;;@ assembly/index.ts:176:8 - (set_local $16 - ;;@ assembly/index.ts:176:17 - (f64.sub - (get_local $7) - ;;@ assembly/index.ts:176:22 - (f64.load offset=8 - (get_local $14) - ) - ) - ) - ;;@ assembly/index.ts:177:8 - (set_local $17 - ;;@ assembly/index.ts:177:17 - (f64.sub - (get_local $8) - ;;@ assembly/index.ts:177:22 - (f64.load offset=16 - (get_local $14) - ) - ) - ) - ;;@ assembly/index.ts:178:8 - (set_local $18 - ;;@ assembly/index.ts:178:23 - (block $~lib/math/NativeMath.sqrt|inlined.1 (result f64) - (set_local $18 - ;;@ assembly/index.ts:178:40 - (f64.add - (f64.add - (f64.mul - (get_local $15) - ;;@ assembly/index.ts:178:45 - (get_local $15) - ) - ;;@ assembly/index.ts:178:50 - (f64.mul - (get_local $16) - ;;@ assembly/index.ts:178:55 - (get_local $16) - ) - ) - ;;@ assembly/index.ts:178:60 - (f64.mul - (get_local $17) - ;;@ assembly/index.ts:178:65 - (get_local $17) - ) - ) - ) - ;;@ ~lib/math.ts:1016:30 - (f64.sqrt - ;;@ ~lib/math.ts:1016:29 - (get_local $18) - ) - ) - ) - ;;@ assembly/index.ts:179:8 - (set_local $1 - (f64.sub - (get_local $1) - ;;@ assembly/index.ts:179:13 - (f64.div - (f64.mul - (get_local $12) - ;;@ assembly/index.ts:179:19 - (f64.load offset=48 - (get_local $14) - ) - ) - ;;@ assembly/index.ts:179:32 - (get_local $18) - ) - ) - ) - ) - ;;@ assembly/index.ts:173:41 - (set_local $13 - (i32.add - ;;@ assembly/index.ts:173:43 - (get_local $13) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ;;@ assembly/index.ts:158:62 - (set_local $3 - (i32.add - ;;@ assembly/index.ts:158:64 - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ;;@ assembly/index.ts:182:11 - (get_local $1) + f64.const 0 + set_local $1 + get_local $0 + i32.load + set_local $2 + block $break|0 + block + i32.const 0 + set_local $3 + block $~lib/array/Array#get:length|inlined.2 (result i32) + get_local $2 + i32.load offset=4 + end + set_local $4 + end + loop $repeat|0 + get_local $3 + get_local $4 + i32.lt_u + i32.eqz + br_if $break|0 + block + get_local $2 + get_local $3 + call $~lib/array/Array#__unchecked_get + set_local $5 + get_local $5 + f64.load + set_local $6 + get_local $5 + f64.load offset=8 + set_local $7 + get_local $5 + f64.load offset=16 + set_local $8 + get_local $5 + f64.load offset=24 + set_local $9 + get_local $5 + f64.load offset=32 + set_local $10 + get_local $5 + f64.load offset=40 + set_local $11 + get_local $5 + f64.load offset=48 + set_local $12 + get_local $1 + f64.const 0.5 + get_local $12 + f64.mul + get_local $9 + get_local $9 + f64.mul + get_local $10 + get_local $10 + f64.mul + f64.add + get_local $11 + get_local $11 + f64.mul + f64.add + f64.mul + f64.add + set_local $1 + block $break|1 + get_local $3 + i32.const 1 + i32.add + set_local $13 + loop $repeat|1 + get_local $13 + get_local $4 + i32.lt_u + i32.eqz + br_if $break|1 + block + get_local $2 + get_local $13 + call $~lib/array/Array#__unchecked_get + set_local $14 + get_local $6 + get_local $14 + f64.load + f64.sub + set_local $15 + get_local $7 + get_local $14 + f64.load offset=8 + f64.sub + set_local $16 + get_local $8 + get_local $14 + f64.load offset=16 + f64.sub + set_local $17 + block $~lib/math/NativeMath.sqrt|inlined.1 (result f64) + get_local $15 + get_local $15 + f64.mul + get_local $16 + get_local $16 + f64.mul + f64.add + get_local $17 + get_local $17 + f64.mul + f64.add + set_local $18 + get_local $18 + f64.sqrt + end + set_local $18 + get_local $1 + get_local $12 + get_local $14 + f64.load offset=48 + f64.mul + get_local $18 + f64.div + f64.sub + set_local $1 + end + get_local $13 + i32.const 1 + i32.add + set_local $13 + br $repeat|1 + unreachable + end + unreachable + end + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) (func $assembly/index/step (; 21 ;) (type $F) (result f64) - ;;@ assembly/index.ts:199:9 - (call $assembly/index/NBodySystem#advance - ;;@ assembly/index.ts:199:2 - (get_global $assembly/index/system) - ;;@ assembly/index.ts:199:17 - (f64.const 0.01) - ) - ;;@ assembly/index.ts:200:23 - (call $assembly/index/NBodySystem#energy - ;;@ assembly/index.ts:200:9 - (get_global $assembly/index/system) - ) + get_global $assembly/index/system + f64.const 0.01 + call $assembly/index/NBodySystem#advance + get_global $assembly/index/system + call $assembly/index/NBodySystem#energy ) (func $assembly/index/bench (; 22 ;) (type $iv) (param $0 i32) (local $1 i32) - ;;@ assembly/index.ts:204:2 - (block $break|0 - ;;@ assembly/index.ts:204:7 - (set_local $1 - ;;@ assembly/index.ts:204:20 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - ;;@ assembly/index.ts:204:23 - (i32.lt_u - (get_local $1) - ;;@ assembly/index.ts:204:27 - (get_local $0) - ) - ) - ) - ;;@ assembly/index.ts:204:46 - (call $assembly/index/NBodySystem#advance - ;;@ assembly/index.ts:204:39 - (get_global $assembly/index/system) - ;;@ assembly/index.ts:204:54 - (f64.const 0.01) - ) - ;;@ assembly/index.ts:204:34 - (set_local $1 - (i32.add - ;;@ assembly/index.ts:204:36 - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + get_local $0 + i32.lt_u + i32.eqz + br_if $break|0 + get_global $assembly/index/system + f64.const 0.01 + call $assembly/index/NBodySystem#advance + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end ) (func $assembly/index/getBody (; 23 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - ;;@ assembly/index.ts:208:2 - (set_local $1 - ;;@ assembly/index.ts:208:15 - (i32.load - (get_global $assembly/index/system) - ) - ) - ;;@ assembly/index.ts:209:59 - (if (result i32) - ;;@ assembly/index.ts:209:9 - (i32.lt_u - (get_local $0) - ;;@ assembly/index.ts:209:22 - (block $~lib/array/Array#get:length|inlined.4 (result i32) - ;;@ ~lib/array.ts:51:16 - (i32.load offset=4 - ;;@ ~lib/array.ts:51:11 - (get_local $1) - ) - ) - ) - ;;@ assembly/index.ts:209:43 - (call $~lib/array/Array#__get - (get_local $1) - ;;@ assembly/index.ts:209:50 - (get_local $0) - ) - ;;@ assembly/index.ts:209:59 - (i32.const 0) - ) + get_global $assembly/index/system + i32.load + set_local $1 + get_local $0 + block $~lib/array/Array#get:length|inlined.4 (result i32) + get_local $1 + i32.load offset=4 + end + i32.lt_u + if (result i32) + get_local $1 + get_local $0 + call $~lib/array/Array#__get + else + i32.const 0 + end ) (func $start (; 24 ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - ;;@ ~lib/allocator/arena.ts:12:25 - (i32.and - (i32.add - ;;@ ~lib/allocator/arena.ts:12:26 - (get_global $HEAP_BASE) - ;;@ ~lib/allocator/arena.ts:12:38 - (get_global $~lib/internal/allocator/AL_MASK) - ) - ;;@ ~lib/allocator/arena.ts:12:49 - (i32.xor - ;;@ ~lib/allocator/arena.ts:12:50 - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - ;;@ ~lib/allocator/arena.ts:13:20 - (get_global $~lib/allocator/arena/startOffset) - ) - (nop) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + nop ) (func $null (; 25 ;) (type $v) ) diff --git a/examples/pson/build/optimized.wat b/examples/pson/build/optimized.wat index 79c3b086..bcb80add 100644 --- a/examples/pson/build/optimized.wat +++ b/examples/pson/build/optimized.wat @@ -6,9 +6,6 @@ (type $Fv (func (param f64))) (type $i (func (result i32))) (type $I (func (result i64))) - (memory $0 0) - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "pson" "onNull" (func $assembly/pson/onNull)) (import "pson" "onTrue" (func $assembly/pson/onTrue)) (import "pson" "onFalse" (func $assembly/pson/onFalse)) @@ -23,6 +20,9 @@ (import "pson" "onDouble" (func $assembly/pson/onDouble (param f64))) (import "pson" "onString" (func $assembly/pson/onString (param i32 i32))) (import "pson" "onBinary" (func $assembly/pson/onBinary (param i32 i32))) + (memory $0 0) + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $assembly/pson/offset (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) @@ -41,537 +41,304 @@ (export "onString" (func $assembly/pson/onString)) (export "onBinary" (func $assembly/pson/onBinary)) (export "decode" (func $assembly/pson/decode)) - (func $assembly/pson/readVarint32 (; 14 ;) (; has Stack IR ;) (type $i) (result i32) + (func $assembly/pson/readVarint32 (; 14 ;) (type $i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) - (loop $continue|0 - ;;@ assembly/pson.ts:138:4 - (set_local $0 - (i32.or - (get_local $0) - ;;@ assembly/pson.ts:137:17 - (block (result i32) - (set_global $assembly/pson/offset - (i32.add - (tee_local $0 - (get_global $assembly/pson/offset) - ) - (i32.const 1) - ) - ) - ;;@ assembly/pson.ts:138:13 - (i32.shl - (i32.and - ;;@ assembly/pson.ts:137:4 - (tee_local $2 - ;;@ assembly/pson.ts:137:8 - (i32.load8_u - (get_local $0) - ) - ) - ;;@ assembly/pson.ts:138:23 - (i32.const 127) - ) - ;;@ assembly/pson.ts:138:37 - (block (result i32) - (set_local $1 - (i32.add - (tee_local $0 - (get_local $1) - ) - (i32.const 1) - ) - ) - ;;@ assembly/pson.ts:138:32 - (i32.mul - (get_local $0) - ;;@ assembly/pson.ts:138:33 - (i32.const 7) - ) - ) - ) - ) - ) - ) - (br_if $continue|0 - ;;@ assembly/pson.ts:139:11 - (i32.and - (get_local $2) - ;;@ assembly/pson.ts:139:15 - (i32.const 128) - ) - ) - ) - ;;@ assembly/pson.ts:140:9 - (get_local $0) + loop $continue|0 + get_local $0 + block (result i32) + get_global $assembly/pson/offset + tee_local $0 + i32.const 1 + i32.add + set_global $assembly/pson/offset + get_local $0 + i32.load8_u + tee_local $2 + i32.const 127 + i32.and + block (result i32) + get_local $1 + tee_local $0 + i32.const 1 + i32.add + set_local $1 + get_local $0 + i32.const 7 + i32.mul + end + i32.shl + end + i32.or + set_local $0 + get_local $2 + i32.const 128 + i32.and + br_if $continue|0 + end + get_local $0 ) - (func $assembly/pson/readVarint64 (; 15 ;) (; has Stack IR ;) (type $I) (result i64) + (func $assembly/pson/readVarint64 (; 15 ;) (type $I) (result i64) (local $0 i64) (local $1 i32) (local $2 i64) - (loop $continue|0 - ;;@ assembly/pson.ts:149:4 - (set_local $0 - (i64.or - (get_local $0) - ;;@ assembly/pson.ts:148:17 - (block (result i64) - (set_global $assembly/pson/offset - (i32.add - (tee_local $1 - (get_global $assembly/pson/offset) - ) - (i32.const 1) - ) - ) - (set_local $2 - (i64.add - (tee_local $0 - ;;@ assembly/pson.ts:149:37 - (get_local $2) - ) - (i64.const 1) - ) - ) - ;;@ assembly/pson.ts:149:13 - (i64.shl - (i64.extend_u/i32 - ;;@ assembly/pson.ts:149:19 - (i32.and - ;;@ assembly/pson.ts:148:4 - (tee_local $1 - ;;@ assembly/pson.ts:148:8 - (i32.load8_u - (get_local $1) - ) - ) - ;;@ assembly/pson.ts:149:23 - (i32.const 127) - ) - ) - ;;@ assembly/pson.ts:149:32 - (i64.mul - (get_local $0) - ;;@ assembly/pson.ts:149:33 - (i64.const 7) - ) - ) - ) - ) - ) - (br_if $continue|0 - ;;@ assembly/pson.ts:150:11 - (i32.and - (get_local $1) - ;;@ assembly/pson.ts:150:15 - (i32.const 128) - ) - ) - ) - ;;@ assembly/pson.ts:151:9 - (get_local $0) + loop $continue|0 + get_local $0 + block (result i64) + get_global $assembly/pson/offset + tee_local $1 + i32.const 1 + i32.add + set_global $assembly/pson/offset + get_local $2 + tee_local $0 + i64.const 1 + i64.add + set_local $2 + get_local $1 + i32.load8_u + tee_local $1 + i32.const 127 + i32.and + i64.extend_u/i32 + get_local $0 + i64.const 7 + i64.mul + i64.shl + end + i64.or + set_local $0 + get_local $1 + i32.const 128 + i32.and + br_if $continue|0 + end + get_local $0 ) - (func $assembly/pson/decodeValue (; 16 ;) (; has Stack IR ;) (type $v) + (func $assembly/pson/decodeValue (; 16 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i64) - ;;@ assembly/pson.ts:49:2 - (block $break|0 - (block $case16|0 - (block $case15|0 - (block $case14|0 - (block $case12|0 - (block $case11|0 - (block $case10|0 - (block $case9|0 - (block $case8|0 - (block $case7|0 - (block $case6|0 - (block $case5|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (if - ;;@ assembly/pson.ts:46:28 - (block (result i32) - (set_global $assembly/pson/offset - (i32.add - (tee_local $1 - (get_global $assembly/pson/offset) - ) - (i32.const 1) - ) - ) - (i32.ne - (tee_local $1 - ;;@ assembly/pson.ts:46:2 - (tee_local $0 - ;;@ assembly/pson.ts:46:19 - (i32.load8_u - (get_local $1) - ) - ) - ) - (i32.const 240) - ) - ) - (block - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 $case12|0 $tablify|0 - (i32.sub - (get_local $1) - (i32.const 241) - ) - ) - ) - (br_if $case14|0 - (i32.or - (i32.eq - (get_local $1) - (i32.const 253) - ) - (i32.eq - (get_local $1) - (i32.const 254) - ) - ) - ) - (br_if $case15|0 - (i32.eq - (get_local $1) - (i32.const 255) - ) - ) - (br $case16|0) - ) - ) - ;;@ assembly/pson.ts:51:6 - (call $assembly/pson/onNull) - ;;@ assembly/pson.ts:52:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:55:6 - (call $assembly/pson/onTrue) - ;;@ assembly/pson.ts:56:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:59:6 - (call $assembly/pson/onFalse) - ;;@ assembly/pson.ts:60:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:63:6 - (call $assembly/pson/onEObject) - ;;@ assembly/pson.ts:64:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:67:6 - (call $assembly/pson/onEArray) - ;;@ assembly/pson.ts:68:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:71:6 - (call $assembly/pson/onEString) - ;;@ assembly/pson.ts:72:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:75:6 - (call $assembly/pson/onObject - ;;@ assembly/pson.ts:75:15 - (tee_local $0 - ;;@ assembly/pson.ts:75:22 - (call $assembly/pson/readVarint32) - ) - ) - (loop $continue|1 - (if - ;;@ assembly/pson.ts:76:13 - (block (result i32) - (set_local $0 - (i32.sub - (tee_local $1 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $1) - ) - (block - ;;@ assembly/pson.ts:77:8 - (call $assembly/pson/decodeValue) - ;;@ assembly/pson.ts:78:8 - (call $assembly/pson/decodeValue) - (br $continue|1) - ) - ) - ) - ;;@ assembly/pson.ts:80:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:83:6 - (call $assembly/pson/onArray - ;;@ assembly/pson.ts:83:14 - (tee_local $0 - ;;@ assembly/pson.ts:83:21 - (call $assembly/pson/readVarint32) - ) - ) - (loop $continue|2 - (if - ;;@ assembly/pson.ts:84:13 - (block (result i32) - (set_local $0 - (i32.sub - (tee_local $1 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $1) - ) - (block - ;;@ assembly/pson.ts:84:21 - (call $assembly/pson/decodeValue) - (br $continue|2) - ) - ) - ) - ;;@ assembly/pson.ts:85:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:88:6 - (call $assembly/pson/onInteger - ;;@ assembly/pson.ts:88:16 - (i32.xor - (i32.shr_u - ;;@ assembly/pson.ts:88:17 - (tee_local $0 - ;;@ assembly/pson.ts:88:25 - (call $assembly/pson/readVarint32) - ) - ;;@ assembly/pson.ts:88:44 - (i32.const 1) - ) - ;;@ assembly/pson.ts:88:49 - (i32.sub - (i32.const 0) - ;;@ assembly/pson.ts:88:50 - (i32.and - ;;@ assembly/pson.ts:88:51 - (get_local $0) - ;;@ assembly/pson.ts:88:58 - (i32.const 1) - ) - ) - ) - ) - ;;@ assembly/pson.ts:89:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:93:6 - (call $assembly/pson/onLong - ;;@ assembly/pson.ts:93:13 - (i32.wrap/i64 - ;;@ assembly/pson.ts:92:6 - (tee_local $2 - ;;@ assembly/pson.ts:92:13 - (i64.xor - (i64.shr_u - ;;@ assembly/pson.ts:92:14 - (tee_local $2 - ;;@ assembly/pson.ts:92:22 - (call $assembly/pson/readVarint64) - ) - ;;@ assembly/pson.ts:92:41 - (i64.const 1) - ) - ;;@ assembly/pson.ts:92:46 - (i64.sub - (i64.const 0) - ;;@ assembly/pson.ts:92:47 - (i64.and - ;;@ assembly/pson.ts:92:48 - (get_local $2) - ;;@ assembly/pson.ts:92:55 - (i64.const 1) - ) - ) - ) - ) - ) - ;;@ assembly/pson.ts:93:24 - (i32.wrap/i64 - ;;@ assembly/pson.ts:93:30 - (i64.shr_u - (get_local $2) - ;;@ assembly/pson.ts:93:39 - (i64.const 32) - ) - ) - ) - ;;@ assembly/pson.ts:94:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:97:6 - (call $assembly/pson/onFloat - ;;@ assembly/pson.ts:97:14 - (f32.load - ;;@ assembly/pson.ts:97:24 - (get_global $assembly/pson/offset) - ) - ) - ;;@ assembly/pson.ts:98:6 - (set_global $assembly/pson/offset - (i32.add - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:98:16 - (i32.const 4) - ) - ) - ;;@ assembly/pson.ts:99:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:102:6 - (call $assembly/pson/onDouble - ;;@ assembly/pson.ts:102:15 - (f64.load - ;;@ assembly/pson.ts:102:25 - (get_global $assembly/pson/offset) - ) - ) - ;;@ assembly/pson.ts:103:6 - (set_global $assembly/pson/offset - (i32.add - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:103:16 - (i32.const 8) - ) - ) - ;;@ assembly/pson.ts:104:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:107:6 - (set_local $0 - ;;@ assembly/pson.ts:107:13 - (call $assembly/pson/readVarint32) - ) - ;;@ assembly/pson.ts:108:6 - (call $assembly/pson/onString - ;;@ assembly/pson.ts:108:15 - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:108:23 - (get_local $0) - ) - ;;@ assembly/pson.ts:109:6 - (set_global $assembly/pson/offset - (i32.add - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:109:16 - (get_local $0) - ) - ) - ;;@ assembly/pson.ts:110:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:115:6 - (unreachable) - ) - ;;@ assembly/pson.ts:119:6 - (set_local $0 - ;;@ assembly/pson.ts:119:13 - (call $assembly/pson/readVarint32) - ) - ;;@ assembly/pson.ts:120:6 - (call $assembly/pson/onBinary - ;;@ assembly/pson.ts:120:15 - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:120:23 - (get_local $0) - ) - ;;@ assembly/pson.ts:121:6 - (set_global $assembly/pson/offset - (i32.add - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:121:16 - (get_local $0) - ) - ) - ;;@ assembly/pson.ts:122:6 - (br $break|0) - ) - ;;@ assembly/pson.ts:125:6 - (if - ;;@ assembly/pson.ts:125:10 - (i32.gt_u - (get_local $0) - (i32.const 239) - ) - ;;@ assembly/pson.ts:125:34 - (unreachable) - ) - ;;@ assembly/pson.ts:126:6 - (call $assembly/pson/onInteger - ;;@ assembly/pson.ts:126:16 - (i32.xor - (i32.shr_u - ;;@ assembly/pson.ts:126:17 - (get_local $0) - ;;@ assembly/pson.ts:126:26 - (i32.const 1) - ) - ;;@ assembly/pson.ts:126:31 - (i32.sub - (i32.const 0) - ;;@ assembly/pson.ts:126:32 - (i32.and - ;;@ assembly/pson.ts:126:33 - (get_local $0) - ;;@ assembly/pson.ts:126:41 - (i32.const 1) - ) - ) - ) - ) - ) + block $break|0 + block $case16|0 + block $case15|0 + block $case14|0 + block $case12|0 + block $case11|0 + block $case10|0 + block $case9|0 + block $case8|0 + block $case7|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block (result i32) + get_global $assembly/pson/offset + tee_local $1 + i32.const 1 + i32.add + set_global $assembly/pson/offset + get_local $1 + i32.load8_u + tee_local $0 + tee_local $1 + i32.const 240 + i32.ne + end + if + block $tablify|0 + get_local $1 + i32.const 241 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 $case12|0 $tablify|0 + end + get_local $1 + i32.const 253 + i32.eq + get_local $1 + i32.const 254 + i32.eq + i32.or + br_if $case14|0 + get_local $1 + i32.const 255 + i32.eq + br_if $case15|0 + br $case16|0 + end + call $assembly/pson/onNull + br $break|0 + end + call $assembly/pson/onTrue + br $break|0 + end + call $assembly/pson/onFalse + br $break|0 + end + call $assembly/pson/onEObject + br $break|0 + end + call $assembly/pson/onEArray + br $break|0 + end + call $assembly/pson/onEString + br $break|0 + end + call $assembly/pson/readVarint32 + tee_local $0 + call $assembly/pson/onObject + loop $continue|1 + block (result i32) + get_local $0 + tee_local $1 + i32.const 1 + i32.sub + set_local $0 + get_local $1 + end + if + call $assembly/pson/decodeValue + call $assembly/pson/decodeValue + br $continue|1 + end + end + br $break|0 + end + call $assembly/pson/readVarint32 + tee_local $0 + call $assembly/pson/onArray + loop $continue|2 + block (result i32) + get_local $0 + tee_local $1 + i32.const 1 + i32.sub + set_local $0 + get_local $1 + end + if + call $assembly/pson/decodeValue + br $continue|2 + end + end + br $break|0 + end + call $assembly/pson/readVarint32 + tee_local $0 + i32.const 1 + i32.shr_u + i32.const 0 + get_local $0 + i32.const 1 + i32.and + i32.sub + i32.xor + call $assembly/pson/onInteger + br $break|0 + end + call $assembly/pson/readVarint64 + tee_local $2 + i64.const 1 + i64.shr_u + i64.const 0 + get_local $2 + i64.const 1 + i64.and + i64.sub + i64.xor + tee_local $2 + i32.wrap/i64 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + call $assembly/pson/onLong + br $break|0 + end + get_global $assembly/pson/offset + f32.load + call $assembly/pson/onFloat + get_global $assembly/pson/offset + i32.const 4 + i32.add + set_global $assembly/pson/offset + br $break|0 + end + get_global $assembly/pson/offset + f64.load + call $assembly/pson/onDouble + get_global $assembly/pson/offset + i32.const 8 + i32.add + set_global $assembly/pson/offset + br $break|0 + end + call $assembly/pson/readVarint32 + set_local $0 + get_global $assembly/pson/offset + get_local $0 + call $assembly/pson/onString + get_global $assembly/pson/offset + get_local $0 + i32.add + set_global $assembly/pson/offset + br $break|0 + end + unreachable + end + call $assembly/pson/readVarint32 + set_local $0 + get_global $assembly/pson/offset + get_local $0 + call $assembly/pson/onBinary + get_global $assembly/pson/offset + get_local $0 + i32.add + set_global $assembly/pson/offset + br $break|0 + end + get_local $0 + i32.const 239 + i32.gt_u + if + unreachable + end + get_local $0 + i32.const 1 + i32.shr_u + i32.const 0 + get_local $0 + i32.const 1 + i32.and + i32.sub + i32.xor + call $assembly/pson/onInteger + end ) - (func $assembly/pson/decode (; 17 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - ;;@ assembly/pson.ts:40:2 - (set_global $assembly/pson/offset - ;;@ assembly/pson.ts:40:11 - (i32.const 0) - ) - (loop $continue|0 - (if - ;;@ assembly/pson.ts:41:9 - (i32.lt_u - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:41:18 - (get_local $0) - ) - (block - ;;@ assembly/pson.ts:41:26 - (call $assembly/pson/decodeValue) - (br $continue|0) - ) - ) - ) - ;;@ assembly/pson.ts:42:2 - (if - ;;@ assembly/pson.ts:42:6 - (i32.ne - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:42:16 - (get_local $0) - ) - ;;@ assembly/pson.ts:42:24 - (unreachable) - ) + (func $assembly/pson/decode (; 17 ;) (type $iv) (param $0 i32) + i32.const 0 + set_global $assembly/pson/offset + loop $continue|0 + get_global $assembly/pson/offset + get_local $0 + i32.lt_u + if + call $assembly/pson/decodeValue + br $continue|0 + end + end + get_global $assembly/pson/offset + get_local $0 + i32.ne + if + unreachable + end ) - (func $null (; 18 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 18 ;) (type $v) + nop ) ) diff --git a/examples/pson/build/untouched.wat b/examples/pson/build/untouched.wat index bfb39b8e..5272f355 100644 --- a/examples/pson/build/untouched.wat +++ b/examples/pson/build/untouched.wat @@ -6,9 +6,6 @@ (type $Fv (func (param f64))) (type $i (func (result i32))) (type $I (func (result i64))) - (memory $0 0) - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "pson" "onNull" (func $assembly/pson/onNull)) (import "pson" "onTrue" (func $assembly/pson/onTrue)) (import "pson" "onFalse" (func $assembly/pson/onFalse)) @@ -23,6 +20,9 @@ (import "pson" "onDouble" (func $assembly/pson/onDouble (param f64))) (import "pson" "onString" (func $assembly/pson/onString (param i32 i32))) (import "pson" "onBinary" (func $assembly/pson/onBinary (param i32 i32))) + (memory $0 0) + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $assembly/pson/offset (mut i32) (i32.const 0)) (global $assembly/pson/Token.ZERO i32 (i32.const 0)) (global $assembly/pson/Token.MAX i32 (i32.const 239)) @@ -65,86 +65,48 @@ (local $1 i32) (local $2 i32) (local $3 i32) - ;;@ assembly/pson.ts:133:2 - (set_local $0 - ;;@ assembly/pson.ts:133:19 - (i32.const 0) - ) - ;;@ assembly/pson.ts:134:2 - (set_local $1 - ;;@ assembly/pson.ts:134:19 - (i32.const 0) - ) - ;;@ assembly/pson.ts:136:2 - (block $break|0 - (loop $continue|0 - ;;@ assembly/pson.ts:136:5 - (block - ;;@ assembly/pson.ts:137:4 - (set_local $2 - ;;@ assembly/pson.ts:137:8 - (i32.load8_u - ;;@ assembly/pson.ts:137:17 - (block (result i32) - (set_local $3 - (get_global $assembly/pson/offset) - ) - (set_global $assembly/pson/offset - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ;;@ assembly/pson.ts:138:4 - (set_local $0 - (i32.or - (get_local $0) - ;;@ assembly/pson.ts:138:13 - (i32.shl - (i32.and - ;;@ assembly/pson.ts:138:19 - (get_local $2) - ;;@ assembly/pson.ts:138:23 - (i32.const 127) - ) - ;;@ assembly/pson.ts:138:32 - (i32.mul - ;;@ assembly/pson.ts:138:33 - (i32.const 7) - ;;@ assembly/pson.ts:138:37 - (block (result i32) - (set_local $3 - (get_local $1) - ) - (set_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - ) - ) - (br_if $continue|0 - ;;@ assembly/pson.ts:139:11 - (i32.and - (get_local $2) - ;;@ assembly/pson.ts:139:15 - (i32.const 128) - ) - ) - ) - ) - ;;@ assembly/pson.ts:140:9 - (get_local $0) + i32.const 0 + set_local $0 + i32.const 0 + set_local $1 + block $break|0 + loop $continue|0 + block + block (result i32) + get_global $assembly/pson/offset + tee_local $3 + i32.const 1 + i32.add + set_global $assembly/pson/offset + get_local $3 + end + i32.load8_u + set_local $2 + get_local $0 + get_local $2 + i32.const 127 + i32.and + i32.const 7 + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.mul + i32.shl + i32.or + set_local $0 + end + get_local $2 + i32.const 128 + i32.and + br_if $continue|0 + end + end + get_local $0 ) (func $assembly/pson/readVarint64 (; 15 ;) (type $I) (result i64) (local $0 i64) @@ -152,642 +114,394 @@ (local $2 i32) (local $3 i32) (local $4 i64) - ;;@ assembly/pson.ts:144:2 - (set_local $0 - ;;@ assembly/pson.ts:144:19 - (i64.const 0) - ) - ;;@ assembly/pson.ts:145:2 - (set_local $1 - ;;@ assembly/pson.ts:145:19 - (i64.const 0) - ) - ;;@ assembly/pson.ts:147:2 - (block $break|0 - (loop $continue|0 - ;;@ assembly/pson.ts:147:5 - (block - ;;@ assembly/pson.ts:148:4 - (set_local $2 - ;;@ assembly/pson.ts:148:8 - (i32.load8_u - ;;@ assembly/pson.ts:148:17 - (block (result i32) - (set_local $3 - (get_global $assembly/pson/offset) - ) - (set_global $assembly/pson/offset - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ;;@ assembly/pson.ts:149:4 - (set_local $0 - (i64.or - (get_local $0) - ;;@ assembly/pson.ts:149:13 - (i64.shl - (i64.extend_u/i32 - ;;@ assembly/pson.ts:149:19 - (i32.and - (get_local $2) - ;;@ assembly/pson.ts:149:23 - (i32.const 127) - ) - ) - ;;@ assembly/pson.ts:149:32 - (i64.mul - ;;@ assembly/pson.ts:149:33 - (i64.const 7) - ;;@ assembly/pson.ts:149:37 - (block (result i64) - (set_local $4 - (get_local $1) - ) - (set_local $1 - (i64.add - (get_local $4) - (i64.const 1) - ) - ) - (get_local $4) - ) - ) - ) - ) - ) - ) - (br_if $continue|0 - ;;@ assembly/pson.ts:150:11 - (i32.and - (get_local $2) - ;;@ assembly/pson.ts:150:15 - (i32.const 128) - ) - ) - ) - ) - ;;@ assembly/pson.ts:151:9 - (get_local $0) + i64.const 0 + set_local $0 + i64.const 0 + set_local $1 + block $break|0 + loop $continue|0 + block + block (result i32) + get_global $assembly/pson/offset + tee_local $3 + i32.const 1 + i32.add + set_global $assembly/pson/offset + get_local $3 + end + i32.load8_u + set_local $2 + get_local $0 + get_local $2 + i32.const 127 + i32.and + i64.extend_u/i32 + i64.const 7 + block (result i64) + get_local $1 + tee_local $4 + i64.const 1 + i64.add + set_local $1 + get_local $4 + end + i64.mul + i64.shl + i64.or + set_local $0 + end + get_local $2 + i32.const 128 + i32.and + br_if $continue|0 + end + end + get_local $0 ) (func $assembly/pson/decodeValue (; 16 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i64) - ;;@ assembly/pson.ts:46:2 - (set_local $1 - ;;@ assembly/pson.ts:46:19 - (i32.load8_u - ;;@ assembly/pson.ts:46:28 - (block (result i32) - (set_local $0 - (get_global $assembly/pson/offset) - ) - (set_global $assembly/pson/offset - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (get_local $0) - ) - ) - ) - ;;@ assembly/pson.ts:49:2 - (block $break|0 - (block $case16|0 - (block $case15|0 - (block $case14|0 - (block $case13|0 - (block $case12|0 - (block $case11|0 - (block $case10|0 - (block $case9|0 - (block $case8|0 - (block $case7|0 - (block $case6|0 - (block $case5|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $0 - ;;@ assembly/pson.ts:49:10 - (get_local $1) - ) - (br_if $case0|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:50:9 - (get_global $assembly/pson/Token.NULL) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:54:9 - (get_global $assembly/pson/Token.TRUE) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:58:9 - (get_global $assembly/pson/Token.FALSE) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:62:9 - (get_global $assembly/pson/Token.EOBJECT) - ) - ) - (br_if $case4|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:66:9 - (get_global $assembly/pson/Token.EARRAY) - ) - ) - (br_if $case5|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:70:9 - (get_global $assembly/pson/Token.ESTRING) - ) - ) - (br_if $case6|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:74:9 - (get_global $assembly/pson/Token.OBJECT) - ) - ) - (br_if $case7|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:82:9 - (get_global $assembly/pson/Token.ARRAY) - ) - ) - (br_if $case8|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:87:9 - (get_global $assembly/pson/Token.INTEGER) - ) - ) - (br_if $case9|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:91:9 - (get_global $assembly/pson/Token.LONG) - ) - ) - (br_if $case10|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:96:9 - (get_global $assembly/pson/Token.FLOAT) - ) - ) - (br_if $case11|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:101:9 - (get_global $assembly/pson/Token.DOUBLE) - ) - ) - (br_if $case12|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:106:9 - (get_global $assembly/pson/Token.STRING) - ) - ) - (br_if $case13|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:112:9 - (get_global $assembly/pson/Token.STRING_ADD) - ) - ) - (br_if $case14|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:113:9 - (get_global $assembly/pson/Token.STRING_GET) - ) - ) - (br_if $case15|0 - (i32.eq - (get_local $0) - ;;@ assembly/pson.ts:118:9 - (get_global $assembly/pson/Token.BINARY) - ) - ) - (br $case16|0) - ) - ;;@ assembly/pson.ts:50:21 - (block - ;;@ assembly/pson.ts:51:6 - (call $assembly/pson/onNull) - ;;@ assembly/pson.ts:52:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:54:21 - (block - ;;@ assembly/pson.ts:55:6 - (call $assembly/pson/onTrue) - ;;@ assembly/pson.ts:56:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:58:22 - (block - ;;@ assembly/pson.ts:59:6 - (call $assembly/pson/onFalse) - ;;@ assembly/pson.ts:60:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:62:24 - (block - ;;@ assembly/pson.ts:63:6 - (call $assembly/pson/onEObject) - ;;@ assembly/pson.ts:64:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:66:23 - (block - ;;@ assembly/pson.ts:67:6 - (call $assembly/pson/onEArray) - ;;@ assembly/pson.ts:68:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:70:24 - (block - ;;@ assembly/pson.ts:71:6 - (call $assembly/pson/onEString) - ;;@ assembly/pson.ts:72:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:74:23 - (block - ;;@ assembly/pson.ts:75:6 - (call $assembly/pson/onObject - ;;@ assembly/pson.ts:75:15 - (tee_local $2 - ;;@ assembly/pson.ts:75:22 - (call $assembly/pson/readVarint32) - ) - ) - ;;@ assembly/pson.ts:76:6 - (block $break|1 - (loop $continue|1 - (if - ;;@ assembly/pson.ts:76:13 - (block (result i32) - (set_local $0 - (get_local $2) - ) - (set_local $2 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - (get_local $0) - ) - (block - ;;@ assembly/pson.ts:76:21 - (block - ;;@ assembly/pson.ts:77:8 - (call $assembly/pson/decodeValue) - ;;@ assembly/pson.ts:78:8 - (call $assembly/pson/decodeValue) - ) - (br $continue|1) - ) - ) - ) - ) - ;;@ assembly/pson.ts:80:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:82:22 - (block - ;;@ assembly/pson.ts:83:6 - (call $assembly/pson/onArray - ;;@ assembly/pson.ts:83:14 - (tee_local $2 - ;;@ assembly/pson.ts:83:21 - (call $assembly/pson/readVarint32) - ) - ) - ;;@ assembly/pson.ts:84:6 - (block $break|2 - (loop $continue|2 - (if - ;;@ assembly/pson.ts:84:13 - (block (result i32) - (set_local $0 - (get_local $2) - ) - (set_local $2 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - (get_local $0) - ) - (block - ;;@ assembly/pson.ts:84:21 - (call $assembly/pson/decodeValue) - (br $continue|2) - ) - ) - ) - ) - ;;@ assembly/pson.ts:85:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:87:24 - (block - ;;@ assembly/pson.ts:88:6 - (call $assembly/pson/onInteger - ;;@ assembly/pson.ts:88:16 - (i32.xor - (i32.shr_u - ;;@ assembly/pson.ts:88:17 - (tee_local $2 - ;;@ assembly/pson.ts:88:25 - (call $assembly/pson/readVarint32) - ) - ;;@ assembly/pson.ts:88:44 - (i32.const 1) - ) - ;;@ assembly/pson.ts:88:49 - (i32.sub - (i32.const 0) - ;;@ assembly/pson.ts:88:50 - (i32.and - ;;@ assembly/pson.ts:88:51 - (get_local $2) - ;;@ assembly/pson.ts:88:58 - (i32.const 1) - ) - ) - ) - ) - ;;@ assembly/pson.ts:89:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:91:21 - (block - ;;@ assembly/pson.ts:92:6 - (set_local $3 - ;;@ assembly/pson.ts:92:13 - (i64.xor - (i64.shr_u - ;;@ assembly/pson.ts:92:14 - (tee_local $3 - ;;@ assembly/pson.ts:92:22 - (call $assembly/pson/readVarint64) - ) - ;;@ assembly/pson.ts:92:41 - (i64.const 1) - ) - ;;@ assembly/pson.ts:92:46 - (i64.sub - (i64.const 0) - ;;@ assembly/pson.ts:92:47 - (i64.and - ;;@ assembly/pson.ts:92:48 - (get_local $3) - ;;@ assembly/pson.ts:92:55 - (i64.const 1) - ) - ) - ) - ) - ;;@ assembly/pson.ts:93:6 - (call $assembly/pson/onLong - ;;@ assembly/pson.ts:93:13 - (i32.wrap/i64 - (get_local $3) - ) - ;;@ assembly/pson.ts:93:24 - (i32.wrap/i64 - ;;@ assembly/pson.ts:93:30 - (i64.shr_u - (get_local $3) - ;;@ assembly/pson.ts:93:39 - (i64.const 32) - ) - ) - ) - ;;@ assembly/pson.ts:94:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:96:22 - (block - ;;@ assembly/pson.ts:97:6 - (call $assembly/pson/onFloat - ;;@ assembly/pson.ts:97:14 - (f32.load - ;;@ assembly/pson.ts:97:24 - (get_global $assembly/pson/offset) - ) - ) - ;;@ assembly/pson.ts:98:6 - (set_global $assembly/pson/offset - (i32.add - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:98:16 - (i32.const 4) - ) - ) - ;;@ assembly/pson.ts:99:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:101:23 - (block - ;;@ assembly/pson.ts:102:6 - (call $assembly/pson/onDouble - ;;@ assembly/pson.ts:102:15 - (f64.load - ;;@ assembly/pson.ts:102:25 - (get_global $assembly/pson/offset) - ) - ) - ;;@ assembly/pson.ts:103:6 - (set_global $assembly/pson/offset - (i32.add - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:103:16 - (i32.const 8) - ) - ) - ;;@ assembly/pson.ts:104:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:106:23 - (block - ;;@ assembly/pson.ts:107:6 - (set_local $2 - ;;@ assembly/pson.ts:107:13 - (call $assembly/pson/readVarint32) - ) - ;;@ assembly/pson.ts:108:6 - (call $assembly/pson/onString - ;;@ assembly/pson.ts:108:15 - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:108:23 - (get_local $2) - ) - ;;@ assembly/pson.ts:109:6 - (set_global $assembly/pson/offset - (i32.add - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:109:16 - (get_local $2) - ) - ) - ;;@ assembly/pson.ts:110:6 - (br $break|0) - ) - ) - ) - ;;@ assembly/pson.ts:113:27 - (block - ;;@ assembly/pson.ts:115:6 - (unreachable) - ;;@ assembly/pson.ts:116:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:118:23 - (block - ;;@ assembly/pson.ts:119:6 - (set_local $2 - ;;@ assembly/pson.ts:119:13 - (call $assembly/pson/readVarint32) - ) - ;;@ assembly/pson.ts:120:6 - (call $assembly/pson/onBinary - ;;@ assembly/pson.ts:120:15 - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:120:23 - (get_local $2) - ) - ;;@ assembly/pson.ts:121:6 - (set_global $assembly/pson/offset - (i32.add - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:121:16 - (get_local $2) - ) - ) - ;;@ assembly/pson.ts:122:6 - (br $break|0) - ) - ) - ;;@ assembly/pson.ts:124:13 - (block - ;;@ assembly/pson.ts:125:6 - (if - ;;@ assembly/pson.ts:125:10 - (i32.gt_u - (get_local $1) - ;;@ assembly/pson.ts:125:18 - (get_global $assembly/pson/Token.MAX) - ) - ;;@ assembly/pson.ts:125:34 - (unreachable) - ) - ;;@ assembly/pson.ts:126:6 - (call $assembly/pson/onInteger - ;;@ assembly/pson.ts:126:16 - (i32.xor - (i32.shr_u - ;;@ assembly/pson.ts:126:17 - (get_local $1) - ;;@ assembly/pson.ts:126:26 - (i32.const 1) - ) - ;;@ assembly/pson.ts:126:31 - (i32.sub - (i32.const 0) - ;;@ assembly/pson.ts:126:32 - (i32.and - ;;@ assembly/pson.ts:126:33 - (get_local $1) - ;;@ assembly/pson.ts:126:41 - (i32.const 1) - ) - ) - ) - ) - ;;@ assembly/pson.ts:127:6 - (br $break|0) - ) - ) + block (result i32) + get_global $assembly/pson/offset + tee_local $0 + i32.const 1 + i32.add + set_global $assembly/pson/offset + get_local $0 + end + i32.load8_u + set_local $1 + block $break|0 + block $case16|0 + block $case15|0 + block $case14|0 + block $case13|0 + block $case12|0 + block $case11|0 + block $case10|0 + block $case9|0 + block $case8|0 + block $case7|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $1 + set_local $0 + get_local $0 + get_global $assembly/pson/Token.NULL + i32.eq + br_if $case0|0 + get_local $0 + get_global $assembly/pson/Token.TRUE + i32.eq + br_if $case1|0 + get_local $0 + get_global $assembly/pson/Token.FALSE + i32.eq + br_if $case2|0 + get_local $0 + get_global $assembly/pson/Token.EOBJECT + i32.eq + br_if $case3|0 + get_local $0 + get_global $assembly/pson/Token.EARRAY + i32.eq + br_if $case4|0 + get_local $0 + get_global $assembly/pson/Token.ESTRING + i32.eq + br_if $case5|0 + get_local $0 + get_global $assembly/pson/Token.OBJECT + i32.eq + br_if $case6|0 + get_local $0 + get_global $assembly/pson/Token.ARRAY + i32.eq + br_if $case7|0 + get_local $0 + get_global $assembly/pson/Token.INTEGER + i32.eq + br_if $case8|0 + get_local $0 + get_global $assembly/pson/Token.LONG + i32.eq + br_if $case9|0 + get_local $0 + get_global $assembly/pson/Token.FLOAT + i32.eq + br_if $case10|0 + get_local $0 + get_global $assembly/pson/Token.DOUBLE + i32.eq + br_if $case11|0 + get_local $0 + get_global $assembly/pson/Token.STRING + i32.eq + br_if $case12|0 + get_local $0 + get_global $assembly/pson/Token.STRING_ADD + i32.eq + br_if $case13|0 + get_local $0 + get_global $assembly/pson/Token.STRING_GET + i32.eq + br_if $case14|0 + get_local $0 + get_global $assembly/pson/Token.BINARY + i32.eq + br_if $case15|0 + br $case16|0 + end + block + call $assembly/pson/onNull + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/onTrue + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/onFalse + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/onEObject + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/onEArray + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/onEString + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/readVarint32 + tee_local $2 + call $assembly/pson/onObject + block $break|1 + loop $continue|1 + block (result i32) + get_local $2 + tee_local $0 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + end + if + block + call $assembly/pson/decodeValue + call $assembly/pson/decodeValue + end + br $continue|1 + end + end + end + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/readVarint32 + tee_local $2 + call $assembly/pson/onArray + block $break|2 + loop $continue|2 + block (result i32) + get_local $2 + tee_local $0 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + end + if + call $assembly/pson/decodeValue + br $continue|2 + end + end + end + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/readVarint32 + tee_local $2 + i32.const 1 + i32.shr_u + i32.const 0 + get_local $2 + i32.const 1 + i32.and + i32.sub + i32.xor + call $assembly/pson/onInteger + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/readVarint64 + tee_local $3 + i64.const 1 + i64.shr_u + i64.const 0 + get_local $3 + i64.const 1 + i64.and + i64.sub + i64.xor + set_local $3 + get_local $3 + i32.wrap/i64 + get_local $3 + i64.const 32 + i64.shr_u + i32.wrap/i64 + call $assembly/pson/onLong + br $break|0 + unreachable + end + unreachable + end + block + get_global $assembly/pson/offset + f32.load + call $assembly/pson/onFloat + get_global $assembly/pson/offset + i32.const 4 + i32.add + set_global $assembly/pson/offset + br $break|0 + unreachable + end + unreachable + end + block + get_global $assembly/pson/offset + f64.load + call $assembly/pson/onDouble + get_global $assembly/pson/offset + i32.const 8 + i32.add + set_global $assembly/pson/offset + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/readVarint32 + set_local $2 + get_global $assembly/pson/offset + get_local $2 + call $assembly/pson/onString + get_global $assembly/pson/offset + get_local $2 + i32.add + set_global $assembly/pson/offset + br $break|0 + unreachable + end + unreachable + end + end + block + unreachable + br $break|0 + unreachable + end + unreachable + end + block + call $assembly/pson/readVarint32 + set_local $2 + get_global $assembly/pson/offset + get_local $2 + call $assembly/pson/onBinary + get_global $assembly/pson/offset + get_local $2 + i32.add + set_global $assembly/pson/offset + br $break|0 + unreachable + end + unreachable + end + block + get_local $1 + get_global $assembly/pson/Token.MAX + i32.gt_u + if + unreachable + end + get_local $1 + i32.const 1 + i32.shr_u + i32.const 0 + get_local $1 + i32.const 1 + i32.and + i32.sub + i32.xor + call $assembly/pson/onInteger + br $break|0 + unreachable + end + unreachable + end ) (func $assembly/pson/decode (; 17 ;) (type $iv) (param $0 i32) - ;;@ assembly/pson.ts:40:2 - (set_global $assembly/pson/offset - ;;@ assembly/pson.ts:40:11 - (i32.const 0) - ) - ;;@ assembly/pson.ts:41:2 - (block $break|0 - (loop $continue|0 - (if - ;;@ assembly/pson.ts:41:9 - (i32.lt_u - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:41:18 - (get_local $0) - ) - (block - ;;@ assembly/pson.ts:41:26 - (call $assembly/pson/decodeValue) - (br $continue|0) - ) - ) - ) - ) - ;;@ assembly/pson.ts:42:2 - (if - ;;@ assembly/pson.ts:42:6 - (i32.ne - (get_global $assembly/pson/offset) - ;;@ assembly/pson.ts:42:16 - (get_local $0) - ) - ;;@ assembly/pson.ts:42:24 - (unreachable) - ) + i32.const 0 + set_global $assembly/pson/offset + block $break|0 + loop $continue|0 + get_global $assembly/pson/offset + get_local $0 + i32.lt_u + if + call $assembly/pson/decodeValue + br $continue|0 + end + end + end + get_global $assembly/pson/offset + get_local $0 + i32.ne + if + unreachable + end ) (func $null (; 18 ;) (type $v) ) diff --git a/lib/parse/build/index.wat b/lib/parse/build/index.wat index ff72cf7c..8b73ae00 100644 --- a/lib/parse/build/index.wat +++ b/lib/parse/build/index.wat @@ -11,8 +11,6 @@ (type $iv (func (param i32))) (type $FUNCSIG$i (func (result i32))) (import "env" "memory" (memory $0 0)) - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "options" "onSection" (func $assembly/options/onSection (param i32 i32 i32 i32 i32) (result i32))) (import "options" "onType" (func $assembly/options/onType (param i32 i32))) (import "options" "onTypeParam" (func $assembly/options/onTypeParam (param i32 i32 i32))) @@ -32,6 +30,8 @@ (import "options" "onFunctionName" (func $assembly/options/onFunctionName (param i32 i32 i32))) (import "options" "onLocalName" (func $assembly/options/onLocalName (param i32 i32 i32 i32))) (import "options" "onSourceMappingURL" (func $assembly/options/onSourceMappingURL (param i32 i32))) + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $assembly/index/off (mut i32) (i32.const 0)) (global $src/common/SectionId.Custom (mut i32) (i32.const 0)) (global $src/common/SectionId.Type (mut i32) (i32.const 1)) @@ -61,430 +61,257 @@ (export "memory" (memory $0)) (export "table" (table $0)) (export "parse" (func $assembly/index/parse)) - (func $assembly/index/readVaruint (; 19 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $assembly/index/readVaruint (; 19 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - ;;@ assembly/index.ts:40:2 - (set_local $0 - ;;@ assembly/index.ts:40:12 - (get_global $assembly/index/off) - ) - ;;@ assembly/index.ts:41:2 - (block $break|0 - (loop $continue|0 - (set_local $0 - (i32.add - (tee_local $1 - (get_local $0) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:43:4 - (set_local $2 - (i32.or - (get_local $2) - ;;@ assembly/index.ts:43:11 - (i32.shl - (i32.and - ;;@ assembly/index.ts:42:4 - (tee_local $1 - ;;@ assembly/index.ts:42:10 - (i32.load8_u - (get_local $1) - ) - ) - ;;@ assembly/index.ts:43:18 - (i32.const 127) - ) - (get_local $3) - ) - ) - ) - ;;@ assembly/index.ts:44:23 - (br_if $break|0 - ;;@ assembly/index.ts:44:8 - (i32.eqz - ;;@ assembly/index.ts:44:9 - (i32.and - (get_local $1) - ;;@ assembly/index.ts:44:16 - (i32.const 128) - ) - ) - ) - ;;@ assembly/index.ts:45:4 - (set_local $3 - (i32.add - (get_local $3) - ;;@ assembly/index.ts:45:11 - (i32.const 7) - ) - ) - (br $continue|0) - ) - ) - ;;@ assembly/index.ts:47:2 - (set_global $assembly/index/off - (get_local $0) - ) - (get_local $2) + get_global $assembly/index/off + set_local $0 + block $break|0 + loop $continue|0 + get_local $0 + tee_local $1 + i32.const 1 + i32.add + set_local $0 + get_local $2 + get_local $1 + i32.load8_u + tee_local $1 + i32.const 127 + i32.and + get_local $3 + i32.shl + i32.or + set_local $2 + get_local $1 + i32.const 128 + i32.and + i32.eqz + br_if $break|0 + get_local $3 + i32.const 7 + i32.add + set_local $3 + br $continue|0 + unreachable + end + unreachable + end + get_local $0 + set_global $assembly/index/off + get_local $2 ) - (func $assembly/index/readVarint (; 20 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $assembly/index/readVarint (; 20 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - ;;@ assembly/index.ts:56:2 - (set_local $2 - ;;@ assembly/index.ts:56:12 - (get_global $assembly/index/off) - ) - (loop $continue|0 - (set_local $2 - (i32.add - (tee_local $4 - (get_local $2) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:59:4 - (set_local $3 - (i32.or - (get_local $3) - ;;@ assembly/index.ts:59:11 - (i32.shl - (i32.and - ;;@ assembly/index.ts:58:4 - (tee_local $5 - ;;@ assembly/index.ts:58:10 - (i32.load8_u - (get_local $4) - ) - ) - ;;@ assembly/index.ts:59:18 - (i32.const 127) - ) - (get_local $1) - ) - ) - ) - ;;@ assembly/index.ts:60:4 - (set_local $1 - (i32.add - (get_local $1) - ;;@ assembly/index.ts:60:11 - (i32.const 7) - ) - ) - (br_if $continue|0 - ;;@ assembly/index.ts:61:11 - (i32.and - (get_local $5) - ;;@ assembly/index.ts:61:17 - (i32.const 128) - ) - ) - ) - ;;@ assembly/index.ts:62:2 - (set_global $assembly/index/off - (get_local $2) - ) - (set_local $2 - ;;@ assembly/index.ts:63:21 - (i32.or - (get_local $3) - ;;@ assembly/index.ts:63:27 - (i32.shl - (i32.const -1) - (get_local $1) - ) - ) - ) - ;;@ assembly/index.ts:63:45 - (if - (tee_local $4 - (i32.lt_u - (get_local $1) - (get_local $0) - ) - ) - (set_local $4 - ;;@ assembly/index.ts:63:59 - (i32.ne - (i32.and - (get_local $5) - ;;@ assembly/index.ts:63:66 - (i32.const 64) - ) - ;;@ assembly/index.ts:63:75 - (i32.const 0) - ) - ) - ) - ;;@ assembly/index.ts:63:76 - (select - (get_local $2) - (get_local $3) - (get_local $4) - ) + get_global $assembly/index/off + set_local $2 + loop $continue|0 + get_local $2 + tee_local $4 + i32.const 1 + i32.add + set_local $2 + get_local $3 + get_local $4 + i32.load8_u + tee_local $5 + i32.const 127 + i32.and + get_local $1 + i32.shl + i32.or + set_local $3 + get_local $1 + i32.const 7 + i32.add + set_local $1 + get_local $5 + i32.const 128 + i32.and + br_if $continue|0 + end + get_local $2 + set_global $assembly/index/off + get_local $3 + i32.const -1 + get_local $1 + i32.shl + i32.or + set_local $2 + get_local $1 + get_local $0 + i32.lt_u + tee_local $4 + if + get_local $5 + i32.const 64 + i32.and + i32.const 0 + i32.ne + set_local $4 + end + get_local $2 + get_local $3 + get_local $4 + select ) - (func $assembly/index/readVarint64 (; 21 ;) (; has Stack IR ;) (type $I) (result i64) + (func $assembly/index/readVarint64 (; 21 ;) (type $I) (result i64) (local $0 i64) (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i64) (local $5 i64) - ;;@ assembly/index.ts:71:2 - (set_local $3 - ;;@ assembly/index.ts:71:12 - (get_global $assembly/index/off) - ) - (loop $continue|0 - (set_local $3 - (i32.add - (tee_local $2 - (get_local $3) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:74:4 - (set_local $1 - (i64.or - (get_local $1) - ;;@ assembly/index.ts:74:11 - (i64.shl - (i64.and - ;;@ assembly/index.ts:73:4 - (tee_local $4 - ;;@ assembly/index.ts:73:10 - (i64.load8_u - (get_local $2) - ) - ) - ;;@ assembly/index.ts:74:18 - (i64.const 127) - ) - (get_local $0) - ) - ) - ) - ;;@ assembly/index.ts:75:4 - (set_local $0 - (i64.add - (get_local $0) - ;;@ assembly/index.ts:75:11 - (i64.const 7) - ) - ) - (br_if $continue|0 - (i64.ne - ;;@ assembly/index.ts:76:11 - (i64.and - (get_local $4) - ;;@ assembly/index.ts:76:17 - (i64.const 128) - ) - (i64.const 0) - ) - ) - ) - ;;@ assembly/index.ts:77:2 - (set_global $assembly/index/off - (get_local $3) - ) - (set_local $5 - ;;@ assembly/index.ts:78:21 - (i64.or - (get_local $1) - ;;@ assembly/index.ts:78:27 - (i64.shl - (i64.const -1) - (get_local $0) - ) - ) - ) - ;;@ assembly/index.ts:78:45 - (if - (tee_local $2 - (i64.lt_u - (get_local $0) - ;;@ assembly/index.ts:78:51 - (i64.const 64) - ) - ) - (set_local $2 - ;;@ assembly/index.ts:78:57 - (i64.ne - (i64.and - (get_local $4) - ;;@ assembly/index.ts:78:64 - (i64.const 64) - ) - ;;@ assembly/index.ts:78:73 - (i64.const 0) - ) - ) - ) - ;;@ assembly/index.ts:78:74 - (select - (get_local $5) - (get_local $1) - (get_local $2) - ) + get_global $assembly/index/off + set_local $3 + loop $continue|0 + get_local $3 + tee_local $2 + i32.const 1 + i32.add + set_local $3 + get_local $1 + get_local $2 + i64.load8_u + tee_local $4 + i64.const 127 + i64.and + get_local $0 + i64.shl + i64.or + set_local $1 + get_local $0 + i64.const 7 + i64.add + set_local $0 + get_local $4 + i64.const 128 + i64.and + i64.const 0 + i64.ne + br_if $continue|0 + end + get_local $3 + set_global $assembly/index/off + get_local $1 + i64.const -1 + get_local $0 + i64.shl + i64.or + set_local $5 + get_local $0 + i64.const 64 + i64.lt_u + tee_local $2 + if + get_local $4 + i64.const 64 + i64.and + i64.const 0 + i64.ne + set_local $2 + end + get_local $5 + get_local $1 + get_local $2 + select ) - (func $assembly/index/skipInitExpr (; 22 ;) (; has Stack IR ;) (type $v) + (func $assembly/index/skipInitExpr (; 22 ;) (type $v) (local $0 i32) (local $1 i32) - ;;@ assembly/index.ts:83:2 - (block $break|0 - (block $case5|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (set_local $0 - (i32.load8_u - (tee_local $1 - (get_global $assembly/index/off) - ) - ) - ) - (set_global $assembly/index/off - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.ne - (get_local $0) - ;;@ assembly/index.ts:84:9 - (get_global $src/common/Opcode.i32_const) - ) - (block - (br_if $case1|0 - (i32.eq - (get_local $0) - ;;@ assembly/index.ts:88:9 - (get_global $src/common/Opcode.i64_const) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $0) - ;;@ assembly/index.ts:92:9 - (get_global $src/common/Opcode.f32_const) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $0) - ;;@ assembly/index.ts:96:9 - (get_global $src/common/Opcode.f64_const) - ) - ) - (br_if $case4|0 - (i32.eq - (get_local $0) - ;;@ assembly/index.ts:100:9 - (get_global $src/common/Opcode.get_global) - ) - ) - (br $case5|0) - ) - ) - ;;@ assembly/index.ts:85:6 - (drop - (call $assembly/index/readVarint - ;;@ assembly/index.ts:85:17 - (i32.const 32) - ) - ) - ;;@ assembly/index.ts:86:6 - (br $break|0) - ) - ;;@ assembly/index.ts:89:6 - (drop - (call $assembly/index/readVarint64) - ) - ;;@ assembly/index.ts:90:6 - (br $break|0) - ) - (drop - (i32.load - (tee_local $0 - (get_global $assembly/index/off) - ) - ) - ) - (set_global $assembly/index/off - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - ;;@ assembly/index.ts:94:6 - (br $break|0) - ) - (drop - (i64.load - (tee_local $0 - (get_global $assembly/index/off) - ) - ) - ) - (set_global $assembly/index/off - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - ;;@ assembly/index.ts:98:6 - (br $break|0) - ) - ;;@ assembly/index.ts:101:6 - (drop - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:102:6 - (br $break|0) - ) - ;;@ assembly/index.ts:104:13 - (unreachable) - ) - (set_local $0 - (i32.load8_u - (tee_local $1 - (get_global $assembly/index/off) - ) - ) - ) - (set_global $assembly/index/off - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:106:2 - (if - ;;@ assembly/index.ts:106:6 - (i32.ne - (get_local $0) - ;;@ assembly/index.ts:106:24 - (get_global $src/common/Opcode.end) - ) - ;;@ assembly/index.ts:106:36 - (unreachable) - ) + block $break|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + get_global $assembly/index/off + tee_local $1 + i32.load8_u + set_local $0 + get_local $1 + i32.const 1 + i32.add + set_global $assembly/index/off + get_local $0 + get_global $src/common/Opcode.i32_const + i32.ne + if + get_local $0 + get_global $src/common/Opcode.i64_const + i32.eq + br_if $case1|0 + get_local $0 + get_global $src/common/Opcode.f32_const + i32.eq + br_if $case2|0 + get_local $0 + get_global $src/common/Opcode.f64_const + i32.eq + br_if $case3|0 + get_local $0 + get_global $src/common/Opcode.get_global + i32.eq + br_if $case4|0 + br $case5|0 + end + i32.const 32 + call $assembly/index/readVarint + drop + br $break|0 + end + call $assembly/index/readVarint64 + drop + br $break|0 + end + get_global $assembly/index/off + tee_local $0 + i32.load + drop + get_local $0 + i32.const 4 + i32.add + set_global $assembly/index/off + br $break|0 + end + get_global $assembly/index/off + tee_local $0 + i64.load + drop + get_local $0 + i32.const 8 + i32.add + set_global $assembly/index/off + br $break|0 + end + call $assembly/index/readVaruint + drop + br $break|0 + end + unreachable + end + get_global $assembly/index/off + tee_local $1 + i32.load8_u + set_local $0 + get_local $1 + i32.const 1 + i32.add + set_global $assembly/index/off + get_local $0 + get_global $src/common/Opcode.end + i32.ne + if + unreachable + end ) - (func $assembly/index/parse (; 23 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $assembly/index/parse (; 23 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -498,1366 +325,794 @@ (local $12 i32) (local $13 i32) (local $14 i32) - ;;@ assembly/index.ts:111:2 - (set_global $assembly/index/off - (get_local $0) - ) - (set_local $0 - (i32.load - (tee_local $6 - (get_global $assembly/index/off) - ) - ) - ) - (set_global $assembly/index/off - (i32.add - (get_local $6) - (i32.const 4) - ) - ) - ;;@ assembly/index.ts:113:2 - (if - ;;@ assembly/index.ts:113:6 - (i32.ne - (get_local $0) - ;;@ assembly/index.ts:113:15 - (i32.const 1836278016) - ) - ;;@ assembly/index.ts:113:27 - (unreachable) - ) - (set_local $0 - (i32.load - (tee_local $6 - (get_global $assembly/index/off) - ) - ) - ) - (set_global $assembly/index/off - (i32.add - (get_local $6) - (i32.const 4) - ) - ) - ;;@ assembly/index.ts:115:2 - (if - ;;@ assembly/index.ts:115:6 - (i32.ne - (get_local $0) - ;;@ assembly/index.ts:115:17 - (i32.const 1) - ) - ;;@ assembly/index.ts:115:20 - (unreachable) - ) - (loop $continue|0 - (if - ;;@ assembly/index.ts:120:9 - (i32.lt_u - (get_global $assembly/index/off) - (get_local $1) - ) - (block - ;;@ assembly/index.ts:122:4 - (set_local $2 - ;;@ assembly/index.ts:122:13 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:123:4 - (set_local $8 - ;;@ assembly/index.ts:123:22 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:124:4 - (set_local $5 - ;;@ assembly/index.ts:124:19 - (i32.const 0) - ) - ;;@ assembly/index.ts:125:4 - (set_local $0 - ;;@ assembly/index.ts:125:19 - (i32.const 0) - ) - ;;@ assembly/index.ts:126:4 - (if - (get_local $2) - ;;@ assembly/index.ts:132:11 - (if - ;;@ assembly/index.ts:132:15 - (i32.gt_u - (get_local $2) - ;;@ assembly/index.ts:132:20 - (get_global $src/common/SectionId.Data) - ) - ;;@ assembly/index.ts:132:41 - (unreachable) - ) - ;;@ assembly/index.ts:126:13 - (block - ;;@ assembly/index.ts:127:6 - (set_local $4 - ;;@ assembly/index.ts:127:19 - (get_global $assembly/index/off) - ) - ;;@ assembly/index.ts:128:6 - (set_local $0 - ;;@ assembly/index.ts:128:17 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:129:6 - (set_local $5 - ;;@ assembly/index.ts:129:17 - (get_global $assembly/index/off) - ) - ;;@ assembly/index.ts:130:6 - (set_global $assembly/index/off - (i32.add - (get_global $assembly/index/off) - (get_local $0) - ) - ) - ;;@ assembly/index.ts:131:6 - (set_local $8 - (i32.sub - (get_local $8) - ;;@ assembly/index.ts:131:21 - (i32.sub - (get_global $assembly/index/off) - (get_local $4) - ) - ) - ) - ) - ) - ;;@ assembly/index.ts:134:4 - (if - (i32.and - ;;@ assembly/index.ts:134:12 - (call $assembly/options/onSection - (get_local $2) - ;;@ assembly/index.ts:133:4 - (tee_local $4 - ;;@ assembly/index.ts:133:22 - (get_global $assembly/index/off) - ) - (get_local $8) - (get_local $5) - (get_local $0) - ) - (i32.const 1) - ) - ;;@ assembly/index.ts:140:7 - (block $break|1 - (block $case12|1 - (block $case11|1 - (block $case8|1 - (block $case7|1 - (block $case6|1 - (block $case5|1 - (block $case4|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (if - (i32.ne - (get_local $2) - ;;@ assembly/index.ts:142:13 - (get_global $src/common/SectionId.Type) - ) - (block - (br_if $case1|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:171:13 - (get_global $src/common/SectionId.Import) - ) - ) - (br_if $case2|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:239:13 - (get_global $src/common/SectionId.Function) - ) - ) - (br_if $case3|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:250:13 - (get_global $src/common/SectionId.Table) - ) - ) - (br_if $case4|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:267:13 - (get_global $src/common/SectionId.Memory) - ) - ) - (br_if $case5|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:282:13 - (get_global $src/common/SectionId.Global) - ) - ) - (br_if $case6|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:296:13 - (get_global $src/common/SectionId.Export) - ) - ) - (br_if $case7|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:314:13 - (get_global $src/common/SectionId.Start) - ) - ) - (br_if $case8|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:321:13 - (get_global $src/common/SectionId.Custom) - ) - ) - (br_if $case11|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:394:13 - (get_global $src/common/SectionId.Element) - ) - ) - (br_if $case11|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:395:13 - (get_global $src/common/SectionId.Code) - ) - ) - (br_if $case11|1 - (i32.eq - (get_local $2) - ;;@ assembly/index.ts:396:13 - (get_global $src/common/SectionId.Data) - ) - ) - (br $case12|1) - ) - ) - ;;@ assembly/index.ts:143:10 - (set_local $2 - ;;@ assembly/index.ts:143:22 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:144:10 - (block $break|2 - ;;@ assembly/index.ts:144:15 - (set_local $3 - ;;@ assembly/index.ts:144:32 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - ;;@ assembly/index.ts:144:35 - (i32.ge_u - (get_local $3) - (get_local $2) - ) - ) - ;;@ assembly/index.ts:146:16 - (call $assembly/options/onType - (get_local $3) - ;;@ assembly/index.ts:145:23 - (i32.and - (call $assembly/index/readVarint - ;;@ assembly/index.ts:145:34 - (i32.const 7) - ) - ;;@ assembly/index.ts:145:39 - (i32.const 127) - ) - ) - ;;@ assembly/index.ts:150:12 - (set_local $4 - ;;@ assembly/index.ts:150:29 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:151:12 - (block $break|3 - ;;@ assembly/index.ts:151:17 - (set_local $7 - ;;@ assembly/index.ts:151:39 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - ;;@ assembly/index.ts:151:42 - (i32.ge_u - (get_local $7) - (get_local $4) - ) - ) - ;;@ assembly/index.ts:153:18 - (call $assembly/options/onTypeParam - (get_local $3) - (get_local $7) - ;;@ assembly/index.ts:152:30 - (i32.and - (call $assembly/index/readVarint - ;;@ assembly/index.ts:152:41 - (i32.const 7) - ) - ;;@ assembly/index.ts:152:46 - (i32.const 127) - ) - ) - ;;@ assembly/index.ts:151:67 - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ;;@ assembly/index.ts:159:12 - (set_local $7 - ;;@ assembly/index.ts:159:30 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:160:12 - (block $break|4 - ;;@ assembly/index.ts:160:17 - (set_local $5 - ;;@ assembly/index.ts:160:40 - (i32.const 0) - ) - (loop $repeat|4 - (br_if $break|4 - ;;@ assembly/index.ts:160:43 - (i32.ge_u - (get_local $5) - (get_local $7) - ) - ) - ;;@ assembly/index.ts:162:18 - (call $assembly/options/onTypeReturn - (get_local $3) - (get_local $5) - ;;@ assembly/index.ts:161:31 - (i32.and - (call $assembly/index/readVarint - ;;@ assembly/index.ts:161:42 - (i32.const 7) - ) - ;;@ assembly/index.ts:161:47 - (i32.const 127) - ) - ) - ;;@ assembly/index.ts:160:70 - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|4) - ) - ) - ;;@ assembly/index.ts:144:50 - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ;;@ assembly/index.ts:169:10 - (br $break|1) - ) - ;;@ assembly/index.ts:172:10 - (set_local $2 - ;;@ assembly/index.ts:172:22 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:173:10 - (block $break|5 - ;;@ assembly/index.ts:173:15 - (set_local $3 - ;;@ assembly/index.ts:173:32 - (i32.const 0) - ) - (loop $repeat|5 - (br_if $break|5 - ;;@ assembly/index.ts:173:35 - (i32.ge_u - (get_local $3) - (get_local $2) - ) - ) - ;;@ assembly/index.ts:174:12 - (set_local $7 - ;;@ assembly/index.ts:174:29 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:175:12 - (set_local $4 - ;;@ assembly/index.ts:175:29 - (get_global $assembly/index/off) - ) - ;;@ assembly/index.ts:176:12 - (set_global $assembly/index/off - (i32.add - (get_global $assembly/index/off) - (get_local $7) - ) - ) - ;;@ assembly/index.ts:177:12 - (set_local $9 - ;;@ assembly/index.ts:177:28 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:178:12 - (set_local $5 - ;;@ assembly/index.ts:178:28 - (get_global $assembly/index/off) - ) - ;;@ assembly/index.ts:179:12 - (set_global $assembly/index/off - (i32.add - (get_global $assembly/index/off) - (get_local $9) - ) - ) - (set_local $0 - (i32.load8_u - (tee_local $6 - (get_global $assembly/index/off) - ) - ) - ) - (set_global $assembly/index/off - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:181:16 - (call $assembly/options/onImport - (get_local $3) - (get_local $0) - (get_local $4) - (get_local $7) - (get_local $5) - (get_local $9) - ) - ;;@ assembly/index.ts:189:12 - (block $break|6 - (block $case4|6 - (block $case3|6 - (block $case2|6 - (block $case1|6 - (if - (i32.ne - (tee_local $6 - (get_local $0) - ) - ;;@ assembly/index.ts:190:19 - (get_global $src/common/ExternalKind.Function) - ) - (block - (br_if $case1|6 - (i32.eq - (get_local $6) - ;;@ assembly/index.ts:198:19 - (get_global $src/common/ExternalKind.Table) - ) - ) - (br_if $case2|6 - (i32.eq - (get_local $6) - ;;@ assembly/index.ts:212:19 - (get_global $src/common/ExternalKind.Memory) - ) - ) - (br_if $case3|6 - (i32.eq - (get_local $6) - ;;@ assembly/index.ts:224:19 - (get_global $src/common/ExternalKind.Global) - ) - ) - (br $case4|6) - ) - ) - (set_local $11 - (i32.add - (tee_local $10 - (get_local $11) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:192:20 - (call $assembly/options/onFunctionImport - (get_local $10) - ;;@ assembly/index.ts:191:27 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:196:16 - (br $break|6) - ) - ;;@ assembly/index.ts:199:16 - (set_local $6 - ;;@ assembly/index.ts:199:27 - (i32.and - (call $assembly/index/readVarint - ;;@ assembly/index.ts:199:38 - (i32.const 7) - ) - ;;@ assembly/index.ts:199:43 - (i32.const 127) - ) - ) - ;;@ assembly/index.ts:200:16 - (set_local $10 - ;;@ assembly/index.ts:200:28 - (call $assembly/index/readVaruint) - ) - (set_local $12 - (i32.add - (tee_local $0 - (get_local $12) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:203:20 - (call $assembly/options/onTableImport - (get_local $0) - (get_local $6) - (tee_local $4 - ;;@ assembly/index.ts:201:30 - (call $assembly/index/readVaruint) - ) - (tee_local $8 - ;;@ assembly/index.ts:202:30 - (if (result i32) - (i32.and - (get_local $10) - ;;@ assembly/index.ts:202:38 - (i32.const 1) - ) - ;;@ assembly/index.ts:202:42 - (call $assembly/index/readVaruint) - (i32.const -1) - ) - ) - (get_local $10) - ) - ;;@ assembly/index.ts:210:16 - (br $break|6) - ) - ;;@ assembly/index.ts:213:16 - (set_local $8 - ;;@ assembly/index.ts:213:28 - (call $assembly/index/readVaruint) - ) - (set_local $13 - (i32.add - (tee_local $6 - (get_local $13) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:216:20 - (call $assembly/options/onMemoryImport - (get_local $6) - (tee_local $0 - ;;@ assembly/index.ts:214:30 - (call $assembly/index/readVaruint) - ) - (tee_local $10 - ;;@ assembly/index.ts:215:30 - (if (result i32) - (i32.and - (get_local $8) - ;;@ assembly/index.ts:215:38 - (i32.const 1) - ) - ;;@ assembly/index.ts:215:42 - (call $assembly/index/readVaruint) - (i32.const 65535) - ) - ) - (get_local $8) - ) - ;;@ assembly/index.ts:222:16 - (br $break|6) - ) - (set_local $14 - (i32.add - (tee_local $8 - (get_local $14) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:227:20 - (call $assembly/options/onGlobalImport - (get_local $8) - ;;@ assembly/index.ts:225:27 - (i32.and - (call $assembly/index/readVarint - ;;@ assembly/index.ts:225:38 - (i32.const 7) - ) - ;;@ assembly/index.ts:225:43 - (i32.const 127) - ) - ;;@ assembly/index.ts:226:33 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:232:16 - (br $break|6) - ) - ;;@ assembly/index.ts:234:23 - (unreachable) - ) - ;;@ assembly/index.ts:173:50 - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|5) - ) - ) - ;;@ assembly/index.ts:237:10 - (br $break|1) - ) - ;;@ assembly/index.ts:240:10 - (set_local $2 - ;;@ assembly/index.ts:240:22 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:241:10 - (block $break|7 - ;;@ assembly/index.ts:241:15 - (set_local $3 - ;;@ assembly/index.ts:241:28 - (i32.const 0) - ) - (loop $repeat|7 - (br_if $break|7 - ;;@ assembly/index.ts:241:31 - (i32.ge_u - (get_local $3) - (get_local $2) - ) - ) - (set_local $11 - (i32.add - (tee_local $5 - (get_local $11) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:243:16 - (call $assembly/options/onFunction - (get_local $5) - ;;@ assembly/index.ts:242:28 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:241:42 - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|7) - ) - ) - ;;@ assembly/index.ts:248:10 - (br $break|1) - ) - ;;@ assembly/index.ts:251:10 - (set_local $2 - ;;@ assembly/index.ts:251:22 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:252:10 - (block $break|8 - ;;@ assembly/index.ts:252:15 - (set_local $3 - ;;@ assembly/index.ts:252:32 - (i32.const 0) - ) - (loop $repeat|8 - (br_if $break|8 - ;;@ assembly/index.ts:252:35 - (i32.ge_u - (get_local $3) - (get_local $2) - ) - ) - ;;@ assembly/index.ts:253:12 - (set_local $0 - ;;@ assembly/index.ts:253:23 - (i32.and - (call $assembly/index/readVaruint) - ;;@ assembly/index.ts:253:40 - (i32.const 127) - ) - ) - ;;@ assembly/index.ts:254:12 - (set_local $5 - ;;@ assembly/index.ts:254:24 - (call $assembly/index/readVaruint) - ) - (set_local $12 - (i32.add - (tee_local $7 - (get_local $12) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:257:16 - (call $assembly/options/onTable - (get_local $7) - (get_local $0) - (tee_local $6 - ;;@ assembly/index.ts:255:26 - (call $assembly/index/readVaruint) - ) - (tee_local $4 - ;;@ assembly/index.ts:256:26 - (if (result i32) - (i32.and - (get_local $5) - ;;@ assembly/index.ts:256:34 - (i32.const 1) - ) - ;;@ assembly/index.ts:256:38 - (call $assembly/index/readVaruint) - (i32.const -1) - ) - ) - (get_local $5) - ) - ;;@ assembly/index.ts:252:50 - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|8) - ) - ) - ;;@ assembly/index.ts:265:10 - (br $break|1) - ) - ;;@ assembly/index.ts:268:10 - (set_local $2 - ;;@ assembly/index.ts:268:22 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:269:10 - (block $break|9 - ;;@ assembly/index.ts:269:15 - (set_local $3 - ;;@ assembly/index.ts:269:32 - (i32.const 0) - ) - (loop $repeat|9 - (br_if $break|9 - ;;@ assembly/index.ts:269:35 - (i32.ge_u - (get_local $3) - (get_local $2) - ) - ) - ;;@ assembly/index.ts:270:12 - (set_local $4 - ;;@ assembly/index.ts:270:24 - (call $assembly/index/readVaruint) - ) - (set_local $13 - (i32.add - (tee_local $0 - (get_local $13) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:273:16 - (call $assembly/options/onMemory - (get_local $0) - (tee_local $6 - ;;@ assembly/index.ts:271:26 - (call $assembly/index/readVaruint) - ) - (tee_local $5 - ;;@ assembly/index.ts:272:26 - (if (result i32) - (i32.and - (get_local $4) - ;;@ assembly/index.ts:272:34 - (i32.const 1) - ) - ;;@ assembly/index.ts:272:38 - (call $assembly/index/readVaruint) - (i32.const 65535) - ) - ) - (get_local $4) - ) - ;;@ assembly/index.ts:269:50 - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|9) - ) - ) - ;;@ assembly/index.ts:280:10 - (br $break|1) - ) - ;;@ assembly/index.ts:283:10 - (set_local $2 - ;;@ assembly/index.ts:283:22 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:284:10 - (block $break|10 - ;;@ assembly/index.ts:284:15 - (set_local $3 - ;;@ assembly/index.ts:284:28 - (i32.const 0) - ) - (loop $repeat|10 - (br_if $break|10 - ;;@ assembly/index.ts:284:31 - (i32.ge_u - (get_local $3) - (get_local $2) - ) - ) - ;;@ assembly/index.ts:285:12 - (set_local $5 - ;;@ assembly/index.ts:285:23 - (i32.and - (call $assembly/index/readVarint - ;;@ assembly/index.ts:285:34 - (i32.const 7) - ) - ;;@ assembly/index.ts:285:39 - (i32.const 127) - ) - ) - ;;@ assembly/index.ts:286:12 - (set_local $9 - ;;@ assembly/index.ts:286:29 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:287:12 - (call $assembly/index/skipInitExpr) - (set_local $14 - (i32.add - (tee_local $4 - (get_local $14) - ) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:288:16 - (call $assembly/options/onGlobal - (get_local $4) - (get_local $5) - (get_local $9) - ) - ;;@ assembly/index.ts:284:42 - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|10) - ) - ) - ;;@ assembly/index.ts:294:10 - (br $break|1) - ) - ;;@ assembly/index.ts:297:10 - (set_local $2 - ;;@ assembly/index.ts:297:22 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:298:10 - (block $break|11 - ;;@ assembly/index.ts:298:15 - (set_local $3 - ;;@ assembly/index.ts:298:32 - (i32.const 0) - ) - (loop $repeat|11 - (br_if $break|11 - ;;@ assembly/index.ts:298:35 - (i32.ge_u - (get_local $3) - (get_local $2) - ) - ) - ;;@ assembly/index.ts:299:12 - (set_local $9 - ;;@ assembly/index.ts:299:28 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:300:12 - (set_local $5 - ;;@ assembly/index.ts:300:28 - (get_global $assembly/index/off) - ) - ;;@ assembly/index.ts:301:12 - (set_global $assembly/index/off - (i32.add - (get_global $assembly/index/off) - (get_local $9) - ) - ) - (set_local $0 - (i32.load8_u - (tee_local $6 - (get_global $assembly/index/off) - ) - ) - ) - (set_global $assembly/index/off - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - ;;@ assembly/index.ts:304:16 - (call $assembly/options/onExport - (get_local $3) - (get_local $0) - ;;@ assembly/index.ts:303:29 - (call $assembly/index/readVaruint) - (get_local $5) - (get_local $9) - ) - ;;@ assembly/index.ts:298:50 - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|11) - ) - ) - ;;@ assembly/index.ts:312:10 - (br $break|1) - ) - ;;@ assembly/index.ts:316:14 - (call $assembly/options/onStart - ;;@ assembly/index.ts:315:22 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:319:10 - (br $break|1) - ) - ;;@ assembly/index.ts:323:12 - (if - (tee_local $2 - (i32.eq - (get_local $0) - ;;@ assembly/index.ts:323:24 - (i32.const 4) - ) - ) - (set_local $2 - ;;@ assembly/index.ts:324:12 - (i32.eq - (i32.load - (get_local $5) - ) - ;;@ assembly/index.ts:324:35 - (i32.const 1701667182) - ) - ) - ) - ;;@ assembly/index.ts:322:10 - (if - (get_local $2) - ;;@ assembly/index.ts:325:12 - (block - ;;@ assembly/index.ts:326:12 - (set_local $2 - ;;@ assembly/index.ts:326:28 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:327:12 - (set_local $3 - ;;@ assembly/index.ts:327:35 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:328:12 - (set_local $0 - ;;@ assembly/index.ts:328:35 - (get_global $assembly/index/off) - ) - ;;@ assembly/index.ts:329:12 - (block $break|12 - (block $case3|12 - (block $case2|12 - (block $case1|12 - (if - (i32.ne - (tee_local $4 - (get_local $2) - ) - ;;@ assembly/index.ts:330:19 - (get_global $src/common/NameType.Module) - ) - (block - (br_if $case1|12 - (i32.eq - (get_local $4) - ;;@ assembly/index.ts:339:19 - (get_global $src/common/NameType.Function) - ) - ) - (br_if $case2|12 - (i32.eq - (get_local $4) - ;;@ assembly/index.ts:354:19 - (get_global $src/common/NameType.Local) - ) - ) - (br $case3|12) - ) - ) - ;;@ assembly/index.ts:331:16 - (set_local $4 - ;;@ assembly/index.ts:331:38 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:333:20 - (call $assembly/options/onModuleName - ;;@ assembly/index.ts:332:38 - (get_global $assembly/index/off) - (get_local $4) - ) - ;;@ assembly/index.ts:337:16 - (br $break|12) - ) - ;;@ assembly/index.ts:340:16 - (set_local $5 - ;;@ assembly/index.ts:340:28 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:341:16 - (block $break|13 - ;;@ assembly/index.ts:341:21 - (set_local $4 - ;;@ assembly/index.ts:341:34 - (i32.const 0) - ) - (loop $repeat|13 - (br_if $break|13 - ;;@ assembly/index.ts:341:37 - (i32.ge_u - (get_local $4) - (get_local $5) - ) - ) - ;;@ assembly/index.ts:342:18 - (set_local $9 - ;;@ assembly/index.ts:342:33 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:343:18 - (set_local $7 - ;;@ assembly/index.ts:343:36 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:344:18 - (set_local $2 - ;;@ assembly/index.ts:344:36 - (get_global $assembly/index/off) - ) - ;;@ assembly/index.ts:345:18 - (set_global $assembly/index/off - (i32.add - (get_global $assembly/index/off) - (get_local $7) - ) - ) - ;;@ assembly/index.ts:346:22 - (call $assembly/options/onFunctionName - (get_local $9) - (get_local $2) - (get_local $7) - ) - ;;@ assembly/index.ts:341:48 - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|13) - ) - ) - ;;@ assembly/index.ts:352:16 - (br $break|12) - ) - ;;@ assembly/index.ts:355:16 - (set_local $5 - ;;@ assembly/index.ts:355:28 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:356:16 - (block $break|14 - ;;@ assembly/index.ts:356:21 - (set_local $4 - ;;@ assembly/index.ts:356:34 - (i32.const 0) - ) - (loop $repeat|14 - (br_if $break|14 - ;;@ assembly/index.ts:356:37 - (i32.ge_u - (get_local $4) - (get_local $5) - ) - ) - ;;@ assembly/index.ts:357:18 - (set_local $2 - ;;@ assembly/index.ts:357:33 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:358:18 - (set_local $7 - ;;@ assembly/index.ts:358:33 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:359:18 - (block $break|15 - ;;@ assembly/index.ts:359:23 - (set_local $9 - ;;@ assembly/index.ts:359:36 - (i32.const 0) - ) - (loop $repeat|15 - (br_if $break|15 - ;;@ assembly/index.ts:359:39 - (i32.ge_u - (get_local $9) - (get_local $7) - ) - ) - ;;@ assembly/index.ts:360:20 - (set_local $10 - ;;@ assembly/index.ts:360:35 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:361:20 - (set_local $8 - ;;@ assembly/index.ts:361:38 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:362:20 - (set_local $6 - ;;@ assembly/index.ts:362:38 - (get_global $assembly/index/off) - ) - ;;@ assembly/index.ts:363:20 - (set_global $assembly/index/off - (i32.add - (get_global $assembly/index/off) - (get_local $8) - ) - ) - ;;@ assembly/index.ts:364:24 - (call $assembly/options/onLocalName - (get_local $2) - (get_local $10) - (get_local $6) - (get_local $8) - ) - ;;@ assembly/index.ts:359:53 - (set_local $9 - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - (br $repeat|15) - ) - ) - ;;@ assembly/index.ts:356:48 - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|14) - ) - ) - ;;@ assembly/index.ts:372:16 - (br $break|12) - ) - ;;@ assembly/index.ts:374:23 - (unreachable) - ) - ;;@ assembly/index.ts:376:12 - (set_global $assembly/index/off - ;;@ assembly/index.ts:376:18 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - ;;@ assembly/index.ts:377:12 - (br $break|1) - ) - (block - ;;@ assembly/index.ts:379:12 - (if - (tee_local $0 - (i32.eq - (get_local $0) - ;;@ assembly/index.ts:379:24 - (i32.const 16) - ) - ) - (set_local $0 - ;;@ assembly/index.ts:380:12 - (i64.eq - (i64.load - (get_local $5) - ) - ;;@ assembly/index.ts:380:39 - (i64.const 7011371672682196851) - ) - ) - ) - ;;@ assembly/index.ts:379:12 - (if - (get_local $0) - (set_local $0 - ;;@ assembly/index.ts:381:12 - (i64.eq - (i64.load - ;;@ assembly/index.ts:381:22 - (i32.add - (get_local $5) - ;;@ assembly/index.ts:381:33 - (i32.const 8) - ) - ) - ;;@ assembly/index.ts:381:39 - (i64.const 5499551997695193200) - ) - ) - ) - ;;@ assembly/index.ts:378:17 - (if - (get_local $0) - ;;@ assembly/index.ts:382:12 - (block - ;;@ assembly/index.ts:383:12 - (set_local $0 - ;;@ assembly/index.ts:383:26 - (call $assembly/index/readVaruint) - ) - ;;@ assembly/index.ts:384:12 - (set_local $3 - ;;@ assembly/index.ts:384:26 - (get_global $assembly/index/off) - ) - ;;@ assembly/index.ts:385:12 - (set_global $assembly/index/off - (i32.add - (get_global $assembly/index/off) - (get_local $0) - ) - ) - ;;@ assembly/index.ts:386:16 - (call $assembly/options/onSourceMappingURL - (get_local $3) - (get_local $0) - ) - ) - ) - ) - ) - ;;@ assembly/index.ts:391:10 - (set_global $assembly/index/off - ;;@ assembly/index.ts:391:16 - (i32.add - (get_local $4) - (get_local $8) - ) - ) - ;;@ assembly/index.ts:392:10 - (br $break|1) - ) - ;;@ assembly/index.ts:397:10 - (set_global $assembly/index/off - (i32.add - (get_global $assembly/index/off) - (get_local $8) - ) - ) - ;;@ assembly/index.ts:398:10 - (br $break|1) - ) - ;;@ assembly/index.ts:400:17 - (unreachable) - ) - ;;@ assembly/index.ts:402:11 - (set_global $assembly/index/off - (i32.add - ;;@ assembly/index.ts:403:6 - (get_global $assembly/index/off) - (get_local $8) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ;;@ assembly/index.ts:406:2 - (if - ;;@ assembly/index.ts:406:6 - (i32.ne - (get_global $assembly/index/off) - (get_local $1) - ) - ;;@ assembly/index.ts:406:18 - (unreachable) - ) + get_local $0 + set_global $assembly/index/off + get_global $assembly/index/off + tee_local $6 + i32.load + set_local $0 + get_local $6 + i32.const 4 + i32.add + set_global $assembly/index/off + get_local $0 + i32.const 1836278016 + i32.ne + if + unreachable + end + get_global $assembly/index/off + tee_local $6 + i32.load + set_local $0 + get_local $6 + i32.const 4 + i32.add + set_global $assembly/index/off + get_local $0 + i32.const 1 + i32.ne + if + unreachable + end + loop $continue|0 + get_global $assembly/index/off + get_local $1 + i32.lt_u + if + call $assembly/index/readVaruint + set_local $2 + call $assembly/index/readVaruint + set_local $8 + i32.const 0 + set_local $5 + i32.const 0 + set_local $0 + get_local $2 + if + get_local $2 + get_global $src/common/SectionId.Data + i32.gt_u + if + unreachable + end + else + get_global $assembly/index/off + set_local $4 + call $assembly/index/readVaruint + set_local $0 + get_global $assembly/index/off + set_local $5 + get_global $assembly/index/off + get_local $0 + i32.add + set_global $assembly/index/off + get_local $8 + get_global $assembly/index/off + get_local $4 + i32.sub + i32.sub + set_local $8 + end + get_local $2 + get_global $assembly/index/off + tee_local $4 + get_local $8 + get_local $5 + get_local $0 + call $assembly/options/onSection + i32.const 1 + i32.and + if + block $break|1 + block $case12|1 + block $case11|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + get_local $2 + get_global $src/common/SectionId.Type + i32.ne + if + get_local $2 + get_global $src/common/SectionId.Import + i32.eq + br_if $case1|1 + get_local $2 + get_global $src/common/SectionId.Function + i32.eq + br_if $case2|1 + get_local $2 + get_global $src/common/SectionId.Table + i32.eq + br_if $case3|1 + get_local $2 + get_global $src/common/SectionId.Memory + i32.eq + br_if $case4|1 + get_local $2 + get_global $src/common/SectionId.Global + i32.eq + br_if $case5|1 + get_local $2 + get_global $src/common/SectionId.Export + i32.eq + br_if $case6|1 + get_local $2 + get_global $src/common/SectionId.Start + i32.eq + br_if $case7|1 + get_local $2 + get_global $src/common/SectionId.Custom + i32.eq + br_if $case8|1 + get_local $2 + get_global $src/common/SectionId.Element + i32.eq + br_if $case11|1 + get_local $2 + get_global $src/common/SectionId.Code + i32.eq + br_if $case11|1 + get_local $2 + get_global $src/common/SectionId.Data + i32.eq + br_if $case11|1 + br $case12|1 + end + call $assembly/index/readVaruint + set_local $2 + block $break|2 + i32.const 0 + set_local $3 + loop $repeat|2 + get_local $3 + get_local $2 + i32.ge_u + br_if $break|2 + get_local $3 + i32.const 7 + call $assembly/index/readVarint + i32.const 127 + i32.and + call $assembly/options/onType + call $assembly/index/readVaruint + set_local $4 + block $break|3 + i32.const 0 + set_local $7 + loop $repeat|3 + get_local $7 + get_local $4 + i32.ge_u + br_if $break|3 + get_local $3 + get_local $7 + i32.const 7 + call $assembly/index/readVarint + i32.const 127 + i32.and + call $assembly/options/onTypeParam + get_local $7 + i32.const 1 + i32.add + set_local $7 + br $repeat|3 + unreachable + end + unreachable + end + call $assembly/index/readVaruint + set_local $7 + block $break|4 + i32.const 0 + set_local $5 + loop $repeat|4 + get_local $5 + get_local $7 + i32.ge_u + br_if $break|4 + get_local $3 + get_local $5 + i32.const 7 + call $assembly/index/readVarint + i32.const 127 + i32.and + call $assembly/options/onTypeReturn + get_local $5 + i32.const 1 + i32.add + set_local $5 + br $repeat|4 + unreachable + end + unreachable + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|2 + unreachable + end + unreachable + end + br $break|1 + end + call $assembly/index/readVaruint + set_local $2 + block $break|5 + i32.const 0 + set_local $3 + loop $repeat|5 + get_local $3 + get_local $2 + i32.ge_u + br_if $break|5 + call $assembly/index/readVaruint + set_local $7 + get_global $assembly/index/off + set_local $4 + get_global $assembly/index/off + get_local $7 + i32.add + set_global $assembly/index/off + call $assembly/index/readVaruint + set_local $9 + get_global $assembly/index/off + set_local $5 + get_global $assembly/index/off + get_local $9 + i32.add + set_global $assembly/index/off + get_global $assembly/index/off + tee_local $6 + i32.load8_u + set_local $0 + get_local $6 + i32.const 1 + i32.add + set_global $assembly/index/off + get_local $3 + get_local $0 + get_local $4 + get_local $7 + get_local $5 + get_local $9 + call $assembly/options/onImport + block $break|6 + block $case4|6 + block $case3|6 + block $case2|6 + block $case1|6 + get_local $0 + tee_local $6 + get_global $src/common/ExternalKind.Function + i32.ne + if + get_local $6 + get_global $src/common/ExternalKind.Table + i32.eq + br_if $case1|6 + get_local $6 + get_global $src/common/ExternalKind.Memory + i32.eq + br_if $case2|6 + get_local $6 + get_global $src/common/ExternalKind.Global + i32.eq + br_if $case3|6 + br $case4|6 + end + get_local $11 + tee_local $10 + i32.const 1 + i32.add + set_local $11 + get_local $10 + call $assembly/index/readVaruint + call $assembly/options/onFunctionImport + br $break|6 + end + i32.const 7 + call $assembly/index/readVarint + i32.const 127 + i32.and + set_local $6 + call $assembly/index/readVaruint + set_local $10 + get_local $12 + tee_local $0 + i32.const 1 + i32.add + set_local $12 + get_local $0 + get_local $6 + call $assembly/index/readVaruint + tee_local $4 + get_local $10 + i32.const 1 + i32.and + if (result i32) + call $assembly/index/readVaruint + else + i32.const -1 + end + tee_local $8 + get_local $10 + call $assembly/options/onTableImport + br $break|6 + end + call $assembly/index/readVaruint + set_local $8 + get_local $13 + tee_local $6 + i32.const 1 + i32.add + set_local $13 + get_local $6 + call $assembly/index/readVaruint + tee_local $0 + get_local $8 + i32.const 1 + i32.and + if (result i32) + call $assembly/index/readVaruint + else + i32.const 65535 + end + tee_local $10 + get_local $8 + call $assembly/options/onMemoryImport + br $break|6 + end + get_local $14 + tee_local $8 + i32.const 1 + i32.add + set_local $14 + get_local $8 + i32.const 7 + call $assembly/index/readVarint + i32.const 127 + i32.and + call $assembly/index/readVaruint + call $assembly/options/onGlobalImport + br $break|6 + end + unreachable + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|5 + unreachable + end + unreachable + end + br $break|1 + end + call $assembly/index/readVaruint + set_local $2 + block $break|7 + i32.const 0 + set_local $3 + loop $repeat|7 + get_local $3 + get_local $2 + i32.ge_u + br_if $break|7 + get_local $11 + tee_local $5 + i32.const 1 + i32.add + set_local $11 + get_local $5 + call $assembly/index/readVaruint + call $assembly/options/onFunction + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|7 + unreachable + end + unreachable + end + br $break|1 + end + call $assembly/index/readVaruint + set_local $2 + block $break|8 + i32.const 0 + set_local $3 + loop $repeat|8 + get_local $3 + get_local $2 + i32.ge_u + br_if $break|8 + call $assembly/index/readVaruint + i32.const 127 + i32.and + set_local $0 + call $assembly/index/readVaruint + set_local $5 + get_local $12 + tee_local $7 + i32.const 1 + i32.add + set_local $12 + get_local $7 + get_local $0 + call $assembly/index/readVaruint + tee_local $6 + get_local $5 + i32.const 1 + i32.and + if (result i32) + call $assembly/index/readVaruint + else + i32.const -1 + end + tee_local $4 + get_local $5 + call $assembly/options/onTable + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|8 + unreachable + end + unreachable + end + br $break|1 + end + call $assembly/index/readVaruint + set_local $2 + block $break|9 + i32.const 0 + set_local $3 + loop $repeat|9 + get_local $3 + get_local $2 + i32.ge_u + br_if $break|9 + call $assembly/index/readVaruint + set_local $4 + get_local $13 + tee_local $0 + i32.const 1 + i32.add + set_local $13 + get_local $0 + call $assembly/index/readVaruint + tee_local $6 + get_local $4 + i32.const 1 + i32.and + if (result i32) + call $assembly/index/readVaruint + else + i32.const 65535 + end + tee_local $5 + get_local $4 + call $assembly/options/onMemory + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|9 + unreachable + end + unreachable + end + br $break|1 + end + call $assembly/index/readVaruint + set_local $2 + block $break|10 + i32.const 0 + set_local $3 + loop $repeat|10 + get_local $3 + get_local $2 + i32.ge_u + br_if $break|10 + i32.const 7 + call $assembly/index/readVarint + i32.const 127 + i32.and + set_local $5 + call $assembly/index/readVaruint + set_local $9 + call $assembly/index/skipInitExpr + get_local $14 + tee_local $4 + i32.const 1 + i32.add + set_local $14 + get_local $4 + get_local $5 + get_local $9 + call $assembly/options/onGlobal + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|10 + unreachable + end + unreachable + end + br $break|1 + end + call $assembly/index/readVaruint + set_local $2 + block $break|11 + i32.const 0 + set_local $3 + loop $repeat|11 + get_local $3 + get_local $2 + i32.ge_u + br_if $break|11 + call $assembly/index/readVaruint + set_local $9 + get_global $assembly/index/off + set_local $5 + get_global $assembly/index/off + get_local $9 + i32.add + set_global $assembly/index/off + get_global $assembly/index/off + tee_local $6 + i32.load8_u + set_local $0 + get_local $6 + i32.const 1 + i32.add + set_global $assembly/index/off + get_local $3 + get_local $0 + call $assembly/index/readVaruint + get_local $5 + get_local $9 + call $assembly/options/onExport + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|11 + unreachable + end + unreachable + end + br $break|1 + end + call $assembly/index/readVaruint + call $assembly/options/onStart + br $break|1 + end + get_local $0 + i32.const 4 + i32.eq + tee_local $2 + if + get_local $5 + i32.load + i32.const 1701667182 + i32.eq + set_local $2 + end + get_local $2 + if + call $assembly/index/readVaruint + set_local $2 + call $assembly/index/readVaruint + set_local $3 + get_global $assembly/index/off + set_local $0 + block $break|12 + block $case3|12 + block $case2|12 + block $case1|12 + get_local $2 + tee_local $4 + get_global $src/common/NameType.Module + i32.ne + if + get_local $4 + get_global $src/common/NameType.Function + i32.eq + br_if $case1|12 + get_local $4 + get_global $src/common/NameType.Local + i32.eq + br_if $case2|12 + br $case3|12 + end + call $assembly/index/readVaruint + set_local $4 + get_global $assembly/index/off + get_local $4 + call $assembly/options/onModuleName + br $break|12 + end + call $assembly/index/readVaruint + set_local $5 + block $break|13 + i32.const 0 + set_local $4 + loop $repeat|13 + get_local $4 + get_local $5 + i32.ge_u + br_if $break|13 + call $assembly/index/readVaruint + set_local $9 + call $assembly/index/readVaruint + set_local $7 + get_global $assembly/index/off + set_local $2 + get_global $assembly/index/off + get_local $7 + i32.add + set_global $assembly/index/off + get_local $9 + get_local $2 + get_local $7 + call $assembly/options/onFunctionName + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|13 + unreachable + end + unreachable + end + br $break|12 + end + call $assembly/index/readVaruint + set_local $5 + block $break|14 + i32.const 0 + set_local $4 + loop $repeat|14 + get_local $4 + get_local $5 + i32.ge_u + br_if $break|14 + call $assembly/index/readVaruint + set_local $2 + call $assembly/index/readVaruint + set_local $7 + block $break|15 + i32.const 0 + set_local $9 + loop $repeat|15 + get_local $9 + get_local $7 + i32.ge_u + br_if $break|15 + call $assembly/index/readVaruint + set_local $10 + call $assembly/index/readVaruint + set_local $8 + get_global $assembly/index/off + set_local $6 + get_global $assembly/index/off + get_local $8 + i32.add + set_global $assembly/index/off + get_local $2 + get_local $10 + get_local $6 + get_local $8 + call $assembly/options/onLocalName + get_local $9 + i32.const 1 + i32.add + set_local $9 + br $repeat|15 + unreachable + end + unreachable + end + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|14 + unreachable + end + unreachable + end + br $break|12 + end + unreachable + end + get_local $0 + get_local $3 + i32.add + set_global $assembly/index/off + br $break|1 + else + get_local $0 + i32.const 16 + i32.eq + tee_local $0 + if + get_local $5 + i64.load + i64.const 7011371672682196851 + i64.eq + set_local $0 + end + get_local $0 + if + get_local $5 + i32.const 8 + i32.add + i64.load + i64.const 5499551997695193200 + i64.eq + set_local $0 + end + get_local $0 + if + call $assembly/index/readVaruint + set_local $0 + get_global $assembly/index/off + set_local $3 + get_global $assembly/index/off + get_local $0 + i32.add + set_global $assembly/index/off + get_local $3 + get_local $0 + call $assembly/options/onSourceMappingURL + end + end + get_local $4 + get_local $8 + i32.add + set_global $assembly/index/off + br $break|1 + end + get_global $assembly/index/off + get_local $8 + i32.add + set_global $assembly/index/off + br $break|1 + end + unreachable + end + else + get_global $assembly/index/off + get_local $8 + i32.add + set_global $assembly/index/off + end + br $continue|0 + end + end + get_global $assembly/index/off + get_local $1 + i32.ne + if + unreachable + end ) - (func $null (; 24 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 24 ;) (type $v) + nop ) ) diff --git a/lib/parse/index.js b/lib/parse/index.js index 256120df..ea789fee 100644 --- a/lib/parse/index.js +++ b/lib/parse/index.js @@ -1,2 +1,2 @@ -!function(A,Q){"object"==typeof exports&&"object"==typeof module?module.exports=Q():"function"==typeof define&&define.amd?define([],Q):"object"==typeof exports?exports.asparse=Q():A.asparse=Q()}("undefined"!=typeof self?self:this,function(){return function(A){var Q={};function E(I){if(Q[I])return Q[I].exports;var B=Q[I]={i:I,l:!1,exports:{}};return A[I].call(B.exports,B,B.exports,E),B.l=!0,B.exports}return E.m=A,E.c=Q,E.d=function(A,Q,I){E.o(A,Q)||Object.defineProperty(A,Q,{configurable:!1,enumerable:!0,get:I})},E.r=function(A){Object.defineProperty(A,"__esModule",{value:!0})},E.n=function(A){var Q=A&&A.__esModule?function(){return A.default}:function(){return A};return E.d(Q,"a",Q),Q},E.o=function(A,Q){return Object.prototype.hasOwnProperty.call(A,Q)},E.p="",E(E.s=2)}([function(A,Q,E){"use strict";Q.__esModule=!0,function(A){A[A.i32=127]="i32",A[A.i64=126]="i64",A[A.f32=125]="f32",A[A.f64=124]="f64",A[A.anyfunc=112]="anyfunc",A[A.func=96]="func",A[A.none=64]="none"}(Q.Type||(Q.Type={})),function(A){A[A.Custom=0]="Custom",A[A.Type=1]="Type",A[A.Import=2]="Import",A[A.Function=3]="Function",A[A.Table=4]="Table",A[A.Memory=5]="Memory",A[A.Global=6]="Global",A[A.Export=7]="Export",A[A.Start=8]="Start",A[A.Element=9]="Element",A[A.Code=10]="Code",A[A.Data=11]="Data"}(Q.SectionId||(Q.SectionId={})),function(A){A[A.Function=0]="Function",A[A.Table=1]="Table",A[A.Memory=2]="Memory",A[A.Global=3]="Global"}(Q.ExternalKind||(Q.ExternalKind={})),function(A){A[A.Module=0]="Module",A[A.Function=1]="Function",A[A.Local=2]="Local"}(Q.NameType||(Q.NameType={})),Q.MAX_PAGES=65535,Q.MAX_ELEMS=4294967295,function(A){A[A.end=11]="end",A[A.get_global=35]="get_global",A[A.i32_const=65]="i32_const",A[A.i64_const=66]="i64_const",A[A.f32_const=67]="f32_const",A[A.f64_const=68]="f64_const"}(Q.Opcode||(Q.Opcode={}))},function(A,Q,E){"use strict";Q.__esModule=!0;var I=E(0);Q.Type=I.Type,Q.SectionId=I.SectionId,Q.ExternalKind=I.ExternalKind;var B=null;Q.parse=function A(Q,E){E||(E={}),B||(B=new WebAssembly.Module(function(A){var Q=A.length;if(Q){for(var E=0,I=Q;--I%4>1&&61===A.charCodeAt(I);)++E;Q=Math.ceil(3*Q)/4-E}for(var B=new Uint8Array(Q),o=0,e=0,t=0,C=0,i=A.length;C1)break;if(void 0===(r=n[r]))throw Error();switch(o){case 0:t=r,o=1;break;case 1:B[e++]=t<<2|(48&r)>>4,t=r,o=2;break;case 2:B[e++]=(15&t)<<4|(60&r)>>2,t=r,o=3;break;case 3:B[e++]=(3&t)<<6|r,o=0}}if(1===o)throw Error();return B}("AGFzbQEAAAABQQtgAn9/AGABfwF/YAV/f39/fwF/YAN/f38AYAZ/f39/f38AYAV/f39/fwBgBH9/f38AYAAAYAABfmABfwBgAAF/Aq4DFAdvcHRpb25zCW9uU2VjdGlvbgACB29wdGlvbnMGb25UeXBlAAAHb3B0aW9ucwtvblR5cGVQYXJhbQADB29wdGlvbnMMb25UeXBlUmV0dXJuAAMHb3B0aW9ucwhvbkltcG9ydAAEB29wdGlvbnMQb25GdW5jdGlvbkltcG9ydAAAB29wdGlvbnMNb25UYWJsZUltcG9ydAAFB29wdGlvbnMOb25NZW1vcnlJbXBvcnQABgdvcHRpb25zDm9uR2xvYmFsSW1wb3J0AAMHb3B0aW9ucwpvbkZ1bmN0aW9uAAAHb3B0aW9ucwdvblRhYmxlAAUHb3B0aW9ucwhvbk1lbW9yeQAGB29wdGlvbnMIb25HbG9iYWwAAwdvcHRpb25zCG9uRXhwb3J0AAUHb3B0aW9ucwdvblN0YXJ0AAkHb3B0aW9ucwxvbk1vZHVsZU5hbWUAAAdvcHRpb25zDm9uRnVuY3Rpb25OYW1lAAMHb3B0aW9ucwtvbkxvY2FsTmFtZQAGB29wdGlvbnMSb25Tb3VyY2VNYXBwaW5nVVJMAAADZW52Bm1lbW9yeQIAAAMHBgoBCAcABwQEAXAAAQaHARp/AUEAC38BQQALfwFBAQt/AUECC38BQQMLfwFBBAt/AUEFC38BQQYLfwFBBwt/AUEIC38BQQkLfwFBCgt/AUELC38BQQALfwFBAQt/AUECC38BQQMLfwFBCwt/AUEjC38BQcEAC38BQcIAC38BQcMAC38BQcQAC38BQQALfwFBAQt/AUECCwcaAwZtZW1vcnkCAAV0YWJsZQEABXBhcnNlABcJBwEAQQALARgKwg4GRAEEfyMAIQACQANAIAAiAUEBaiEAIAIgAS0AACIBQf8AcSADdHIhAiABQYABcUUNASADQQdqIQMMAAALAAsgACQAIAILYAEFfyMAIQIDQCACIgRBAWohAiADIAQtAAAiBUH/AHEgAXRyIQMgAUEHaiEBIAVBgAFxDQALIAIkACADQX8gAXRyIQIgASAASSIEBEAgBUHAAHFBAEchBAsgAiADIAQbC2YCAn8EfiMAIQEDQCABIgBBAWohASADIAAxAAAiBEL/AIMgAoaEIQMgAkIHfCECIARCgAGDQgBSDQALIAEkACADQn8gAoaEIQUgAkLAAFQiAARAIARCwACDQgBSIQALIAUgAyAAGwuZAQECfwJAAkACQAJAAkACQCMAIgEtAAAhACABQQFqJAAgACMTRwRAIAAjFEYNASAAIxVGDQIgACMWRg0DIAAjEkYNBAwFC0EgEBQaDAULEBUaDAQLIwAiACgCABogAEEEaiQADAMLIwAiACkDABogAEEIaiQADAILEBMaDAELAAsjACIBLQAAIQAgAUEBaiQAIAAjEUcEQAALC5MLAQ1/IAAkACMAIgYoAgAhACAGQQRqJAAgAEGAws3rBkcEQAALIwAiBigCACEAIAZBBGokACAAQQFHBEAACwNAIwAgAUkEQBATIQIQEyEIQQAhBUEAIQAgAgRAIAIjDEsEQAALBSMAIQQQEyEAIwAhBSMAIABqJAAgCCMAIARrayEICyACIwAiBCAIIAUgABAAQQFxBEACQAJAAkACQAJAAkACQAJAAkACQAJAIAIjAkcEQCACIwNGDQEgAiMERg0CIAIjBUYNAyACIwZGDQQgAiMHRg0FIAIjCEYNBiACIwlGDQcgAiMBRg0IIAIjCkYNCSACIwtGDQkgAiMMRg0JDAoLEBMhAgJAQQAhAwNAIAMgAk8NASADQQcQFEH/AHEQARATIQQCQEEAIQcDQCAHIARPDQEgAyAHQQcQFEH/AHEQAiAHQQFqIQcMAAALAAsQEyEHAkBBACEFA0AgBSAHTw0BIAMgBUEHEBRB/wBxEAMgBUEBaiEFDAAACwALIANBAWohAwwAAAsACwwKCxATIQICQEEAIQMDQCADIAJPDQEQEyEHIwAhBCMAIAdqJAAQEyEJIwAhBSMAIAlqJAAjACIGLQAAIQAgBkEBaiQAIAMgACAEIAcgBSAJEAQCQAJAAkACQAJAIAAiBiMNRwRAIAYjDkYNASAGIw9GDQIgBiMQRg0DDAQLIAsiCkEBaiELIAoQExAFDAQLQQcQFEH/AHEhBhATIQogDCIAQQFqIQwgACAGEBMiBCAKQQFxBH8QEwVBfwsiCCAKEAYMAwsQEyEIIA0iBkEBaiENIAYQEyIAIAhBAXEEfxATBUH//wMLIgogCBAHDAILIA4iCEEBaiEOIAhBBxAUQf8AcRATEAgMAQsACyADQQFqIQMMAAALAAsMCQsQEyECAkBBACEDA0AgAyACTw0BIAsiBUEBaiELIAUQExAJIANBAWohAwwAAAsACwwICxATIQICQEEAIQMDQCADIAJPDQEQE0H/AHEhABATIQUgDCIHQQFqIQwgByAAEBMiBiAFQQFxBH8QEwVBfwsiBCAFEAogA0EBaiEDDAAACwALDAcLEBMhAgJAQQAhAwNAIAMgAk8NARATIQQgDSIAQQFqIQ0gABATIgYgBEEBcQR/EBMFQf//AwsiBSAEEAsgA0EBaiEDDAAACwALDAYLEBMhAgJAQQAhAwNAIAMgAk8NAUEHEBRB/wBxIQUQEyEJEBYgDiIEQQFqIQ4gBCAFIAkQDCADQQFqIQMMAAALAAsMBQsQEyECAkBBACEDA0AgAyACTw0BEBMhCSMAIQUjACAJaiQAIwAiBi0AACEAIAZBAWokACADIAAQEyAFIAkQDSADQQFqIQMMAAALAAsMBAsQExAODAMLIABBBEYiAgRAIAUoAgBB7sK1qwZGIQILIAIEQBATIQIQEyEDIwAhAAJAAkACQAJAIAIiBCMXRwRAIAQjGEYNASAEIxlGDQIMAwsQEyEEIwAgBBAPDAMLEBMhBQJAQQAhBANAIAQgBU8NARATIQkQEyEHIwAhAiMAIAdqJAAgCSACIAcQECAEQQFqIQQMAAALAAsMAgsQEyEFAkBBACEEA0AgBCAFTw0BEBMhAhATIQcCQEEAIQkDQCAJIAdPDQEQEyEKEBMhCCMAIQYjACAIaiQAIAIgCiAGIAgQESAJQQFqIQkMAAALAAsgBEEBaiEEDAAACwALDAELAAsgACADaiQADAMFIABBEEYiAARAIAUpAwBC897Vk7es2abhAFEhAAsgAARAIAVBCGopAwBC8OCl8/aslanMAFEhAAsgAARAEBMhACMAIQMjACAAaiQAIAMgABASCwsgBCAIaiQADAILIwAgCGokAAwBCwALBSMAIAhqJAALDAELCyMAIAFHBEAACwsDAAELACAQc291cmNlTWFwcGluZ1VSTA5pbmRleC53YXNtLm1hcA==")));var I=Q.length,o=(I+65535&-65536)>>16,e=new WebAssembly.Memory({initial:o}),t=new Uint8Array(e.buffer);t.set(Q),A.readString=function(A,Q){return function(A,Q,E){if(E-Q<1)return"";for(var I=null,B=[],n=0,o=0;Q191&&o<224?B[n++]=(31&o)<<6|63&A[Q++]:o>239&&o<365?(o=((7&o)<<18|(63&A[Q++])<<12|(63&A[Q++])<<6|63&A[Q++])-65536,B[n++]=55296+(o>>10),B[n++]=56320+(1023&o)):B[n++]=(15&o)<<12|(63&A[Q++])<<6|63&A[Q++],n>8191&&((I||(I=[])).push(String.fromCharCode.apply(String,B)),n=0);return I?(n&&I.push(String.fromCharCode.apply(String,B.slice(0,n))),I.join("")):String.fromCharCode.apply(String,B.slice(0,n))}(t,A,A+Q)};var C={env:{memory:e},options:{}};["onSection","onType","onTypeParam","onTypeReturn","onImport","onFunctionImport","onTableImport","onMemoryImport","onGlobalImport","onMemory","onFunction","onTable","onGlobal","onExport","onStart","onSourceMappingURL","onModuleName","onFunctionName","onLocalName"].forEach(function(A){return C.options[A]=E[A]||function(){}}),new WebAssembly.Instance(B,C).exports.parse(0,I)};for(var n=new Array(123),o=0;o<64;)n[o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++},function(A,Q,E){A.exports=E(1)}])}); +!function(A,Q){"object"==typeof exports&&"object"==typeof module?module.exports=Q():"function"==typeof define&&define.amd?define([],Q):"object"==typeof exports?exports.asparse=Q():A.asparse=Q()}("undefined"!=typeof self?self:this,function(){return function(A){var Q={};function n(e){if(Q[e])return Q[e].exports;var E=Q[e]={i:e,l:!1,exports:{}};return A[e].call(E.exports,E,E.exports,n),E.l=!0,E.exports}return n.m=A,n.c=Q,n.d=function(A,Q,e){n.o(A,Q)||Object.defineProperty(A,Q,{enumerable:!0,get:e})},n.r=function(A){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})},n.t=function(A,Q){if(1&Q&&(A=n(A)),8&Q)return A;if(4&Q&&"object"==typeof A&&A&&A.__esModule)return A;var e=Object.create(null);if(n.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:A}),2&Q&&"string"!=typeof A)for(var E in A)n.d(e,E,function(Q){return A[Q]}.bind(null,E));return e},n.n=function(A){var Q=A&&A.__esModule?function(){return A.default}:function(){return A};return n.d(Q,"a",Q),Q},n.o=function(A,Q){return Object.prototype.hasOwnProperty.call(A,Q)},n.p="",n(n.s=0)}([function(A,Q,n){A.exports=n(1)},function(A,Q,n){"use strict";Q.__esModule=!0;var e=n(2);Q.Type=e.Type,Q.SectionId=e.SectionId,Q.ExternalKind=e.ExternalKind;var E=null;Q.parse=function A(Q,n){n||(n={}),E||(E=new WebAssembly.Module(function(A){var Q=A.length;if(Q){for(var n=0,e=Q;--e%4>1&&61===A.charCodeAt(e);)++n;Q=Math.ceil(3*Q)/4-n}for(var E=new Uint8Array(Q),I=0,B=0,t=0,i=0,C=A.length;i1)break;if(void 0===(r=o[r]))throw Error();switch(I){case 0:t=r,I=1;break;case 1:E[B++]=t<<2|(48&r)>>4,t=r,I=2;break;case 2:E[B++]=(15&t)<<4|(60&r)>>2,t=r,I=3;break;case 3:E[B++]=(3&t)<<6|r,I=0}}if(1===I)throw Error();return E}("AGFzbQEAAAABQQtgAn9/AGABfwF/YAV/f39/fwF/YAN/f38AYAZ/f39/f38AYAV/f39/fwBgBH9/f38AYAAAYAABfmABfwBgAAF/Aq4DFAdvcHRpb25zCW9uU2VjdGlvbgACB29wdGlvbnMGb25UeXBlAAAHb3B0aW9ucwtvblR5cGVQYXJhbQADB29wdGlvbnMMb25UeXBlUmV0dXJuAAMHb3B0aW9ucwhvbkltcG9ydAAEB29wdGlvbnMQb25GdW5jdGlvbkltcG9ydAAAB29wdGlvbnMNb25UYWJsZUltcG9ydAAFB29wdGlvbnMOb25NZW1vcnlJbXBvcnQABgdvcHRpb25zDm9uR2xvYmFsSW1wb3J0AAMHb3B0aW9ucwpvbkZ1bmN0aW9uAAAHb3B0aW9ucwdvblRhYmxlAAUHb3B0aW9ucwhvbk1lbW9yeQAGB29wdGlvbnMIb25HbG9iYWwAAwdvcHRpb25zCG9uRXhwb3J0AAUHb3B0aW9ucwdvblN0YXJ0AAkHb3B0aW9ucwxvbk1vZHVsZU5hbWUAAAdvcHRpb25zDm9uRnVuY3Rpb25OYW1lAAMHb3B0aW9ucwtvbkxvY2FsTmFtZQAGB29wdGlvbnMSb25Tb3VyY2VNYXBwaW5nVVJMAAADZW52Bm1lbW9yeQIAAAMHBgoBCAcABwQEAXAAAQaHARp/AUEAC38BQQALfwFBAQt/AUECC38BQQMLfwFBBAt/AUEFC38BQQYLfwFBBwt/AUEIC38BQQkLfwFBCgt/AUELC38BQQALfwFBAQt/AUECC38BQQMLfwFBCwt/AUEjC38BQcEAC38BQcIAC38BQcMAC38BQcQAC38BQQALfwFBAQt/AUECCwcaAwZtZW1vcnkCAAV0YWJsZQEABXBhcnNlABcJBwEAQQALARgKwg4GRAEEfyMAIQACQANAIAAiAUEBaiEAIAIgAS0AACIBQf8AcSADdHIhAiABQYABcUUNASADQQdqIQMMAAALAAsgACQAIAILYAEFfyMAIQIDQCACIgRBAWohAiADIAQtAAAiBUH/AHEgAXRyIQMgAUEHaiEBIAVBgAFxDQALIAIkACADQX8gAXRyIQIgASAASSIEBEAgBUHAAHFBAEchBAsgAiADIAQbC2YCAn8EfiMAIQEDQCABIgBBAWohASADIAAxAAAiBEL/AIMgAoaEIQMgAkIHfCECIARCgAGDQgBSDQALIAEkACADQn8gAoaEIQUgAkLAAFQiAARAIARCwACDQgBSIQALIAUgAyAAGwuZAQECfwJAAkACQAJAAkACQCMAIgEtAAAhACABQQFqJAAgACMTRwRAIAAjFEYNASAAIxVGDQIgACMWRg0DIAAjEkYNBAwFC0EgEBQaDAULEBUaDAQLIwAiACgCABogAEEEaiQADAMLIwAiACkDABogAEEIaiQADAILEBMaDAELAAsjACIBLQAAIQAgAUEBaiQAIAAjEUcEQAALC5MLAQ1/IAAkACMAIgYoAgAhACAGQQRqJAAgAEGAws3rBkcEQAALIwAiBigCACEAIAZBBGokACAAQQFHBEAACwNAIwAgAUkEQBATIQIQEyEIQQAhBUEAIQAgAgRAIAIjDEsEQAALBSMAIQQQEyEAIwAhBSMAIABqJAAgCCMAIARrayEICyACIwAiBCAIIAUgABAAQQFxBEACQAJAAkACQAJAAkACQAJAAkACQAJAIAIjAkcEQCACIwNGDQEgAiMERg0CIAIjBUYNAyACIwZGDQQgAiMHRg0FIAIjCEYNBiACIwlGDQcgAiMBRg0IIAIjCkYNCSACIwtGDQkgAiMMRg0JDAoLEBMhAgJAQQAhAwNAIAMgAk8NASADQQcQFEH/AHEQARATIQQCQEEAIQcDQCAHIARPDQEgAyAHQQcQFEH/AHEQAiAHQQFqIQcMAAALAAsQEyEHAkBBACEFA0AgBSAHTw0BIAMgBUEHEBRB/wBxEAMgBUEBaiEFDAAACwALIANBAWohAwwAAAsACwwKCxATIQICQEEAIQMDQCADIAJPDQEQEyEHIwAhBCMAIAdqJAAQEyEJIwAhBSMAIAlqJAAjACIGLQAAIQAgBkEBaiQAIAMgACAEIAcgBSAJEAQCQAJAAkACQAJAIAAiBiMNRwRAIAYjDkYNASAGIw9GDQIgBiMQRg0DDAQLIAsiCkEBaiELIAoQExAFDAQLQQcQFEH/AHEhBhATIQogDCIAQQFqIQwgACAGEBMiBCAKQQFxBH8QEwVBfwsiCCAKEAYMAwsQEyEIIA0iBkEBaiENIAYQEyIAIAhBAXEEfxATBUH//wMLIgogCBAHDAILIA4iCEEBaiEOIAhBBxAUQf8AcRATEAgMAQsACyADQQFqIQMMAAALAAsMCQsQEyECAkBBACEDA0AgAyACTw0BIAsiBUEBaiELIAUQExAJIANBAWohAwwAAAsACwwICxATIQICQEEAIQMDQCADIAJPDQEQE0H/AHEhABATIQUgDCIHQQFqIQwgByAAEBMiBiAFQQFxBH8QEwVBfwsiBCAFEAogA0EBaiEDDAAACwALDAcLEBMhAgJAQQAhAwNAIAMgAk8NARATIQQgDSIAQQFqIQ0gABATIgYgBEEBcQR/EBMFQf//AwsiBSAEEAsgA0EBaiEDDAAACwALDAYLEBMhAgJAQQAhAwNAIAMgAk8NAUEHEBRB/wBxIQUQEyEJEBYgDiIEQQFqIQ4gBCAFIAkQDCADQQFqIQMMAAALAAsMBQsQEyECAkBBACEDA0AgAyACTw0BEBMhCSMAIQUjACAJaiQAIwAiBi0AACEAIAZBAWokACADIAAQEyAFIAkQDSADQQFqIQMMAAALAAsMBAsQExAODAMLIABBBEYiAgRAIAUoAgBB7sK1qwZGIQILIAIEQBATIQIQEyEDIwAhAAJAAkACQAJAIAIiBCMXRwRAIAQjGEYNASAEIxlGDQIMAwsQEyEEIwAgBBAPDAMLEBMhBQJAQQAhBANAIAQgBU8NARATIQkQEyEHIwAhAiMAIAdqJAAgCSACIAcQECAEQQFqIQQMAAALAAsMAgsQEyEFAkBBACEEA0AgBCAFTw0BEBMhAhATIQcCQEEAIQkDQCAJIAdPDQEQEyEKEBMhCCMAIQYjACAIaiQAIAIgCiAGIAgQESAJQQFqIQkMAAALAAsgBEEBaiEEDAAACwALDAELAAsgACADaiQADAMFIABBEEYiAARAIAUpAwBC897Vk7es2abhAFEhAAsgAARAIAVBCGopAwBC8OCl8/aslanMAFEhAAsgAARAEBMhACMAIQMjACAAaiQAIAMgABASCwsgBCAIaiQADAILIwAgCGokAAwBCwALBSMAIAhqJAALDAELCyMAIAFHBEAACwsDAAELACAQc291cmNlTWFwcGluZ1VSTA5pbmRleC53YXNtLm1hcA==")));var e=Q.length,I=(e+65535&-65536)>>16,B=new WebAssembly.Memory({initial:I}),t=new Uint8Array(B.buffer);t.set(Q),A.readString=function(A,Q){return function(A,Q,n){if(n-Q<1)return"";for(var e=null,E=[],o=0,I=0;Q191&&I<224?E[o++]=(31&I)<<6|63&A[Q++]:I>239&&I<365?(I=((7&I)<<18|(63&A[Q++])<<12|(63&A[Q++])<<6|63&A[Q++])-65536,E[o++]=55296+(I>>10),E[o++]=56320+(1023&I)):E[o++]=(15&I)<<12|(63&A[Q++])<<6|63&A[Q++],o>8191&&((e||(e=[])).push(String.fromCharCode.apply(String,E)),o=0);return e?(o&&e.push(String.fromCharCode.apply(String,E.slice(0,o))),e.join("")):String.fromCharCode.apply(String,E.slice(0,o))}(t,A,A+Q)};var i={env:{memory:B},options:{}};["onSection","onType","onTypeParam","onTypeReturn","onImport","onFunctionImport","onTableImport","onMemoryImport","onGlobalImport","onMemory","onFunction","onTable","onGlobal","onExport","onStart","onSourceMappingURL","onModuleName","onFunctionName","onLocalName"].forEach(function(A){return i.options[A]=n[A]||function(){}}),new WebAssembly.Instance(E,i).exports.parse(0,e)};for(var o=new Array(123),I=0;I<64;)o[I<26?I+65:I<52?I+71:I<62?I-4:I-59|43]=I++},function(A,Q,n){"use strict";Q.__esModule=!0,function(A){A[A.i32=127]="i32",A[A.i64=126]="i64",A[A.f32=125]="f32",A[A.f64=124]="f64",A[A.anyfunc=112]="anyfunc",A[A.func=96]="func",A[A.none=64]="none"}(Q.Type||(Q.Type={})),function(A){A[A.Custom=0]="Custom",A[A.Type=1]="Type",A[A.Import=2]="Import",A[A.Function=3]="Function",A[A.Table=4]="Table",A[A.Memory=5]="Memory",A[A.Global=6]="Global",A[A.Export=7]="Export",A[A.Start=8]="Start",A[A.Element=9]="Element",A[A.Code=10]="Code",A[A.Data=11]="Data"}(Q.SectionId||(Q.SectionId={})),function(A){A[A.Function=0]="Function",A[A.Table=1]="Table",A[A.Memory=2]="Memory",A[A.Global=3]="Global"}(Q.ExternalKind||(Q.ExternalKind={})),function(A){A[A.Module=0]="Module",A[A.Function=1]="Function",A[A.Local=2]="Local"}(Q.NameType||(Q.NameType={})),Q.MAX_PAGES=65535,Q.MAX_ELEMS=4294967295,function(A){A[A.end=11]="end",A[A.get_global=35]="get_global",A[A.i32_const=65]="i32_const",A[A.i64_const=66]="i64_const",A[A.f32_const=67]="f32_const",A[A.f64_const=68]="f64_const"}(Q.Opcode||(Q.Opcode={}))}])}); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/parse/index.js.map b/lib/parse/index.js.map index b66a9f3c..1884afb2 100644 --- a/lib/parse/index.js.map +++ b/lib/parse/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://asparse/webpack/universalModuleDefinition","webpack://asparse/webpack/bootstrap","webpack://asparse/./src/common.ts","webpack://asparse/./src/index.ts"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","r","value","n","__esModule","object","property","prototype","hasOwnProperty","p","s","Type","SectionId","ExternalKind","NameType","MAX_PAGES","MAX_ELEMS","Opcode","common_1","compiled","parse","binary","options","WebAssembly","Module","string","length","charCodeAt","Math","ceil","buffer","Uint8Array","j","t","k","undefined","s64","Error","base64_decode","nBytes","nPages","memory","Memory","initial","set","readString","offset","start","end","parts","chunk","push","String","fromCharCode","apply","slice","join","utf8_read","imports","env","forEach","Instance","Array"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,eAAAC,IACAD,UAAAH,GACA,iBAAAC,QACAA,QAAA,QAAAD,IAEAD,EAAA,QAAAC,IARA,CASC,oBAAAK,UAAAC,KAAA,WACD,mBCTA,IAAAC,KAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAR,QAGA,IAAAC,EAAAK,EAAAE,IACAC,EAAAD,EACAE,GAAA,EACAV,YAUA,OANAW,EAAAH,GAAAI,KAAAX,EAAAD,QAAAC,IAAAD,QAAAO,GAGAN,EAAAS,GAAA,EAGAT,EAAAD,QA2CA,OAtCAO,EAAAM,EAAAF,EAGAJ,EAAAO,EAAAR,EAGAC,EAAAQ,EAAA,SAAAf,EAAAgB,EAAAC,GACAV,EAAAW,EAAAlB,EAAAgB,IACAG,OAAAC,eAAApB,EAAAgB,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAV,EAAAiB,EAAA,SAAAxB,GACAmB,OAAAC,eAAApB,EAAA,cAAiDyB,OAAA,KAIjDlB,EAAAmB,EAAA,SAAAzB,GACA,IAAAgB,EAAAhB,KAAA0B,WACA,WAA2B,OAAA1B,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAM,EAAAQ,EAAAE,EAAA,IAAAA,GACAA,GAIAV,EAAAW,EAAA,SAAAU,EAAAC,GAAsD,OAAAV,OAAAW,UAAAC,eAAAnB,KAAAgB,EAAAC,IAGtDtB,EAAAyB,EAAA,GAIAzB,IAAA0B,EAAA,kCCjEAjC,EAAA2B,YAAA,EAGA,SAAAO,GACAA,IAAA,eACAA,IAAA,eACAA,IAAA,eACAA,IAAA,eACAA,IAAA,uBACAA,IAAA,gBACAA,IAAA,gBAPA,CAQClC,EAAAkC,OAAAlC,EAAAkC,UAGD,SAAAC,GACAA,IAAA,mBACAA,IAAA,eACAA,IAAA,mBACAA,IAAA,uBACAA,IAAA,iBACAA,IAAA,mBACAA,IAAA,mBACAA,IAAA,mBACAA,IAAA,iBACAA,IAAA,qBACAA,IAAA,gBACAA,IAAA,gBAZA,CAaCnC,EAAAmC,YAAAnC,EAAAmC,eAGD,SAAAC,GACAA,IAAA,uBACAA,IAAA,iBACAA,IAAA,mBACAA,IAAA,mBAJA,CAKCpC,EAAAoC,eAAApC,EAAAoC,kBAGD,SAAAC,GACAA,IAAA,mBACAA,IAAA,uBACAA,IAAA,iBAHA,CAICrC,EAAAqC,WAAArC,EAAAqC,cAEDrC,EAAAsC,UAAA,MAEAtC,EAAAuC,UAAA,WAGA,SAAAC,GAOAA,IAAA,cAYAA,IAAA,4BA2BAA,IAAA,0BACAA,IAAA,0BACAA,IAAA,0BACAA,IAAA,0BAjDA,CA6KCxC,EAAAwC,SAAAxC,EAAAwC,0CC/NDxC,EAAA2B,YAAA,EACA,IAAAc,EAAAlC,EAAA,GACAP,EAAAkC,KAAAO,EAAAP,KACAlC,EAAAmC,UAAAM,EAAAN,UACAnC,EAAAoC,aAAAK,EAAAL,aAEA,IAAAM,EAAA,KAgDA1C,EAAA2C,MA5CA,SAAAA,EAAAC,EAAAC,GACAA,IACAA,MAEAH,IACAA,EAAA,IAAAI,YAAAC,OA4EA,SAAAC,GACA,IAAAC,EAAAD,EAAAC,OACA,GAAAA,EAAA,CAEA,IADA,IAAAvB,EAAA,EAAAM,EAAAiB,IACAjB,EAAA,UAAAgB,EAAAE,WAAAlB,MACAN,EACAuB,EAAAE,KAAAC,KAAA,EAAAH,GAAA,EAAAvB,EAIA,IAFA,IAAA2B,EAAA,IAAAC,WAAAL,GACAM,EAAA,EAAArC,EAAA,EAAAsC,EAAA,EACA/C,EAAA,EAAAgD,EAAAT,EAAAC,OAAsCxC,EAAAgD,GAAO,CAC7C,IAAA3C,EAAAkC,EAAAE,WAAAzC,KACA,QAAAK,GAAAyC,EAAA,EACA,MACA,QAAAG,KAAA5C,EAAA6C,EAAA7C,IACA,MAAA8C,QACA,OAAAL,GACA,OACAC,EAAA1C,EACAyC,EAAA,EACA,MAEA,OACAF,EAAAnC,KAAAsC,GAAA,MAAA1C,IAAA,EACA0C,EAAA1C,EACAyC,EAAA,EACA,MAEA,OACAF,EAAAnC,MAAA,GAAAsC,IAAA,MAAA1C,IAAA,EACA0C,EAAA1C,EACAyC,EAAA,EACA,MAEA,OACAF,EAAAnC,MAAA,EAAAsC,IAAA,EAAA1C,EACAyC,EAAA,GAKA,OAAAA,EACA,MAAAK,QACA,OAAAP,EAvHAQ,CAAA,04GAEA,IAAAC,EAAAlB,EAAAK,OACAc,GAAAD,EAAA,kBACAE,EAAA,IAAAlB,YAAAmB,QAAyCC,QAAAH,IACzCV,EAAA,IAAAC,WAAAU,EAAAX,QACAA,EAAAc,IAAAvB,GAEAD,EAAAyB,WAAA,SAAAC,EAAApB,GAAkD,OAiClD,SAAAI,EAAAiB,EAAAC,GAEA,GADAA,EAAAD,EACA,EACA,SAGA,IAFA,IAAAE,EAAA,KAAAC,KAAAhE,EAAA,EACA+C,EAAA,EACAc,EAAAC,IACAf,EAAAH,EAAAiB,MACA,IACAG,EAAAhE,KAAA+C,EAEAA,EAAA,KAAAA,EAAA,IACAiB,EAAAhE,MAAA,GAAA+C,IAAA,KAAAH,EAAAiB,KAEAd,EAAA,KAAAA,EAAA,KACAA,IAAA,EAAAA,IAAA,OAAAH,EAAAiB,OAAA,OAAAjB,EAAAiB,OAAA,KAAAjB,EAAAiB,MAAA,MACAG,EAAAhE,KAAA,OAAA+C,GAAA,IACAiB,EAAAhE,KAAA,YAAA+C,IAGAiB,EAAAhE,MAAA,GAAA+C,IAAA,OAAAH,EAAAiB,OAAA,KAAAjB,EAAAiB,KAEA7D,EAAA,QACA+D,WAAAE,KAAAC,OAAAC,aAAAC,MAAAF,OAAAF,IACAhE,EAAA,GAGA,OAAA+D,GACA/D,GACA+D,EAAAE,KAAAC,OAAAC,aAAAC,MAAAF,OAAAF,EAAAK,MAAA,EAAArE,KACA+D,EAAAO,KAAA,KAEAJ,OAAAC,aAAAC,MAAAF,OAAAF,EAAAK,MAAA,EAAArE,IAjEkDuE,CAAA3B,EAAAgB,IAAApB,IAElD,IAAAgC,GACAC,KACAlB,UAEAnB,aAEA,YACA,SACA,cACA,eACA,WACA,mBACA,gBACA,iBACA,iBACA,WACA,aACA,UACA,WACA,WACA,UACA,qBACA,eACA,iBACA,eACAsC,QAAA,SAAAnE,GAA+B,OAAAiE,EAAApC,QAAA7B,GAAA6B,EAAA7B,IAAA,eAC/B,IAAA8B,YAAAsC,SAAA1C,EAAAuC,GACAjF,QAAA2C,MAAA,EAAAmB,IAqFA,IADA,IAAAH,EAAA,IAAA0B,MAAA,KACA5E,EAAA,EAAeA,EAAA,IACfkD,EAAAlD,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,EAAAA,EAAA,OAAAA","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"asparse\"] = factory();\n\telse\n\t\troot[\"asparse\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n","\"use strict\";\r\n/** Common constants shared between AssemblyScript and TypeScript. */\r\nexports.__esModule = true;\r\n/** WebAssembly types. */\r\nvar Type;\r\n(function (Type) {\r\n Type[Type[\"i32\"] = 127] = \"i32\";\r\n Type[Type[\"i64\"] = 126] = \"i64\";\r\n Type[Type[\"f32\"] = 125] = \"f32\";\r\n Type[Type[\"f64\"] = 124] = \"f64\";\r\n Type[Type[\"anyfunc\"] = 112] = \"anyfunc\";\r\n Type[Type[\"func\"] = 96] = \"func\";\r\n Type[Type[\"none\"] = 64] = \"none\";\r\n})(Type = exports.Type || (exports.Type = {}));\r\n/** WebAssembly section ids. */\r\nvar SectionId;\r\n(function (SectionId) {\r\n SectionId[SectionId[\"Custom\"] = 0] = \"Custom\";\r\n SectionId[SectionId[\"Type\"] = 1] = \"Type\";\r\n SectionId[SectionId[\"Import\"] = 2] = \"Import\";\r\n SectionId[SectionId[\"Function\"] = 3] = \"Function\";\r\n SectionId[SectionId[\"Table\"] = 4] = \"Table\";\r\n SectionId[SectionId[\"Memory\"] = 5] = \"Memory\";\r\n SectionId[SectionId[\"Global\"] = 6] = \"Global\";\r\n SectionId[SectionId[\"Export\"] = 7] = \"Export\";\r\n SectionId[SectionId[\"Start\"] = 8] = \"Start\";\r\n SectionId[SectionId[\"Element\"] = 9] = \"Element\";\r\n SectionId[SectionId[\"Code\"] = 10] = \"Code\";\r\n SectionId[SectionId[\"Data\"] = 11] = \"Data\";\r\n})(SectionId = exports.SectionId || (exports.SectionId = {}));\r\n/** WebAssembly external kinds. */\r\nvar ExternalKind;\r\n(function (ExternalKind) {\r\n ExternalKind[ExternalKind[\"Function\"] = 0] = \"Function\";\r\n ExternalKind[ExternalKind[\"Table\"] = 1] = \"Table\";\r\n ExternalKind[ExternalKind[\"Memory\"] = 2] = \"Memory\";\r\n ExternalKind[ExternalKind[\"Global\"] = 3] = \"Global\";\r\n})(ExternalKind = exports.ExternalKind || (exports.ExternalKind = {}));\r\n/** Name section types. */\r\nvar NameType;\r\n(function (NameType) {\r\n NameType[NameType[\"Module\"] = 0] = \"Module\";\r\n NameType[NameType[\"Function\"] = 1] = \"Function\";\r\n NameType[NameType[\"Local\"] = 2] = \"Local\";\r\n})(NameType = exports.NameType || (exports.NameType = {}));\r\n/** Maximum number of memory pages. */\r\nexports.MAX_PAGES = 0xffff;\r\n/** Maximum number of table elements. */\r\nexports.MAX_ELEMS = 0xffffffff;\r\n/** WebAssembly opcodes. */\r\nvar Opcode;\r\n(function (Opcode) {\r\n // unreachable = 0x00,\r\n // nop = 0x01,\r\n // block = 0x02,\r\n // loop = 0x03,\r\n // if_ = 0x04,\r\n // else_ = 0x05,\r\n Opcode[Opcode[\"end\"] = 11] = \"end\";\r\n // br = 0x0c,\r\n // br_if = 0x0d,\r\n // br_table = 0x0e,\r\n // return_ = 0x0f,\r\n // call = 0x10,\r\n // call_indirect = 0x11,\r\n // drop = 0x1a,\r\n // select = 0x1b,\r\n // get_local = 0x20,\r\n // set_local = 0x21,\r\n // tee_local = 0x22,\r\n Opcode[Opcode[\"get_global\"] = 35] = \"get_global\";\r\n // set_global = 0x24,\r\n // i32_load = 0x28,\r\n // i64_load = 0x29,\r\n // f32_load = 0x2a,\r\n // f64_load = 0x2b,\r\n // i32_load8_s = 0x2c,\r\n // i32_load8_u = 0x2d,\r\n // i32_load16_s = 0x2e,\r\n // i32_load16_u = 0x2f,\r\n // i64_load8_s = 0x30,\r\n // i64_load8_u = 0x31,\r\n // i64_load16_s = 0x32,\r\n // i64_load16_u = 0x33,\r\n // i64_load32_s = 0x34,\r\n // i64_load32_u = 0x35,\r\n // i32_store = 0x36,\r\n // i64_store = 0x37,\r\n // f32_store = 0x38,\r\n // f64_store = 0x39,\r\n // i32_store8 = 0x3a,\r\n // i32_store16 = 0x3b,\r\n // i64_store8 = 0x3c,\r\n // i64_store16 = 0x3d,\r\n // i64_store32 = 0x3e,\r\n // current_memory = 0x3f,\r\n // grow_memory = 0x40,\r\n Opcode[Opcode[\"i32_const\"] = 65] = \"i32_const\";\r\n Opcode[Opcode[\"i64_const\"] = 66] = \"i64_const\";\r\n Opcode[Opcode[\"f32_const\"] = 67] = \"f32_const\";\r\n Opcode[Opcode[\"f64_const\"] = 68] = \"f64_const\";\r\n // i32_eqz = 0x45,\r\n // i32_eq = 0x46,\r\n // i32_ne = 0x47,\r\n // i32_lt_s = 0x48,\r\n // i32_lt_u = 0x49,\r\n // i32_gt_s = 0x4a,\r\n // i32_gt_u = 0x4b,\r\n // i32_le_s = 0x4c,\r\n // i32_le_u = 0x4d,\r\n // i32_ge_s = 0x4e,\r\n // i32_ge_u = 0x4f,\r\n // i64_eqz = 0x50,\r\n // i64_eq = 0x51,\r\n // i64_ne = 0x52,\r\n // i64_lt_s = 0x53,\r\n // i64_lt_u = 0x54,\r\n // i64_gt_s = 0x55,\r\n // i64_gt_u = 0x56,\r\n // i64_le_s = 0x57,\r\n // i64_le_u = 0x58,\r\n // i64_ge_s = 0x59,\r\n // i64_ge_u = 0x5a,\r\n // f32_eq = 0x5b,\r\n // f32_ne = 0x5c,\r\n // f32_lt = 0x5d,\r\n // f32_gt = 0x5e,\r\n // f32_le = 0x5f,\r\n // f32_ge = 0x60,\r\n // f64_eq = 0x61,\r\n // f64_ne = 0x62,\r\n // f64_lt = 0x63,\r\n // f64_gt = 0x64,\r\n // f64_le = 0x65,\r\n // f64_ge = 0x66,\r\n // i32_clz = 0x67,\r\n // i32_ctz = 0x68,\r\n // i32_popcnt = 0x69,\r\n // i32_add = 0x6a,\r\n // i32_sub = 0x6b,\r\n // i32_mul = 0x6c,\r\n // i32_div_s = 0x6d,\r\n // i32_div_u = 0x6e,\r\n // i32_rem_s = 0x6f,\r\n // i32_rem_u = 0x70,\r\n // i32_and = 0x71,\r\n // i32_or = 0x72,\r\n // i32_xor = 0x73,\r\n // i32_shl = 0x74,\r\n // i32_shr_s = 0x75,\r\n // i32_shr_u = 0x76,\r\n // i32_rotl = 0x77,\r\n // i32_rotr = 0x78,\r\n // i64_clz = 0x79,\r\n // i64_ctz = 0x7a,\r\n // i64_popcnt = 0x7b,\r\n // i64_add = 0x7c,\r\n // i64_sub = 0x7d,\r\n // i64_mul = 0x7e,\r\n // i64_div_s = 0x7f,\r\n // i64_div_u = 0x80,\r\n // i64_rem_s = 0x81,\r\n // i64_rem_u = 0x82,\r\n // i64_and = 0x83,\r\n // i64_or = 0x84,\r\n // i64_xor = 0x85,\r\n // i64_shl = 0x86,\r\n // i64_shr_s = 0x87,\r\n // i64_shr_u = 0x88,\r\n // i64_rotl = 0x89,\r\n // i64_rotr = 0x8a,\r\n // f32_abs = 0x8b,\r\n // f32_neg = 0x8c,\r\n // f32_ceil = 0x8d,\r\n // f32_floor = 0x8e,\r\n // f32_trunc = 0x8f,\r\n // f32_nearest = 0x90,\r\n // f32_sqrt = 0x91,\r\n // f32_add = 0x92,\r\n // f32_sub = 0x93,\r\n // f32_mul = 0x94,\r\n // f32_div = 0x95,\r\n // f32_min = 0x96,\r\n // f32_max = 0x97,\r\n // f32_copysign = 0x98,\r\n // f64_abs = 0x99,\r\n // f64_neg = 0x9a,\r\n // f64_ceil = 0x9b,\r\n // f64_floor = 0x9c,\r\n // f64_trunc = 0x9d,\r\n // f64_nearest = 0x9e,\r\n // f64_sqrt = 0x9f,\r\n // f64_add = 0xa0,\r\n // f64_sub = 0xa1,\r\n // f64_mul = 0xa2,\r\n // f64_div = 0xa3,\r\n // f64_min = 0xa4,\r\n // f64_max = 0xa5,\r\n // f64_copysign = 0xa6,\r\n // i32_wrap_i64 = 0xa7,\r\n // i32_trunc_s_f32 = 0xa8,\r\n // i32_trunc_u_f32 = 0xa9,\r\n // i32_trunc_s_f64 = 0xaa,\r\n // i32_trunc_u_f64 = 0xab,\r\n // i64_extend_s_i32 = 0xac,\r\n // i64_extend_u_i32 = 0xad,\r\n // i64_trunc_s_f32 = 0xae,\r\n // i64_trunc_u_f32 = 0xaf,\r\n // i64_trunc_s_f64 = 0xb0,\r\n // i64_trunc_u_f64 = 0xb1,\r\n // f32_convert_s_i32 = 0xb2,\r\n // f32_convert_u_i32 = 0xb3,\r\n // f32_convert_s_i64 = 0xb4,\r\n // f32_convert_u_i64 = 0xb5,\r\n // f32_demote_f64 = 0xb6,\r\n // f64_convert_s_i32 = 0xb7,\r\n // f64_convert_u_i32 = 0xb8,\r\n // f64_convert_s_i64 = 0xb9,\r\n // f64_convert_u_i64 = 0xba,\r\n // f64_promote_f32 = 0xbb,\r\n // i32_reinterpret_f32 = 0xbc,\r\n // i64_reinterpret_f64 = 0xbd,\r\n // f32_reinterpret_i32 = 0xbe,\r\n // f64_reinterpret_i64 = 0xbf\r\n})(Opcode = exports.Opcode || (exports.Opcode = {}));\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar common_1 = require(\"./common\");\r\nexports.Type = common_1.Type;\r\nexports.SectionId = common_1.SectionId;\r\nexports.ExternalKind = common_1.ExternalKind;\r\n/** Cached compiled parser. */\r\nvar compiled = null;\r\nif (typeof WASM_DATA !== \"string\")\r\n WASM_DATA = require(\"fs\").readFileSync(__dirname + \"/../build/index.wasm\", \"base64\");\r\n/** Parses the contents of a WebAssembly binary according to the specified options. */\r\nfunction parse(binary, options) {\r\n if (!options)\r\n options = {};\r\n // compile the parser if not yet compiled\r\n if (!compiled)\r\n compiled = new WebAssembly.Module(base64_decode(WASM_DATA));\r\n // use the binary as the parser's memory\r\n var nBytes = binary.length;\r\n var nPages = ((nBytes + 0xffff) & ~0xffff) >> 16;\r\n var memory = new WebAssembly.Memory({ initial: nPages });\r\n var buffer = new Uint8Array(memory.buffer);\r\n buffer.set(binary);\r\n // provide a way to read strings from memory\r\n parse.readString = function (offset, length) { return utf8_read(buffer, offset, offset + length); };\r\n // instantiate the parser and return its exports\r\n var imports = {\r\n env: {\r\n memory: memory\r\n },\r\n options: {}\r\n };\r\n [\"onSection\",\r\n \"onType\",\r\n \"onTypeParam\",\r\n \"onTypeReturn\",\r\n \"onImport\",\r\n \"onFunctionImport\",\r\n \"onTableImport\",\r\n \"onMemoryImport\",\r\n \"onGlobalImport\",\r\n \"onMemory\",\r\n \"onFunction\",\r\n \"onTable\",\r\n \"onGlobal\",\r\n \"onExport\",\r\n \"onStart\",\r\n \"onSourceMappingURL\",\r\n \"onModuleName\",\r\n \"onFunctionName\",\r\n \"onLocalName\"\r\n ].forEach(function (name) { return imports.options[name] = options[name] || function () { }; });\r\n var instance = new WebAssembly.Instance(compiled, imports);\r\n instance.exports.parse(0, nBytes);\r\n}\r\nexports.parse = parse;\r\n// see: https://github.com/dcodeIO/protobuf.js/tree/master/lib/utf8\r\nfunction utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null, chunk = [], i = 0, // char offset\r\n t = 0; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128) {\r\n chunk[i++] = t;\r\n }\r\n else if (t > 191 && t < 224) {\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n }\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n }\r\n else {\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n}\r\n// see: https://github.com/dcodeIO/protobuf.js/tree/master/lib/base64\r\nfunction base64_decode(string) {\r\n var length = string.length;\r\n if (length) {\r\n var n = 0, p = length;\r\n while (--p % 4 > 1 && string.charCodeAt(p) === 61)\r\n ++n;\r\n length = Math.ceil(length * 3) / 4 - n;\r\n }\r\n var buffer = new Uint8Array(length);\r\n var j = 0, o = 0, t = 0;\r\n for (var i = 0, k = string.length; i < k;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error();\r\n switch (j) {\r\n case 0: {\r\n t = c;\r\n j = 1;\r\n break;\r\n }\r\n case 1: {\r\n buffer[o++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n }\r\n case 2: {\r\n buffer[o++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n }\r\n case 3: {\r\n buffer[o++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n }\r\n if (j === 1)\r\n throw Error();\r\n return buffer;\r\n}\r\nvar s64 = new Array(123);\r\nfor (var i = 0; i < 64;)\r\n s64[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://asparse/webpack/universalModuleDefinition","webpack://asparse/webpack/bootstrap","webpack://asparse/./src/index.ts","webpack://asparse/./src/common.ts"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","common_1","Type","SectionId","ExternalKind","compiled","parse","binary","options","WebAssembly","Module","string","length","charCodeAt","Math","ceil","buffer","Uint8Array","j","k","undefined","s64","Error","base64_decode","nBytes","nPages","memory","Memory","initial","set","readString","offset","start","end","parts","chunk","push","String","fromCharCode","apply","slice","join","utf8_read","imports","env","forEach","Instance","Array","NameType","MAX_PAGES","MAX_ELEMS","Opcode"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,eAAAC,IACAD,UAAAH,GACA,iBAAAC,QACAA,QAAA,QAAAD,IAEAD,EAAA,QAAAC,IARA,CASC,oBAAAK,UAAAC,KAAA,WACD,mBCTA,IAAAC,KAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAR,QAGA,IAAAC,EAAAK,EAAAE,IACAC,EAAAD,EACAE,GAAA,EACAV,YAUA,OANAW,EAAAH,GAAAI,KAAAX,EAAAD,QAAAC,IAAAD,QAAAO,GAGAN,EAAAS,GAAA,EAGAT,EAAAD,QA0DA,OArDAO,EAAAM,EAAAF,EAGAJ,EAAAO,EAAAR,EAGAC,EAAAQ,EAAA,SAAAf,EAAAgB,EAAAC,GACAV,EAAAW,EAAAlB,EAAAgB,IACAG,OAAAC,eAAApB,EAAAgB,GAA0CK,YAAA,EAAAC,IAAAL,KAK1CV,EAAAgB,EAAA,SAAAvB,GACA,oBAAAwB,eAAAC,aACAN,OAAAC,eAAApB,EAAAwB,OAAAC,aAAwDC,MAAA,WAExDP,OAAAC,eAAApB,EAAA,cAAiD0B,OAAA,KAQjDnB,EAAAoB,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAAnB,EAAAmB,IACA,EAAAE,EAAA,OAAAF,EACA,KAAAE,GAAA,iBAAAF,QAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAX,OAAAY,OAAA,MAGA,GAFAxB,EAAAgB,EAAAO,GACAX,OAAAC,eAAAU,EAAA,WAAyCT,YAAA,EAAAK,UACzC,EAAAE,GAAA,iBAAAF,EAAA,QAAAM,KAAAN,EAAAnB,EAAAQ,EAAAe,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAvB,EAAA2B,EAAA,SAAAjC,GACA,IAAAgB,EAAAhB,KAAA4B,WACA,WAA2B,OAAA5B,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAM,EAAAQ,EAAAE,EAAA,IAAAA,GACAA,GAIAV,EAAAW,EAAA,SAAAiB,EAAAC,GAAsD,OAAAjB,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAC,IAGtD7B,EAAAgC,EAAA,GAIAhC,IAAAiC,EAAA,kECjFAxC,EAAA6B,YAAA,EACA,IAAAY,EAAelC,EAAQ,GACvBP,EAAA0C,KAAAD,EAAAC,KACA1C,EAAA2C,UAAAF,EAAAE,UACA3C,EAAA4C,aAAAH,EAAAG,aAEA,IAAAC,EAAA,KAgDA7C,EAAA8C,MA5CA,SAAAA,EAAAC,EAAAC,GACAA,IACAA,MAEAH,IACAA,EAAA,IAAAI,YAAAC,OA4EA,SAAAC,GACA,IAAAC,EAAAD,EAAAC,OACA,GAAAA,EAAA,CAEA,IADA,IAAAlB,EAAA,EAAAK,EAAAa,IACAb,EAAA,UAAAY,EAAAE,WAAAd,MACAL,EACAkB,EAAAE,KAAAC,KAAA,EAAAH,GAAA,EAAAlB,EAIA,IAFA,IAAAsB,EAAA,IAAAC,WAAAL,GACAM,EAAA,EAAAxC,EAAA,EAAAS,EAAA,EACAlB,EAAA,EAAAkD,EAAAR,EAAAC,OAAsC3C,EAAAkD,GAAO,CAC7C,IAAA7C,EAAAqC,EAAAE,WAAA5C,KACA,QAAAK,GAAA4C,EAAA,EACA,MACA,QAAAE,KAAA9C,EAAA+C,EAAA/C,IACA,MAAAgD,QACA,OAAAJ,GACA,OACA/B,EAAAb,EACA4C,EAAA,EACA,MAEA,OACAF,EAAAtC,KAAAS,GAAA,MAAAb,IAAA,EACAa,EAAAb,EACA4C,EAAA,EACA,MAEA,OACAF,EAAAtC,MAAA,GAAAS,IAAA,MAAAb,IAAA,EACAa,EAAAb,EACA4C,EAAA,EACA,MAEA,OACAF,EAAAtC,MAAA,EAAAS,IAAA,EAAAb,EACA4C,EAAA,GAKA,OAAAA,EACA,MAAAI,QACA,OAAAN,EAvHAO,CAAwD,04GAExD,IAAAC,EAAAjB,EAAAK,OACAa,GAAAD,EAAA,kBACAE,EAAA,IAAAjB,YAAAkB,QAAyCC,QAAAH,IACzCT,EAAA,IAAAC,WAAAS,EAAAV,QACAA,EAAAa,IAAAtB,GAEAD,EAAAwB,WAAA,SAAAC,EAAAnB,GAAkD,OAiClD,SAAAI,EAAAgB,EAAAC,GAEA,GADAA,EAAAD,EACA,EACA,SAGA,IAFA,IAAAE,EAAA,KAAAC,KAAAlE,EAAA,EACAkB,EAAA,EACA6C,EAAAC,IACA9C,EAAA6B,EAAAgB,MACA,IACAG,EAAAlE,KAAAkB,EAEAA,EAAA,KAAAA,EAAA,IACAgD,EAAAlE,MAAA,GAAAkB,IAAA,KAAA6B,EAAAgB,KAEA7C,EAAA,KAAAA,EAAA,KACAA,IAAA,EAAAA,IAAA,OAAA6B,EAAAgB,OAAA,OAAAhB,EAAAgB,OAAA,KAAAhB,EAAAgB,MAAA,MACAG,EAAAlE,KAAA,OAAAkB,GAAA,IACAgD,EAAAlE,KAAA,YAAAkB,IAGAgD,EAAAlE,MAAA,GAAAkB,IAAA,OAAA6B,EAAAgB,OAAA,KAAAhB,EAAAgB,KAEA/D,EAAA,QACAiE,WAAAE,KAAAC,OAAAC,aAAAC,MAAAF,OAAAF,IACAlE,EAAA,GAGA,OAAAiE,GACAjE,GACAiE,EAAAE,KAAAC,OAAAC,aAAAC,MAAAF,OAAAF,EAAAK,MAAA,EAAAvE,KACAiE,EAAAO,KAAA,KAEAJ,OAAAC,aAAAC,MAAAF,OAAAF,EAAAK,MAAA,EAAAvE,IAjEkDyE,CAAA1B,EAAAe,IAAAnB,IAElD,IAAA+B,GACAC,KACAlB,UAEAlB,aAEA,YACA,SACA,cACA,eACA,WACA,mBACA,gBACA,iBACA,iBACA,WACA,aACA,UACA,WACA,WACA,UACA,qBACA,eACA,iBACA,eACAqC,QAAA,SAAArE,GAA+B,OAAAmE,EAAAnC,QAAAhC,GAAAgC,EAAAhC,IAAA,eAC/B,IAAAiC,YAAAqC,SAAAzC,EAAAsC,GACAnF,QAAA8C,MAAA,EAAAkB,IAqFA,IADA,IAAAH,EAAA,IAAA0B,MAAA,KACA9E,EAAA,EAAeA,EAAA,IACfoD,EAAApD,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,EAAAA,EAAA,OAAAA,kCCzIAT,EAAA6B,YAAA,EAGA,SAAAa,GACAA,IAAA,eACAA,IAAA,eACAA,IAAA,eACAA,IAAA,eACAA,IAAA,uBACAA,IAAA,gBACAA,IAAA,gBAPA,CAQC1C,EAAA0C,OAAA1C,EAAA0C,UAGD,SAAAC,GACAA,IAAA,mBACAA,IAAA,eACAA,IAAA,mBACAA,IAAA,uBACAA,IAAA,iBACAA,IAAA,mBACAA,IAAA,mBACAA,IAAA,mBACAA,IAAA,iBACAA,IAAA,qBACAA,IAAA,gBACAA,IAAA,gBAZA,CAaC3C,EAAA2C,YAAA3C,EAAA2C,eAGD,SAAAC,GACAA,IAAA,uBACAA,IAAA,iBACAA,IAAA,mBACAA,IAAA,mBAJA,CAKC5C,EAAA4C,eAAA5C,EAAA4C,kBAGD,SAAA4C,GACAA,IAAA,mBACAA,IAAA,uBACAA,IAAA,iBAHA,CAICxF,EAAAwF,WAAAxF,EAAAwF,cAEDxF,EAAAyF,UAAA,MAEAzF,EAAA0F,UAAA,WAGA,SAAAC,GAOAA,IAAA,cAYAA,IAAA,4BA2BAA,IAAA,0BACAA,IAAA,0BACAA,IAAA,0BACAA,IAAA,0BAjDA,CA6KC3F,EAAA2F,SAAA3F,EAAA2F","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"asparse\"] = factory();\n\telse\n\t\troot[\"asparse\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar common_1 = require(\"./common\");\r\nexports.Type = common_1.Type;\r\nexports.SectionId = common_1.SectionId;\r\nexports.ExternalKind = common_1.ExternalKind;\r\n/** Cached compiled parser. */\r\nvar compiled = null;\r\nif (typeof WASM_DATA !== \"string\")\r\n WASM_DATA = require(\"fs\").readFileSync(__dirname + \"/../build/index.wasm\", \"base64\");\r\n/** Parses the contents of a WebAssembly binary according to the specified options. */\r\nfunction parse(binary, options) {\r\n if (!options)\r\n options = {};\r\n // compile the parser if not yet compiled\r\n if (!compiled)\r\n compiled = new WebAssembly.Module(base64_decode(WASM_DATA));\r\n // use the binary as the parser's memory\r\n var nBytes = binary.length;\r\n var nPages = ((nBytes + 0xffff) & ~0xffff) >> 16;\r\n var memory = new WebAssembly.Memory({ initial: nPages });\r\n var buffer = new Uint8Array(memory.buffer);\r\n buffer.set(binary);\r\n // provide a way to read strings from memory\r\n parse.readString = function (offset, length) { return utf8_read(buffer, offset, offset + length); };\r\n // instantiate the parser and return its exports\r\n var imports = {\r\n env: {\r\n memory: memory\r\n },\r\n options: {}\r\n };\r\n [\"onSection\",\r\n \"onType\",\r\n \"onTypeParam\",\r\n \"onTypeReturn\",\r\n \"onImport\",\r\n \"onFunctionImport\",\r\n \"onTableImport\",\r\n \"onMemoryImport\",\r\n \"onGlobalImport\",\r\n \"onMemory\",\r\n \"onFunction\",\r\n \"onTable\",\r\n \"onGlobal\",\r\n \"onExport\",\r\n \"onStart\",\r\n \"onSourceMappingURL\",\r\n \"onModuleName\",\r\n \"onFunctionName\",\r\n \"onLocalName\"\r\n ].forEach(function (name) { return imports.options[name] = options[name] || function () { }; });\r\n var instance = new WebAssembly.Instance(compiled, imports);\r\n instance.exports.parse(0, nBytes);\r\n}\r\nexports.parse = parse;\r\n// see: https://github.com/dcodeIO/protobuf.js/tree/master/lib/utf8\r\nfunction utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null, chunk = [], i = 0, // char offset\r\n t = 0; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128) {\r\n chunk[i++] = t;\r\n }\r\n else if (t > 191 && t < 224) {\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n }\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n }\r\n else {\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n}\r\n// see: https://github.com/dcodeIO/protobuf.js/tree/master/lib/base64\r\nfunction base64_decode(string) {\r\n var length = string.length;\r\n if (length) {\r\n var n = 0, p = length;\r\n while (--p % 4 > 1 && string.charCodeAt(p) === 61)\r\n ++n;\r\n length = Math.ceil(length * 3) / 4 - n;\r\n }\r\n var buffer = new Uint8Array(length);\r\n var j = 0, o = 0, t = 0;\r\n for (var i = 0, k = string.length; i < k;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error();\r\n switch (j) {\r\n case 0: {\r\n t = c;\r\n j = 1;\r\n break;\r\n }\r\n case 1: {\r\n buffer[o++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n }\r\n case 2: {\r\n buffer[o++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n }\r\n case 3: {\r\n buffer[o++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n }\r\n if (j === 1)\r\n throw Error();\r\n return buffer;\r\n}\r\nvar s64 = new Array(123);\r\nfor (var i = 0; i < 64;)\r\n s64[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n","\"use strict\";\r\n/** Common constants shared between AssemblyScript and TypeScript. */\r\nexports.__esModule = true;\r\n/** WebAssembly types. */\r\nvar Type;\r\n(function (Type) {\r\n Type[Type[\"i32\"] = 127] = \"i32\";\r\n Type[Type[\"i64\"] = 126] = \"i64\";\r\n Type[Type[\"f32\"] = 125] = \"f32\";\r\n Type[Type[\"f64\"] = 124] = \"f64\";\r\n Type[Type[\"anyfunc\"] = 112] = \"anyfunc\";\r\n Type[Type[\"func\"] = 96] = \"func\";\r\n Type[Type[\"none\"] = 64] = \"none\";\r\n})(Type = exports.Type || (exports.Type = {}));\r\n/** WebAssembly section ids. */\r\nvar SectionId;\r\n(function (SectionId) {\r\n SectionId[SectionId[\"Custom\"] = 0] = \"Custom\";\r\n SectionId[SectionId[\"Type\"] = 1] = \"Type\";\r\n SectionId[SectionId[\"Import\"] = 2] = \"Import\";\r\n SectionId[SectionId[\"Function\"] = 3] = \"Function\";\r\n SectionId[SectionId[\"Table\"] = 4] = \"Table\";\r\n SectionId[SectionId[\"Memory\"] = 5] = \"Memory\";\r\n SectionId[SectionId[\"Global\"] = 6] = \"Global\";\r\n SectionId[SectionId[\"Export\"] = 7] = \"Export\";\r\n SectionId[SectionId[\"Start\"] = 8] = \"Start\";\r\n SectionId[SectionId[\"Element\"] = 9] = \"Element\";\r\n SectionId[SectionId[\"Code\"] = 10] = \"Code\";\r\n SectionId[SectionId[\"Data\"] = 11] = \"Data\";\r\n})(SectionId = exports.SectionId || (exports.SectionId = {}));\r\n/** WebAssembly external kinds. */\r\nvar ExternalKind;\r\n(function (ExternalKind) {\r\n ExternalKind[ExternalKind[\"Function\"] = 0] = \"Function\";\r\n ExternalKind[ExternalKind[\"Table\"] = 1] = \"Table\";\r\n ExternalKind[ExternalKind[\"Memory\"] = 2] = \"Memory\";\r\n ExternalKind[ExternalKind[\"Global\"] = 3] = \"Global\";\r\n})(ExternalKind = exports.ExternalKind || (exports.ExternalKind = {}));\r\n/** Name section types. */\r\nvar NameType;\r\n(function (NameType) {\r\n NameType[NameType[\"Module\"] = 0] = \"Module\";\r\n NameType[NameType[\"Function\"] = 1] = \"Function\";\r\n NameType[NameType[\"Local\"] = 2] = \"Local\";\r\n})(NameType = exports.NameType || (exports.NameType = {}));\r\n/** Maximum number of memory pages. */\r\nexports.MAX_PAGES = 0xffff;\r\n/** Maximum number of table elements. */\r\nexports.MAX_ELEMS = 0xffffffff;\r\n/** WebAssembly opcodes. */\r\nvar Opcode;\r\n(function (Opcode) {\r\n // unreachable = 0x00,\r\n // nop = 0x01,\r\n // block = 0x02,\r\n // loop = 0x03,\r\n // if_ = 0x04,\r\n // else_ = 0x05,\r\n Opcode[Opcode[\"end\"] = 11] = \"end\";\r\n // br = 0x0c,\r\n // br_if = 0x0d,\r\n // br_table = 0x0e,\r\n // return_ = 0x0f,\r\n // call = 0x10,\r\n // call_indirect = 0x11,\r\n // drop = 0x1a,\r\n // select = 0x1b,\r\n // get_local = 0x20,\r\n // set_local = 0x21,\r\n // tee_local = 0x22,\r\n Opcode[Opcode[\"get_global\"] = 35] = \"get_global\";\r\n // set_global = 0x24,\r\n // i32_load = 0x28,\r\n // i64_load = 0x29,\r\n // f32_load = 0x2a,\r\n // f64_load = 0x2b,\r\n // i32_load8_s = 0x2c,\r\n // i32_load8_u = 0x2d,\r\n // i32_load16_s = 0x2e,\r\n // i32_load16_u = 0x2f,\r\n // i64_load8_s = 0x30,\r\n // i64_load8_u = 0x31,\r\n // i64_load16_s = 0x32,\r\n // i64_load16_u = 0x33,\r\n // i64_load32_s = 0x34,\r\n // i64_load32_u = 0x35,\r\n // i32_store = 0x36,\r\n // i64_store = 0x37,\r\n // f32_store = 0x38,\r\n // f64_store = 0x39,\r\n // i32_store8 = 0x3a,\r\n // i32_store16 = 0x3b,\r\n // i64_store8 = 0x3c,\r\n // i64_store16 = 0x3d,\r\n // i64_store32 = 0x3e,\r\n // current_memory = 0x3f,\r\n // grow_memory = 0x40,\r\n Opcode[Opcode[\"i32_const\"] = 65] = \"i32_const\";\r\n Opcode[Opcode[\"i64_const\"] = 66] = \"i64_const\";\r\n Opcode[Opcode[\"f32_const\"] = 67] = \"f32_const\";\r\n Opcode[Opcode[\"f64_const\"] = 68] = \"f64_const\";\r\n // i32_eqz = 0x45,\r\n // i32_eq = 0x46,\r\n // i32_ne = 0x47,\r\n // i32_lt_s = 0x48,\r\n // i32_lt_u = 0x49,\r\n // i32_gt_s = 0x4a,\r\n // i32_gt_u = 0x4b,\r\n // i32_le_s = 0x4c,\r\n // i32_le_u = 0x4d,\r\n // i32_ge_s = 0x4e,\r\n // i32_ge_u = 0x4f,\r\n // i64_eqz = 0x50,\r\n // i64_eq = 0x51,\r\n // i64_ne = 0x52,\r\n // i64_lt_s = 0x53,\r\n // i64_lt_u = 0x54,\r\n // i64_gt_s = 0x55,\r\n // i64_gt_u = 0x56,\r\n // i64_le_s = 0x57,\r\n // i64_le_u = 0x58,\r\n // i64_ge_s = 0x59,\r\n // i64_ge_u = 0x5a,\r\n // f32_eq = 0x5b,\r\n // f32_ne = 0x5c,\r\n // f32_lt = 0x5d,\r\n // f32_gt = 0x5e,\r\n // f32_le = 0x5f,\r\n // f32_ge = 0x60,\r\n // f64_eq = 0x61,\r\n // f64_ne = 0x62,\r\n // f64_lt = 0x63,\r\n // f64_gt = 0x64,\r\n // f64_le = 0x65,\r\n // f64_ge = 0x66,\r\n // i32_clz = 0x67,\r\n // i32_ctz = 0x68,\r\n // i32_popcnt = 0x69,\r\n // i32_add = 0x6a,\r\n // i32_sub = 0x6b,\r\n // i32_mul = 0x6c,\r\n // i32_div_s = 0x6d,\r\n // i32_div_u = 0x6e,\r\n // i32_rem_s = 0x6f,\r\n // i32_rem_u = 0x70,\r\n // i32_and = 0x71,\r\n // i32_or = 0x72,\r\n // i32_xor = 0x73,\r\n // i32_shl = 0x74,\r\n // i32_shr_s = 0x75,\r\n // i32_shr_u = 0x76,\r\n // i32_rotl = 0x77,\r\n // i32_rotr = 0x78,\r\n // i64_clz = 0x79,\r\n // i64_ctz = 0x7a,\r\n // i64_popcnt = 0x7b,\r\n // i64_add = 0x7c,\r\n // i64_sub = 0x7d,\r\n // i64_mul = 0x7e,\r\n // i64_div_s = 0x7f,\r\n // i64_div_u = 0x80,\r\n // i64_rem_s = 0x81,\r\n // i64_rem_u = 0x82,\r\n // i64_and = 0x83,\r\n // i64_or = 0x84,\r\n // i64_xor = 0x85,\r\n // i64_shl = 0x86,\r\n // i64_shr_s = 0x87,\r\n // i64_shr_u = 0x88,\r\n // i64_rotl = 0x89,\r\n // i64_rotr = 0x8a,\r\n // f32_abs = 0x8b,\r\n // f32_neg = 0x8c,\r\n // f32_ceil = 0x8d,\r\n // f32_floor = 0x8e,\r\n // f32_trunc = 0x8f,\r\n // f32_nearest = 0x90,\r\n // f32_sqrt = 0x91,\r\n // f32_add = 0x92,\r\n // f32_sub = 0x93,\r\n // f32_mul = 0x94,\r\n // f32_div = 0x95,\r\n // f32_min = 0x96,\r\n // f32_max = 0x97,\r\n // f32_copysign = 0x98,\r\n // f64_abs = 0x99,\r\n // f64_neg = 0x9a,\r\n // f64_ceil = 0x9b,\r\n // f64_floor = 0x9c,\r\n // f64_trunc = 0x9d,\r\n // f64_nearest = 0x9e,\r\n // f64_sqrt = 0x9f,\r\n // f64_add = 0xa0,\r\n // f64_sub = 0xa1,\r\n // f64_mul = 0xa2,\r\n // f64_div = 0xa3,\r\n // f64_min = 0xa4,\r\n // f64_max = 0xa5,\r\n // f64_copysign = 0xa6,\r\n // i32_wrap_i64 = 0xa7,\r\n // i32_trunc_s_f32 = 0xa8,\r\n // i32_trunc_u_f32 = 0xa9,\r\n // i32_trunc_s_f64 = 0xaa,\r\n // i32_trunc_u_f64 = 0xab,\r\n // i64_extend_s_i32 = 0xac,\r\n // i64_extend_u_i32 = 0xad,\r\n // i64_trunc_s_f32 = 0xae,\r\n // i64_trunc_u_f32 = 0xaf,\r\n // i64_trunc_s_f64 = 0xb0,\r\n // i64_trunc_u_f64 = 0xb1,\r\n // f32_convert_s_i32 = 0xb2,\r\n // f32_convert_u_i32 = 0xb3,\r\n // f32_convert_s_i64 = 0xb4,\r\n // f32_convert_u_i64 = 0xb5,\r\n // f32_demote_f64 = 0xb6,\r\n // f64_convert_s_i32 = 0xb7,\r\n // f64_convert_u_i32 = 0xb8,\r\n // f64_convert_s_i64 = 0xb9,\r\n // f64_convert_u_i64 = 0xba,\r\n // f64_promote_f32 = 0xbb,\r\n // i32_reinterpret_f32 = 0xbc,\r\n // i64_reinterpret_f64 = 0xbd,\r\n // f32_reinterpret_i32 = 0xbe,\r\n // f64_reinterpret_i64 = 0xbf\r\n})(Opcode = exports.Opcode || (exports.Opcode = {}));\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ed01cd91..28aa2d66 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,23 +11,23 @@ }, "@types/events": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", "dev": true }, "@types/fs-extra": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", - "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.4.tgz", + "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==", "dev": true, "requires": { "@types/node": "*" } }, "@types/glob": { - "version": "5.0.35", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", - "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "dev": true, "requires": { "@types/events": "*", @@ -36,27 +36,27 @@ } }, "@types/handlebars": { - "version": "4.0.36", - "resolved": "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.0.36.tgz", - "integrity": "sha512-LjNiTX7TY7wtuC6y3QwC93hKMuqYhgV9A1uXBKNvZtVC8ZvyWAjZkJ5BvT0K7RKqORRYRLMrqCxpw5RgS+MdrQ==", + "version": "4.0.39", + "resolved": "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.0.39.tgz", + "integrity": "sha512-vjaS7Q0dVqFp85QhyPSZqDKnTTCemcSHNHFvDdalO1s0Ifz5KuE64jQD5xoUkfdWwF4WpqdJEl7LsWH8rzhKJA==", "dev": true }, "@types/highlight.js": { - "version": "9.12.2", - "resolved": "https://registry.npmjs.org/@types/highlight.js/-/highlight.js-9.12.2.tgz", - "integrity": "sha512-y5x0XD/WXDaGSyiTaTcKS4FurULJtSiYbGTeQd0m2LYZGBcZZ/7fM6t5H/DzeUF+kv8y6UfmF6yJABQsHcp9VQ==", + "version": "9.12.3", + "resolved": "https://registry.npmjs.org/@types/highlight.js/-/highlight.js-9.12.3.tgz", + "integrity": "sha512-pGF/zvYOACZ/gLGWdQH8zSwteQS1epp68yRcVLJMgUck/MjEn/FBYmPub9pXT8C1e4a8YZfHo1CKyV8q1vKUnQ==", "dev": true }, "@types/lodash": { - "version": "4.14.104", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.104.tgz", - "integrity": "sha512-ufQcVg4daO8xQ5kopxRHanqFdL4AI7ondQkV+2f+7mz3gvp0LkBx2zBRC6hfs3T87mzQFmf5Fck7Fi145Ul6NQ==", + "version": "4.14.117", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.117.tgz", + "integrity": "sha512-xyf2m6tRbz8qQKcxYZa7PA4SllYcay+eh25DN3jmNYY6gSTL7Htc/bttVdkqj2wfJGbeWlQiX8pIyJpKU+tubw==", "dev": true }, "@types/marked": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.3.0.tgz", - "integrity": "sha512-CSf9YWJdX1DkTNu9zcNtdCcn6hkRtB5ILjbhRId4ZOQqx30fXmdecuaXhugQL6eyrhuXtaHJ7PHI+Vm7k9ZJjg==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.4.2.tgz", + "integrity": "sha512-cDB930/7MbzaGF6U3IwSQp6XBru8xWajF5PV2YZZeV8DyiliTuld11afVztGI9+yJZ29il5E+NpGA6ooV/Cjkg==", "dev": true }, "@types/minimatch": { @@ -66,15 +66,15 @@ "dev": true }, "@types/node": { - "version": "10.9.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.9.4.tgz", - "integrity": "sha512-fCHV45gS+m3hH17zgkgADUSi2RR1Vht6wOZ0jyHP8rjiQra9f+mIcgwPQHllmDocYOstIEbKlxbFDYlgrTPYqw==", + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.1.tgz", + "integrity": "sha512-i1sl+WCX2OCHeUi9oi7PiCNUtYFrpWhpcx878vpeq/tlZTKzcFdHePlyFHVbWqeuKN0SRPl/9ZFDSTsfv9h7VQ==", "dev": true }, "@types/shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha512-M2giRw93PxKS7YjU6GZjtdV9HASdB7TWqizBXe4Ju7AqbKlWvTr0gNO92XH56D/gMxqD/jNHLNfC5hA34yGqrQ==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.0.tgz", + "integrity": "sha512-vs1hCC8RxLHRu2bwumNyYRNrU3o8BtZhLysH5A4I98iYmA2APl6R3uNQb5ihl+WiwH0xdC9LLO+vRrXLs/Kyxg==", "dev": true, "requires": { "@types/glob": "*", @@ -82,179 +82,174 @@ } }, "@webassemblyjs/ast": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.6.tgz", - "integrity": "sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.10.tgz", + "integrity": "sha512-wTUeaByYN2EA6qVqhbgavtGc7fLTOx0glG2IBsFlrFG51uXIGlYBTyIZMf4SPLo3v1bgV/7lBN3l7Z0R6Hswew==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/wast-parser": "1.7.6", - "mamacro": "^0.0.3" + "@webassemblyjs/helper-module-context": "1.7.10", + "@webassemblyjs/helper-wasm-bytecode": "1.7.10", + "@webassemblyjs/wast-parser": "1.7.10" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz", - "integrity": "sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.10.tgz", + "integrity": "sha512-gMsGbI6I3p/P1xL2UxqhNh1ga2HCsx5VBB2i5VvJFAaqAjd2PBTRULc3BpTydabUQEGlaZCzEUQhLoLG7TvEYQ==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz", - "integrity": "sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.10.tgz", + "integrity": "sha512-DoYRlPWtuw3yd5BOr9XhtrmB6X1enYF0/54yNvQWGXZEPDF5PJVNI7zQ7gkcKfTESzp8bIBWailaFXEK/jjCsw==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz", - "integrity": "sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.10.tgz", + "integrity": "sha512-+RMU3dt/dPh4EpVX4u5jxsOlw22tp3zjqE0m3ftU2tsYxnPULb4cyHlgaNd2KoWuwasCQqn8Mhr+TTdbtj3LlA==", "dev": true }, "@webassemblyjs/helper-code-frame": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz", - "integrity": "sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.10.tgz", + "integrity": "sha512-UiytbpKAULOEab2hUZK2ywXen4gWJVrgxtwY3Kn+eZaaSWaRM8z/7dAXRSoamhKFiBh1uaqxzE/XD9BLlug3gw==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.7.6" + "@webassemblyjs/wast-printer": "1.7.10" } }, "@webassemblyjs/helper-fsm": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz", - "integrity": "sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.10.tgz", + "integrity": "sha512-w2vDtUK9xeSRtt5+RnnlRCI7wHEvLjF0XdnxJpgx+LJOvklTZPqWkuy/NhwHSLP19sm9H8dWxKeReMR7sCkGZA==", "dev": true }, "@webassemblyjs/helper-module-context": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz", - "integrity": "sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw==", - "dev": true, - "requires": { - "mamacro": "^0.0.3" - } + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.10.tgz", + "integrity": "sha512-yE5x/LzZ3XdPdREmJijxzfrf+BDRewvO0zl8kvORgSWmxpRrkqY39KZSq6TSgIWBxkK4SrzlS3BsMCv2s1FpsQ==", + "dev": true }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz", - "integrity": "sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.10.tgz", + "integrity": "sha512-u5qy4SJ/OrxKxZqJ9N3qH4ZQgHaAzsopsYwLvoWJY6Q33r8PhT3VPyNMaJ7ZFoqzBnZlCcS/0f4Sp8WBxylXfg==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz", - "integrity": "sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.10.tgz", + "integrity": "sha512-Ecvww6sCkcjatcyctUrn22neSJHLN/TTzolMGG/N7S9rpbsTZ8c6Bl98GpSpV77EvzNijiNRHBG0+JO99qKz6g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-buffer": "1.7.10", + "@webassemblyjs/helper-wasm-bytecode": "1.7.10", + "@webassemblyjs/wasm-gen": "1.7.10" } }, "@webassemblyjs/ieee754": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz", - "integrity": "sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.10.tgz", + "integrity": "sha512-HRcWcY+YWt4+s/CvQn+vnSPfRaD4KkuzQFt5MNaELXXHSjelHlSEA8ZcqT69q0GTIuLWZ6JaoKar4yWHVpZHsQ==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.6.tgz", - "integrity": "sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.10.tgz", + "integrity": "sha512-og8MciYlA8hvzCLR71hCuZKPbVBfLQeHv7ImKZ4nlyxrYbG7uJHYtHiHu6OV9SqrGuD03H/HtXC4Bgdjfm9FHw==", "dev": true, "requires": { "@xtuc/long": "4.2.1" } }, "@webassemblyjs/utf8": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.6.tgz", - "integrity": "sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.10.tgz", + "integrity": "sha512-Ng6Pxv6siyZp635xCSnH3mKmIFgqWPCcGdoo0GBYgyGdxu7cUj4agV7Uu1a8REP66UYUFXJLudeGgd4RvuJAnQ==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz", - "integrity": "sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.10.tgz", + "integrity": "sha512-e9RZFQlb+ZuYcKRcW9yl+mqX/Ycj9+3/+ppDI8nEE/NCY6FoK8f3dKBcfubYV/HZn44b+ND4hjh+4BYBt+sDnA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/helper-wasm-section": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6", - "@webassemblyjs/wasm-opt": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6", - "@webassemblyjs/wast-printer": "1.7.6" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-buffer": "1.7.10", + "@webassemblyjs/helper-wasm-bytecode": "1.7.10", + "@webassemblyjs/helper-wasm-section": "1.7.10", + "@webassemblyjs/wasm-gen": "1.7.10", + "@webassemblyjs/wasm-opt": "1.7.10", + "@webassemblyjs/wasm-parser": "1.7.10", + "@webassemblyjs/wast-printer": "1.7.10" } }, "@webassemblyjs/wasm-gen": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz", - "integrity": "sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.10.tgz", + "integrity": "sha512-M0lb6cO2Y0PzDye/L39PqwV+jvO+2YxEG5ax+7dgq7EwXdAlpOMx1jxyXJTScQoeTpzOPIb+fLgX/IkLF8h2yw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/ieee754": "1.7.6", - "@webassemblyjs/leb128": "1.7.6", - "@webassemblyjs/utf8": "1.7.6" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-wasm-bytecode": "1.7.10", + "@webassemblyjs/ieee754": "1.7.10", + "@webassemblyjs/leb128": "1.7.10", + "@webassemblyjs/utf8": "1.7.10" } }, "@webassemblyjs/wasm-opt": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz", - "integrity": "sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.10.tgz", + "integrity": "sha512-R66IHGCdicgF5ZliN10yn5HaC7vwYAqrSVJGjtJJQp5+QNPBye6heWdVH/at40uh0uoaDN/UVUfXK0gvuUqtVg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-buffer": "1.7.10", + "@webassemblyjs/wasm-gen": "1.7.10", + "@webassemblyjs/wasm-parser": "1.7.10" } }, "@webassemblyjs/wasm-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz", - "integrity": "sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.10.tgz", + "integrity": "sha512-AEv8mkXVK63n/iDR3T693EzoGPnNAwKwT3iHmKJNBrrALAhhEjuPzo/lTE4U7LquEwyvg5nneSNdTdgrBaGJcA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-api-error": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/ieee754": "1.7.6", - "@webassemblyjs/leb128": "1.7.6", - "@webassemblyjs/utf8": "1.7.6" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-api-error": "1.7.10", + "@webassemblyjs/helper-wasm-bytecode": "1.7.10", + "@webassemblyjs/ieee754": "1.7.10", + "@webassemblyjs/leb128": "1.7.10", + "@webassemblyjs/utf8": "1.7.10" } }, "@webassemblyjs/wast-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz", - "integrity": "sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.10.tgz", + "integrity": "sha512-YTPEtOBljkCL0VjDp4sHe22dAYSm3ZwdJ9+2NTGdtC7ayNvuip1wAhaAS8Zt9Q6SW9E5Jf5PX7YE3XWlrzR9cw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/floating-point-hex-parser": "1.7.6", - "@webassemblyjs/helper-api-error": "1.7.6", - "@webassemblyjs/helper-code-frame": "1.7.6", - "@webassemblyjs/helper-fsm": "1.7.6", - "@xtuc/long": "4.2.1", - "mamacro": "^0.0.3" + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/floating-point-hex-parser": "1.7.10", + "@webassemblyjs/helper-api-error": "1.7.10", + "@webassemblyjs/helper-code-frame": "1.7.10", + "@webassemblyjs/helper-fsm": "1.7.10", + "@xtuc/long": "4.2.1" } }, "@webassemblyjs/wast-printer": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz", - "integrity": "sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.10.tgz", + "integrity": "sha512-mJ3QKWtCchL1vhU/kZlJnLPuQZnlDOdZsyP0bbLWPGdYsQDnSBvyTLhzwBA3QAMlzEL9V4JHygEmK6/OTEyytA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/wast-parser": "1.7.6", + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/wast-parser": "1.7.10", "@xtuc/long": "4.2.1" } }, @@ -286,9 +281,9 @@ } }, "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", + "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -303,40 +298,6 @@ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "dev": true }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -451,10 +412,13 @@ "dev": true }, "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } }, "async-each": { "version": "1.0.1", @@ -579,15 +543,15 @@ "dev": true }, "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", "dev": true }, "binaryen": { - "version": "51.0.0", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-51.0.0.tgz", - "integrity": "sha512-Iop30WDVekq1MV2ygWHvL0mzSUQLH7m8VB3DHpU3MTdQoPj8LoRWK4U5b5nAlHLYYU1v/tIkdmiPrGgx8ANSfw==" + "version": "52.0.0-nightly.20181104", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-52.0.0-nightly.20181104.tgz", + "integrity": "sha512-vmo9zN26kfulEFRWe0okJ2eKS6tef0sIE8bnzPyRbK/OlDRMaYYnmiYbKYwTtCe8CdO3zxDrpWTMXrI426UaZw==" }, "bluebird": { "version": "3.5.2", @@ -646,9 +610,9 @@ "dev": true }, "browser-process-hrtime": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", - "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, "browserify-aes": { @@ -801,17 +765,6 @@ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, "chalk": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", @@ -823,12 +776,6 @@ "supports-color": "^5.3.0" } }, - "chardet": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz", - "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", - "dev": true - }, "chokidar": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", @@ -851,9 +798,9 @@ } }, "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "dev": true }, "chrome-trace-event": { @@ -898,21 +845,6 @@ } } }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", @@ -1099,9 +1031,9 @@ }, "dependencies": { "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "dev": true } } @@ -1147,11 +1079,13 @@ } }, "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", "dev": true, - "optional": true + "requires": { + "xregexp": "4.0.0" + } }, "decode-uri-component": { "version": "0.2.0", @@ -1234,9 +1168,9 @@ "dev": true }, "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", + "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", "dev": true, "requires": { "end-of-stream": "^1.0.0", @@ -1276,9 +1210,9 @@ } }, "enhanced-resolve": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz", - "integrity": "sha512-jox/62b2GofV1qTUQTMPEJSDIGycS43evqYzD/KVtEb9OCoki9cnacUPxCrZa7JfPzZSYOCZhu9O9luaMxAX8g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -1340,7 +1274,7 @@ }, "events": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz", "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", "dev": true }, @@ -1355,31 +1289,18 @@ } }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dev": true, "requires": { - "cross-spawn": "^5.0.1", + "cross-spawn": "^6.0.0", "get-stream": "^3.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } } }, "expand-brackets": { @@ -1438,17 +1359,6 @@ } } }, - "external-editor": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz", - "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", - "dev": true, - "requires": { - "chardet": "^0.5.0", - "iconv-lite": "^0.4.22", - "tmp": "^0.0.33" - } - }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -1526,15 +1436,6 @@ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -1614,9 +1515,9 @@ } }, "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", + "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -2178,7 +2079,7 @@ }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, @@ -2235,85 +2136,22 @@ "dev": true }, "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", + "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", "dev": true, "requires": { - "async": "^1.4.0", + "async": "^2.5.0", "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "optional": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true - } - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "optional": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -2385,9 +2223,9 @@ } }, "highlight.js": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", - "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=", + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz", + "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==", "dev": true }, "hmac-drbg": { @@ -2407,15 +2245,6 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, "ieee754": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", @@ -2429,13 +2258,67 @@ "dev": true }, "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "dev": true, "requires": { - "pkg-dir": "^2.0.0", + "pkg-dir": "^3.0.0", "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } } }, "imurmurhash": { @@ -2464,44 +2347,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "inquirer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.0.0.tgz", - "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "interpret": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", @@ -2509,9 +2354,9 @@ "dev": true }, "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, "is-accessor-descriptor": { @@ -2644,12 +2489,6 @@ "isobject": "^3.0.1" } }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -2710,7 +2549,7 @@ }, "json5": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, @@ -2729,26 +2568,19 @@ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "optional": true - }, "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "^2.0.0" } }, "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", + "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", "dev": true }, "loader-utils": { @@ -2773,9 +2605,9 @@ } }, "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, "lodash.debounce": { @@ -2789,12 +2621,6 @@ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, "lru-cache": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", @@ -2820,11 +2646,14 @@ "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", "dev": true }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true + "map-age-cleaner": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz", + "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } }, "map-cache": { "version": "0.2.2", @@ -2842,28 +2671,31 @@ } }, "marked": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.17.tgz", - "integrity": "sha512-+AKbNsjZl6jFfLPwHhWmGTqE009wTKn3RTmn9K8oUKHrX/abPJjtcRtXpYB/FFrwPJRUA86LX/de3T0knkPCmQ==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz", + "integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw==", "dev": true }, "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "requires": { "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", + "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^1.1.0" } }, "memory-fs": { @@ -3015,16 +2847,10 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", "dev": true, "optional": true }, @@ -3048,15 +2874,15 @@ } }, "neo-async": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", - "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", "dev": true }, "nice-try": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", - "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "node-libs-browser": { @@ -3179,15 +3005,6 @@ "wrappy": "1" } }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, "optimist": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", @@ -3200,7 +3017,7 @@ "dependencies": { "minimist": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", "dev": true } @@ -3213,20 +3030,20 @@ "dev": true }, "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", + "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "^0.10.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", "dev": true }, "p-finally": { @@ -3235,6 +3052,12 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -3331,9 +3154,9 @@ "dev": true }, "pbkdf2": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", - "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -3377,9 +3200,9 @@ "dev": true }, "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", + "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", "dev": true }, "promise-inflight": { @@ -3401,16 +3224,17 @@ "dev": true }, "public-encrypt": { - "version": "4.0.2", - "resolved": "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", - "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1" + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "pump": { @@ -3473,7 +3297,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { @@ -3576,32 +3400,12 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", @@ -3621,15 +3425,6 @@ "inherits": "^2.0.1" } }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, "run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", @@ -3639,15 +3434,6 @@ "aproba": "^1.1.1" } }, - "rxjs": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", - "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -3656,19 +3442,13 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { "ret": "~0.1.10" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, "schema-utils": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", @@ -3752,9 +3532,9 @@ "dev": true }, "shelljs": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.1.tgz", - "integrity": "sha512-YA/iYtZpzFe5HyWVGrb02FjPxc4EMCfpoU/Phg9fQoyMC72u9598OUBrsU8IrtwAKG0tO8IYaqbaLIw+k3IRGA==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz", + "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==", "dev": true, "requires": { "glob": "^7.0.0", @@ -3876,9 +3656,9 @@ } }, "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, "source-map": { @@ -4055,7 +3835,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, @@ -4069,15 +3849,9 @@ } }, "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.0.tgz", + "integrity": "sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==", "dev": true }, "through2": { @@ -4099,15 +3873,6 @@ "setimmediate": "^1.0.4" } }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -4157,9 +3922,9 @@ } }, "ts-loader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.5.0.tgz", - "integrity": "sha512-ihgVaSmgrX4crGV4n7yuoHPoCHbDzj9aepCZR9TgIx4SgJ9gdnB6xLHgUBb7bsFM/f0K6x9iXa65KY/Fu1Klkw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.3.0.tgz", + "integrity": "sha512-lGSNs7szRFj/rK9T1EQuayE3QNLg6izDUxt5jpmq0RG1rU2bapAt7E7uLckLCUPeO1jwxCiet2oRaWovc53UAg==", "dev": true, "requires": { "chalk": "^2.3.0", @@ -4233,36 +3998,28 @@ "dev": true }, "typedoc": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.11.1.tgz", - "integrity": "sha512-jdNIoHm5wkZqxQTe/g9AQ3LKnZyrzHXqu6A/c9GUOeJyBWLxNr7/Dm3rwFvLksuxRNwTvY/0HRDU9sJTa9WQSg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.13.0.tgz", + "integrity": "sha512-jQWtvPcV+0fiLZAXFEe70v5gqjDO6pJYJz4mlTtmGJeW2KRoIU/BEfktma6Uj8Xii7UakuZjbxFewl3UYOkU/w==", "dev": true, "requires": { - "@types/fs-extra": "5.0.1", - "@types/handlebars": "4.0.36", - "@types/highlight.js": "9.12.2", - "@types/lodash": "4.14.104", - "@types/marked": "0.3.0", + "@types/fs-extra": "^5.0.3", + "@types/handlebars": "^4.0.38", + "@types/highlight.js": "^9.12.3", + "@types/lodash": "^4.14.110", + "@types/marked": "^0.4.0", "@types/minimatch": "3.0.3", - "@types/shelljs": "0.7.8", - "fs-extra": "^5.0.0", + "@types/shelljs": "^0.8.0", + "fs-extra": "^7.0.0", "handlebars": "^4.0.6", "highlight.js": "^9.0.0", - "lodash": "^4.17.5", - "marked": "^0.3.17", + "lodash": "^4.17.10", + "marked": "^0.4.0", "minimatch": "^3.0.0", "progress": "^2.0.0", - "shelljs": "^0.8.1", + "shelljs": "^0.8.2", "typedoc-default-themes": "^0.5.0", - "typescript": "2.7.2" - }, - "dependencies": { - "typescript": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", - "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", - "dev": true - } + "typescript": "3.1.x" } }, "typedoc-default-themes": { @@ -4278,42 +4035,38 @@ "dev": true }, "typescript": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.3.tgz", - "integrity": "sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.5.tgz", + "integrity": "sha512-muYNWV9j5+3mXoKD6oPONKuGUmYiFX14gfo9lWm9ZXRHOqVDQiB4q1CzFPbF4QLV2E9TZXH6oK55oQ94rn3PpA==", "dev": true }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", "dev": true, + "optional": true, "requires": { - "commander": "~2.13.0", + "commander": "~2.17.1", "source-map": "~0.6.1" }, "dependencies": { "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true, + "optional": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "optional": true } } }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, "uglifyjs-webpack-plugin": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", @@ -4330,11 +4083,27 @@ "worker-farm": "^1.5.2" }, "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + } } } }, @@ -4374,27 +4143,27 @@ } }, "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", "dev": true, "requires": { "imurmurhash": "^0.1.4" } }, "universalify": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, "unset-value": { @@ -4498,9 +4267,9 @@ "dev": true }, "v8-compile-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.0.tgz", - "integrity": "sha512-qNdTUMaCjPs4eEnM3W9H94R3sU70YCuT+/ST7nUf+id1bVOrdjrpUaeZLqPBPRph3hsgn4a4BvwpxhHZx+oSDg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", + "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", "dev": true }, "vm-browserify": { @@ -4524,15 +4293,15 @@ } }, "webpack": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.18.1.tgz", - "integrity": "sha512-YAKkdiasBy+XJqdxmr00NvL69I6TImnap/3+6YNEkS4lRMAfRCLEmtGWCIB0hGhb+qWDTdTV3C+zTPmctOhJ7Q==", + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.23.1.tgz", + "integrity": "sha512-iE5Cu4rGEDk7ONRjisTOjVHv3dDtcFfwitSxT7evtYj/rANJpt1OuC/Kozh1pBa99AUBr1L/LsaNB+D9Xz3CEg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-module-context": "1.7.6", - "@webassemblyjs/wasm-edit": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6", + "@webassemblyjs/ast": "1.7.10", + "@webassemblyjs/helper-module-context": "1.7.10", + "@webassemblyjs/wasm-edit": "1.7.10", + "@webassemblyjs/wasm-parser": "1.7.10", "acorn": "^5.6.2", "acorn-dynamic-import": "^3.0.0", "ajv": "^6.1.0", @@ -4552,51 +4321,42 @@ "tapable": "^1.1.0", "uglifyjs-webpack-plugin": "^1.2.4", "watchpack": "^1.5.0", - "webpack-sources": "^1.2.0" - }, - "dependencies": { - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "tapable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.0.tgz", - "integrity": "sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==", - "dev": true - } + "webpack-sources": "^1.3.0" } }, "webpack-cli": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.0.tgz", - "integrity": "sha512-p5NeKDtYwjZozUWq6kGNs9w+Gtw/CPvyuXjXn2HMdz8Tie+krjEg8oAtonvIyITZdvpF7XG9xDHwscLr2c+ugQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.2.tgz", + "integrity": "sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ==", "dev": true, "requires": { "chalk": "^2.4.1", "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.0.0", - "global-modules-path": "^2.1.0", - "import-local": "^1.0.0", - "inquirer": "^6.0.0", + "enhanced-resolve": "^4.1.0", + "global-modules-path": "^2.3.0", + "import-local": "^2.0.0", "interpret": "^1.1.0", "loader-utils": "^1.1.0", - "supports-color": "^5.4.0", - "v8-compile-cache": "^2.0.0", - "yargs": "^12.0.1" + "supports-color": "^5.5.0", + "v8-compile-cache": "^2.0.2", + "yargs": "^12.0.2" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "webpack-sources": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz", - "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { "source-list-map": "^2.0.0", @@ -4626,13 +4386,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "optional": true - }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", @@ -4650,7 +4403,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { @@ -4710,16 +4463,16 @@ "dev": true }, "yargs": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz", - "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", + "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^2.0.0", "find-up": "^3.0.0", "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "os-locale": "^3.0.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", @@ -4729,15 +4482,6 @@ "yargs-parser": "^10.1.0" }, "dependencies": { - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", diff --git a/package.json b/package.json index aae08e12..03684aff 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@protobufjs/utf8": "^1.1.0", - "binaryen": "51.0.0-nightly.20181010", + "binaryen": "52.0.0-nightly.20181104", "glob": "^7.1.3", "long": "^4.0.0" }, diff --git a/src/compiler.ts b/src/compiler.ts index 3d61b9ea..6bff46d5 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -397,9 +397,7 @@ export class Compiler extends DiagnosticEmitter { : 0; module.setMemory( numPages, - this.options.isWasm64 - ? Module.MAX_MEMORY_WASM64 - : Module.MAX_MEMORY_WASM32, + Module.UNLIMITED_MEMORY, this.memorySegments, options.target, "memory" diff --git a/src/glue/js/binaryen.d.ts b/src/glue/js/binaryen.d.ts index f56f249c..320e09d7 100644 --- a/src/glue/js/binaryen.d.ts +++ b/src/glue/js/binaryen.d.ts @@ -5,7 +5,9 @@ declare namespace binaryen { class Module { constructor(ref: number); + runPasses(passes: string[]): void; emitText(): string; + emitStackIR(optimize?: boolean): string; emitAsmjs(): string; } } diff --git a/src/glue/js/index.ts b/src/glue/js/index.ts index f2276c47..75ef3932 100644 --- a/src/glue/js/index.ts +++ b/src/glue/js/index.ts @@ -14,7 +14,7 @@ import "./i64"; import { Module } from "../../module"; Module.prototype.toText = function(this: Module) { - return new binaryen.Module(this.ref).emitText(); + return new binaryen.Module(this.ref).emitStackIR(); }; Module.prototype.toAsmjs = function(this: Module) { diff --git a/src/module.ts b/src/module.ts index 57e0de60..780a4c04 100644 --- a/src/module.ts +++ b/src/module.ts @@ -239,12 +239,6 @@ export class Module { private cachedByValue: usize; - /** Maximum number of pages when targeting WASM32. */ - static readonly MAX_MEMORY_WASM32: Index = 0xffff; - - /** Maximum number of pages when targeting WASM64. */ - static readonly MAX_MEMORY_WASM64: Index = 0xffff; // TODO - static create(): Module { var module = new Module(); module.ref = _BinaryenModuleCreate(); @@ -824,6 +818,9 @@ export class Module { } } + /** Unlimited memory constant. */ + static readonly UNLIMITED_MEMORY: Index = -1; + setMemory( initial: Index, maximum: Index, diff --git a/tests/compiler/abi.optimized.wat b/tests/compiler/abi.optimized.wat index 3804e35a..e86322e2 100644 --- a/tests/compiler/abi.optimized.wat +++ b/tests/compiler/abi.optimized.wat @@ -2,11 +2,11 @@ (type $i (func (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\06\00\00\00a\00b\00i\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $abi/condition (mut i32) (i32.const 0)) (global $abi/y (mut i32) (i32.const 0)) (export "memory" (memory $0)) @@ -15,48 +15,40 @@ (export "exportedExported" (func $abi/exportedExported)) (export "exportedInternal" (func $abi/exportedInternal)) (start $start) - (func $abi/exported (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const -128) + (func $abi/exported (; 1 ;) (type $i) (result i32) + i32.const -128 ) - (func $abi/exportedExported (; 2 ;) (; has Stack IR ;) (type $i) (result i32) - (call $abi/exported) + (func $abi/exportedExported (; 2 ;) (type $i) (result i32) + call $abi/exported ) - (func $abi/internal (; 3 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 128) + (func $abi/internal (; 3 ;) (type $i) (result i32) + i32.const 128 ) - (func $abi/exportedInternal (; 4 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.shr_s - (i32.shl - (call $abi/internal) - (i32.const 24) - ) - (i32.const 24) - ) + (func $abi/exportedInternal (; 4 ;) (type $i) (result i32) + call $abi/internal + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s ) - (func $start (; 5 ;) (; has Stack IR ;) (type $v) - (drop - (call $abi/internal) - ) - (set_global $abi/condition - (i32.const 1) - ) - (set_global $abi/y - (i32.const 0) - ) - (if - (get_global $abi/y) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 65) - (i32.const 2) - ) - (unreachable) - ) - ) + (func $start (; 5 ;) (type $v) + call $abi/internal + drop + i32.const 1 + set_global $abi/condition + i32.const 0 + set_global $abi/y + get_global $abi/y + if + i32.const 0 + i32.const 8 + i32.const 65 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $null (; 6 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 6 ;) (type $v) + nop ) ) diff --git a/tests/compiler/abi.untouched.wat b/tests/compiler/abi.untouched.wat index c5a0a04e..cfdff844 100644 --- a/tests/compiler/abi.untouched.wat +++ b/tests/compiler/abi.untouched.wat @@ -2,11 +2,11 @@ (type $i (func (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\06\00\00\00a\00b\00i\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $abi/condition (mut i32) (i32.const 0)) (global $abi/y (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 24)) @@ -17,274 +17,199 @@ (export "exportedInternal" (func $abi/exportedInternal)) (start $start) (func $abi/exported (; 1 ;) (type $i) (result i32) - (i32.shr_s - (i32.shl - (i32.const 128) - (i32.const 24) - ) - (i32.const 24) - ) + i32.const 128 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s ) (func $abi/exportedExported (; 2 ;) (type $i) (result i32) - (call $abi/exported) + call $abi/exported ) (func $abi/internal (; 3 ;) (type $i) (result i32) - (i32.const 128) + i32.const 128 ) (func $abi/exportedInternal (; 4 ;) (type $i) (result i32) - (i32.shr_s - (i32.shl - (call $abi/internal) - (i32.const 24) - ) - (i32.const 24) - ) + call $abi/internal + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s ) (func $start (; 5 ;) (type $v) (local $0 i32) (local $1 i32) - (drop - (call $abi/internal) - ) - (set_global $abi/condition - (i32.eqz - (i32.const 0) - ) - ) - (block - (set_local $0 - (i32.const 256) - ) - (if - (i32.eqz - (i32.eqz - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (block - (set_local $0 - (i32.const 256) - ) - (if - (get_global $abi/condition) - (set_local $0 - (i32.div_s - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 2) - ) - ) - (set_local $0 - (i32.div_s - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 2) - ) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 45) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (block - (set_local $0 - (i32.const 256) - ) - (if - (get_global $abi/condition) - (set_local $0 - (i32.shr_s - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (set_local $0 - (i32.and - (get_local $0) - (i32.const 127) - ) - ) - ) - (if - (i32.eqz - (i32.eqz - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 58) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (block - (set_global $abi/y - (i32.shr_s - (i32.shl - (i32.const 256) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (if - (i32.eqz - (i32.eqz - (get_global $abi/y) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 65) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (block - (set_local $0 - (i32.ctz - (i32.const 2) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 72) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (i32.clz - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 74) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (i32.ctz - (i32.const 2) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 77) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (i32.clz - (i32.const 1) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 79) - (i32.const 2) - ) - (unreachable) - ) - ) - ) + call $abi/internal + drop + i32.const 0 + i32.eqz + set_global $abi/condition + block + i32.const 256 + set_local $0 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + block + i32.const 256 + set_local $0 + get_global $abi/condition + if + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.div_s + set_local $0 + else + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.div_s + set_local $0 + end + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 45 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + block + i32.const 256 + set_local $0 + get_global $abi/condition + if + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 24 + i32.shr_s + set_local $0 + else + get_local $0 + i32.const 127 + i32.and + set_local $0 + end + get_local $0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 58 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + block + i32.const 256 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_global $abi/y + get_global $abi/y + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 65 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + block + i32.const 2 + i32.ctz + set_local $0 + get_local $0 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 72 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.clz + set_local $0 + get_local $0 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 74 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.ctz + set_local $1 + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 77 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.clz + set_local $1 + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 79 + i32.const 2 + call $~lib/env/abort + unreachable + end + end ) (func $null (; 6 ;) (type $v) ) diff --git a/tests/compiler/asc-constants.optimized.wat b/tests/compiler/asc-constants.optimized.wat index d475aaf8..be03ea1a 100644 --- a/tests/compiler/asc-constants.optimized.wat +++ b/tests/compiler/asc-constants.optimized.wat @@ -1,11 +1,11 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $start) (export "memory" (memory $0)) (export "table" (table $0)) - (func $start (; 0 ;) (; has Stack IR ;) (type $v) - (nop) + (func $start (; 0 ;) (type $v) + nop ) ) diff --git a/tests/compiler/asc-constants.untouched.wat b/tests/compiler/asc-constants.untouched.wat index 94229c4b..ebf9ddee 100644 --- a/tests/compiler/asc-constants.untouched.wat +++ b/tests/compiler/asc-constants.untouched.wat @@ -1,7 +1,7 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $ASC_TARGET i32 (i32.const 0)) (global $ASC_NO_TREESHAKING i32 (i32.const 0)) @@ -16,30 +16,22 @@ (export "table" (table $0)) (start $start) (func $start (; 0 ;) (type $v) - (drop - (i32.const 1) - ) - (drop - (i32.const 0) - ) - (drop - (i32.const 0) - ) - (drop - (i32.const 0) - ) - (drop - (i32.const 0) - ) - (drop - (i32.const 0) - ) - (drop - (i32.const 0) - ) - (drop - (i32.const 0) - ) + i32.const 1 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop ) (func $null (; 1 ;) (type $v) ) diff --git a/tests/compiler/assert.optimized.wat b/tests/compiler/assert.optimized.wat index 157b1bec..9c913d68 100644 --- a/tests/compiler/assert.optimized.wat +++ b/tests/compiler/assert.optimized.wat @@ -3,11 +3,11 @@ (memory $0 1) (data (i32.const 8) "\t\00\00\00a\00s\00s\00e\00r\00t\00.\00t\00s") (data (i32.const 32) "\0c\00\00\00m\00u\00s\00t\00 \00b\00e\00 \00t\00r\00u\00e") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $start) (export "memory" (memory $0)) (export "table" (table $0)) - (func $start (; 0 ;) (; has Stack IR ;) (type $v) - (nop) + (func $start (; 0 ;) (type $v) + nop ) ) diff --git a/tests/compiler/assert.untouched.wat b/tests/compiler/assert.untouched.wat index f7c52a10..d8ab90a2 100644 --- a/tests/compiler/assert.untouched.wat +++ b/tests/compiler/assert.untouched.wat @@ -1,146 +1,111 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\t\00\00\00a\00s\00s\00e\00r\00t\00.\00t\00s\00") (data (i32.const 32) "\0c\00\00\00m\00u\00s\00t\00 \00b\00e\00 \00t\00r\00u\00e\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $HEAP_BASE i32 (i32.const 60)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $start (; 1 ;) (type $v) (local $0 i32) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.gt_u - (i32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.eq - (f64.const 0.5) - (f64.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.gt - (f64.const 0.5) - (f64.const 0.4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.eqz - (i64.const 4294967296) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.gt_s - (i64.const 4294967296) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.const 1) - ) - (get_local $0) - (block - (call $~lib/env/abort - (i32.const 32) - (i32.const 8) - (i32.const 10) - (i32.const 5) - ) - (unreachable) - ) - ) - ) - (unreachable) - ) + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 0 + f64.eq + if + i32.const 0 + i32.const 8 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 0.4 + f64.gt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 4294967296 + i64.eqz + if + i32.const 0 + i32.const 8 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 4294967296 + i64.const 1 + i64.gt_s + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + tee_local $0 + if (result i32) + get_local $0 + else + i32.const 32 + i32.const 8 + i32.const 10 + i32.const 5 + call $~lib/env/abort + unreachable + end + i32.eqz + if + unreachable + end ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/binary.optimized.wat b/tests/compiler/binary.optimized.wat index 58f6faf5..5c1e0b3d 100644 --- a/tests/compiler/binary.optimized.wat +++ b/tests/compiler/binary.optimized.wat @@ -3,7 +3,7 @@ (type $FUNCSIG$dd (func (param f64) (result f64))) (type $FUNCSIG$ff (func (param f32) (result f32))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $binary/b (mut i32) (i32.const 0)) (global $binary/i (mut i32) (i32.const 0)) @@ -13,1086 +13,734 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/math/NativeMath.pow (; 0 ;) (; has Stack IR ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 0 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) - (block $folding-inner0 (result f64) - (set_local $3 - (i32.wrap/i64 - (tee_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - ) - ) - (if - (i32.eqz - (tee_local $1 - (i32.gt_s - (tee_local $5 - (i32.and - (tee_local $4 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 2146435072) - ) - ) - ) - (if - (tee_local $1 - (i32.eq - (get_local $5) - (i32.const 2146435072) - ) - ) - (set_local $1 - (i32.ne - (get_local $3) - (i32.const 0) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (set_local $1 - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (set_local $1 - (i32.const 0) - ) - ) - (if - (get_local $1) - (return - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - ) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $2 + i32.wrap/i64 + set_local $3 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $4 + i32.const 2147483647 + i32.and + tee_local $5 + i32.const 2146435072 + i32.gt_s + tee_local $1 + i32.eqz + if + get_local $5 + i32.const 2146435072 + i32.eq + tee_local $1 + if + get_local $3 + i32.const 0 + i32.ne + set_local $1 + end + end + get_local $1 + i32.eqz + if + i32.const 0 + set_local $1 + end + get_local $1 + i32.eqz + if + i32.const 0 + set_local $1 + end + get_local $1 + if + get_local $0 + f64.const 1 + f64.add + return + end + get_local $0 ) - (func $~lib/math/NativeMathf.mod (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 1 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (block $folding-inner0 - (set_local $2 - (i32.and - (i32.shr_u - (tee_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $4 - (i32.and - (get_local $1) - (i32.const -2147483648) - ) - ) - (if - (i32.eqz - (tee_local $3 - (i32.eq - (get_local $2) - (i32.const 255) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - ) - (if - (i32.and - (get_local $3) - (i32.const 1) - ) - (return - (f32.div - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.le_u - (tee_local $3 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2130706432) - ) - (block - (br_if $folding-inner0 - (i32.eq - (get_local $3) - (i32.const 2130706432) - ) - ) - (return - (get_local $0) - ) - ) - ) - (set_local $1 - (if (result i32) - (get_local $2) - (i32.or - (i32.and - (get_local $1) - (i32.const 8388607) - ) - (i32.const 8388608) - ) - (i32.shl - (get_local $1) - (i32.sub - (i32.const 1) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.clz - (i32.shl - (get_local $1) - (i32.const 9) - ) - ) - ) - ) - ) - ) - ) - ) - (loop $continue|0 - (if - (i32.gt_s - (get_local $2) - (i32.const 127) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 8388608) - ) - (block - (br_if $folding-inner0 - (i32.eq - (get_local $1) - (i32.const 8388608) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 8388608) - ) - ) - ) - ) - (set_local $1 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 8388608) - ) - (block - (br_if $folding-inner0 - (i32.eq - (get_local $1) - (i32.const 8388608) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 8388608) - ) - ) - ) - ) - (set_local $1 - (i32.shl - (get_local $1) - (tee_local $3 - (i32.clz - (i32.shl - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - ) - (return - (f32.reinterpret/i32 - (i32.or - (tee_local $1 - (if (result i32) - (i32.gt_s - (tee_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (i32.const 0) - ) - (i32.or - (i32.sub - (get_local $1) - (i32.const 8388608) - ) - (i32.shl - (get_local $2) - (i32.const 23) - ) - ) - (i32.shr_u - (get_local $1) - (i32.sub - (i32.const 1) - (get_local $2) - ) - ) - ) - ) - (get_local $4) - ) - ) - ) - ) - (f32.mul - (f32.const 0) - (get_local $0) - ) + block $folding-inner0 + get_local $0 + i32.reinterpret/f32 + tee_local $1 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $2 + get_local $1 + i32.const -2147483648 + i32.and + set_local $4 + get_local $2 + i32.const 255 + i32.eq + tee_local $3 + i32.eqz + if + i32.const 0 + set_local $3 + end + get_local $3 + i32.const 1 + i32.and + if + get_local $0 + get_local $0 + f32.div + return + end + get_local $1 + i32.const 1 + i32.shl + tee_local $3 + i32.const 2130706432 + i32.le_u + if + get_local $3 + i32.const 2130706432 + i32.eq + br_if $folding-inner0 + get_local $0 + return + end + get_local $2 + if (result i32) + get_local $1 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + get_local $1 + i32.const 1 + get_local $2 + get_local $1 + i32.const 9 + i32.shl + i32.clz + i32.sub + tee_local $2 + i32.sub + i32.shl + end + set_local $1 + loop $continue|0 + get_local $2 + i32.const 127 + i32.gt_s + if + get_local $1 + i32.const 8388608 + i32.ge_u + if + get_local $1 + i32.const 8388608 + i32.eq + br_if $folding-inner0 + get_local $1 + i32.const 8388608 + i32.sub + set_local $1 + end + get_local $1 + i32.const 1 + i32.shl + set_local $1 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|0 + end + end + get_local $1 + i32.const 8388608 + i32.ge_u + if + get_local $1 + i32.const 8388608 + i32.eq + br_if $folding-inner0 + get_local $1 + i32.const 8388608 + i32.sub + set_local $1 + end + get_local $1 + get_local $1 + i32.const 8 + i32.shl + i32.clz + tee_local $3 + i32.shl + set_local $1 + get_local $2 + get_local $3 + i32.sub + tee_local $2 + i32.const 0 + i32.gt_s + if (result i32) + get_local $1 + i32.const 8388608 + i32.sub + get_local $2 + i32.const 23 + i32.shl + i32.or + else + get_local $1 + i32.const 1 + get_local $2 + i32.sub + i32.shr_u + end + tee_local $1 + get_local $4 + i32.or + f32.reinterpret/i32 + return + end + f32.const 0 + get_local $0 + f32.mul ) - (func $~lib/math/NativeMathf.pow (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 2 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) - (block $folding-inner0 (result f32) - (if - (i32.eqz - (tee_local $1 - (i32.gt_s - (i32.and - (tee_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 2147483647) - ) - (i32.const 2139095040) - ) - ) - ) - (set_local $1 - (i32.const 0) - ) - ) - (if - (get_local $1) - (return - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - ) - (get_local $0) - ) + get_local $0 + i32.reinterpret/f32 + tee_local $2 + i32.const 2147483647 + i32.and + i32.const 2139095040 + i32.gt_s + tee_local $1 + i32.eqz + if + i32.const 0 + set_local $1 + end + get_local $1 + if + get_local $0 + f32.const 1 + f32.add + return + end + get_local $0 ) - (func $~lib/math/NativeMath.mod (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 3 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) (local $4 i32) (local $5 i64) - (block $folding-inner0 - (set_local $2 - (i64.and - (i64.shr_u - (tee_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $5 - (i64.shr_u - (get_local $1) - (i64.const 63) - ) - ) - (if - (i32.eqz - (tee_local $4 - (i64.eq - (get_local $2) - (i64.const 2047) - ) - ) - ) - (set_local $4 - (i32.const 0) - ) - ) - (if - (get_local $4) - (return - (f64.div - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i64.le_u - (tee_local $3 - (i64.shl - (get_local $1) - (i64.const 1) - ) - ) - (i64.const 9214364837600034816) - ) - (block - (br_if $folding-inner0 - (i64.eq - (get_local $3) - (i64.const 9214364837600034816) - ) - ) - (return - (get_local $0) - ) - ) - ) - (set_local $1 - (if (result i64) - (i64.eqz - (get_local $2) - ) - (i64.shl - (get_local $1) - (i64.add - (i64.sub - (i64.const 0) - (tee_local $2 - (i64.sub - (get_local $2) - (i64.clz - (i64.shl - (get_local $1) - (i64.const 12) - ) - ) - ) - ) - ) - (i64.const 1) - ) - ) - (i64.or - (i64.and - (get_local $1) - (i64.const 4503599627370495) - ) - (i64.const 4503599627370496) - ) - ) - ) - (loop $continue|0 - (if - (i64.gt_s - (get_local $2) - (i64.const 1023) - ) - (block - (if - (i64.ge_u - (get_local $1) - (i64.const 4503599627370496) - ) - (block - (br_if $folding-inner0 - (i64.eq - (get_local $1) - (i64.const 4503599627370496) - ) - ) - (set_local $1 - (i64.sub - (get_local $1) - (i64.const 4503599627370496) - ) - ) - ) - ) - (set_local $1 - (i64.shl - (get_local $1) - (i64.const 1) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (i64.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i64.ge_u - (get_local $1) - (i64.const 4503599627370496) - ) - (block - (br_if $folding-inner0 - (i64.eq - (get_local $1) - (i64.const 4503599627370496) - ) - ) - (set_local $1 - (i64.sub - (get_local $1) - (i64.const 4503599627370496) - ) - ) - ) - ) - (set_local $1 - (i64.shl - (get_local $1) - (tee_local $3 - (i64.clz - (i64.shl - (get_local $1) - (i64.const 11) - ) - ) - ) - ) - ) - (return - (f64.reinterpret/i64 - (i64.or - (tee_local $1 - (if (result i64) - (i64.gt_s - (tee_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - (i64.const 0) - ) - (i64.or - (i64.sub - (get_local $1) - (i64.const 4503599627370496) - ) - (i64.shl - (get_local $2) - (i64.const 52) - ) - ) - (i64.shr_u - (get_local $1) - (i64.add - (i64.sub - (i64.const 0) - (get_local $2) - ) - (i64.const 1) - ) - ) - ) - ) - (i64.shl - (get_local $5) - (i64.const 63) - ) - ) - ) - ) - ) - (f64.mul - (f64.const 0) - (get_local $0) - ) + block $folding-inner0 + get_local $0 + i64.reinterpret/f64 + tee_local $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $2 + get_local $1 + i64.const 63 + i64.shr_u + set_local $5 + get_local $2 + i64.const 2047 + i64.eq + tee_local $4 + i32.eqz + if + i32.const 0 + set_local $4 + end + get_local $4 + if + get_local $0 + get_local $0 + f64.div + return + end + get_local $1 + i64.const 1 + i64.shl + tee_local $3 + i64.const 9214364837600034816 + i64.le_u + if + get_local $3 + i64.const 9214364837600034816 + i64.eq + br_if $folding-inner0 + get_local $0 + return + end + get_local $2 + i64.eqz + if (result i64) + get_local $1 + i64.const 0 + get_local $2 + get_local $1 + i64.const 12 + i64.shl + i64.clz + i64.sub + tee_local $2 + i64.sub + i64.const 1 + i64.add + i64.shl + else + get_local $1 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + set_local $1 + loop $continue|0 + get_local $2 + i64.const 1023 + i64.gt_s + if + get_local $1 + i64.const 4503599627370496 + i64.ge_u + if + get_local $1 + i64.const 4503599627370496 + i64.eq + br_if $folding-inner0 + get_local $1 + i64.const 4503599627370496 + i64.sub + set_local $1 + end + get_local $1 + i64.const 1 + i64.shl + set_local $1 + get_local $2 + i64.const 1 + i64.sub + set_local $2 + br $continue|0 + end + end + get_local $1 + i64.const 4503599627370496 + i64.ge_u + if + get_local $1 + i64.const 4503599627370496 + i64.eq + br_if $folding-inner0 + get_local $1 + i64.const 4503599627370496 + i64.sub + set_local $1 + end + get_local $1 + get_local $1 + i64.const 11 + i64.shl + i64.clz + tee_local $3 + i64.shl + set_local $1 + get_local $2 + get_local $3 + i64.sub + tee_local $2 + i64.const 0 + i64.gt_s + if (result i64) + get_local $1 + i64.const 4503599627370496 + i64.sub + get_local $2 + i64.const 52 + i64.shl + i64.or + else + get_local $1 + i64.const 0 + get_local $2 + i64.sub + i64.const 1 + i64.add + i64.shr_u + end + tee_local $1 + get_local $5 + i64.const 63 + i64.shl + i64.or + f64.reinterpret/i64 + return + end + f64.const 0 + get_local $0 + f64.mul ) - (func $start (; 4 ;) (; has Stack IR ;) (type $v) - (drop - (i32.rem_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (call $~lib/math/NativeMath.pow - (f64.convert_s/i32 - (get_global $binary/i) - ) - ) - ) - (set_global $binary/b - (i32.lt_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.gt_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.le_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.ge_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.eq - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.eq - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.add - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.sub - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.rem_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.trunc_s/f64 - (call $~lib/math/NativeMath.pow - (f64.convert_s/i32 - (get_global $binary/i) - ) - ) - ) - ) - (set_global $binary/i - (i32.shl - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.shr_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.shr_u - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.and - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.or - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.xor - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.add - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.sub - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.rem_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.shl - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.shr_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.shr_u - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.and - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.or - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.xor - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i64.rem_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (call $~lib/math/NativeMath.pow - (f64.convert_s/i64 - (get_global $binary/I) - ) - ) - ) - (set_global $binary/b - (i64.lt_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.gt_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.le_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.ge_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.eq - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.eq - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.add - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.sub - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.rem_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.trunc_s/f64 - (call $~lib/math/NativeMath.pow - (f64.convert_s/i64 - (get_global $binary/I) - ) - ) - ) - ) - (set_global $binary/I - (i64.shl - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.shr_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.shr_u - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.and - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.or - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.xor - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.add - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.sub - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.rem_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.shl - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.shr_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.shr_u - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.and - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.or - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.xor - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (call $~lib/math/NativeMathf.mod - (get_global $binary/f) - ) - ) - (drop - (call $~lib/math/NativeMathf.pow - (get_global $binary/f) - ) - ) - (set_global $binary/b - (f32.lt - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.gt - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.le - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.ge - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.eq - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.eq - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (f32.add - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (f32.sub - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (call $~lib/math/NativeMathf.mod - (get_global $binary/f) - ) - ) - (set_global $binary/f - (call $~lib/math/NativeMathf.pow - (get_global $binary/f) - ) - ) - (set_global $binary/f - (f32.add - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (f32.sub - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (call $~lib/math/NativeMathf.mod - (get_global $binary/f) - ) - ) - (set_global $binary/f - (call $~lib/math/NativeMathf.pow - (get_global $binary/f) - ) - ) - (drop - (call $~lib/math/NativeMath.mod - (get_global $binary/F) - ) - ) - (drop - (call $~lib/math/NativeMath.pow - (get_global $binary/F) - ) - ) - (set_global $binary/b - (f64.lt - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.gt - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.le - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.ge - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.eq - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.eq - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (f64.add - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (f64.sub - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (call $~lib/math/NativeMath.mod - (get_global $binary/F) - ) - ) - (set_global $binary/F - (call $~lib/math/NativeMath.pow - (get_global $binary/F) - ) - ) - (set_global $binary/F - (f64.add - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (f64.sub - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (call $~lib/math/NativeMath.mod - (get_global $binary/F) - ) - ) - (set_global $binary/F - (call $~lib/math/NativeMath.pow - (get_global $binary/F) - ) - ) + (func $start (; 4 ;) (type $v) + get_global $binary/i + i32.const 1 + i32.rem_s + drop + get_global $binary/i + f64.convert_s/i32 + call $~lib/math/NativeMath.pow + drop + get_global $binary/i + i32.const 1 + i32.lt_s + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.gt_s + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.le_s + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.ge_s + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.eq + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.eq + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.add + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.sub + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.rem_s + set_global $binary/i + get_global $binary/i + f64.convert_s/i32 + call $~lib/math/NativeMath.pow + i32.trunc_s/f64 + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shl + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shr_s + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shr_u + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.and + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.or + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.xor + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.add + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.sub + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.rem_s + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shl + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shr_s + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shr_u + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.and + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.or + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.xor + set_global $binary/i + get_global $binary/I + i64.const 1 + i64.rem_s + drop + get_global $binary/I + f64.convert_s/i64 + call $~lib/math/NativeMath.pow + drop + get_global $binary/I + i64.const 1 + i64.lt_s + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.gt_s + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.le_s + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.ge_s + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.eq + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.eq + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.add + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.sub + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.rem_s + set_global $binary/I + get_global $binary/I + f64.convert_s/i64 + call $~lib/math/NativeMath.pow + i64.trunc_s/f64 + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shl + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shr_s + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shr_u + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.and + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.or + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.xor + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.add + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.sub + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.rem_s + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shl + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shr_s + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shr_u + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.and + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.or + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.xor + set_global $binary/I + get_global $binary/f + call $~lib/math/NativeMathf.mod + drop + get_global $binary/f + call $~lib/math/NativeMathf.pow + drop + get_global $binary/f + f32.const 1 + f32.lt + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.gt + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.le + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.ge + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.eq + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.eq + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.add + set_global $binary/f + get_global $binary/f + f32.const 1 + f32.sub + set_global $binary/f + get_global $binary/f + call $~lib/math/NativeMathf.mod + set_global $binary/f + get_global $binary/f + call $~lib/math/NativeMathf.pow + set_global $binary/f + get_global $binary/f + f32.const 1 + f32.add + set_global $binary/f + get_global $binary/f + f32.const 1 + f32.sub + set_global $binary/f + get_global $binary/f + call $~lib/math/NativeMathf.mod + set_global $binary/f + get_global $binary/f + call $~lib/math/NativeMathf.pow + set_global $binary/f + get_global $binary/F + call $~lib/math/NativeMath.mod + drop + get_global $binary/F + call $~lib/math/NativeMath.pow + drop + get_global $binary/F + f64.const 1 + f64.lt + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.gt + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.le + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.ge + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.eq + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.eq + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.add + set_global $binary/F + get_global $binary/F + f64.const 1 + f64.sub + set_global $binary/F + get_global $binary/F + call $~lib/math/NativeMath.mod + set_global $binary/F + get_global $binary/F + call $~lib/math/NativeMath.pow + set_global $binary/F + get_global $binary/F + f64.const 1 + f64.add + set_global $binary/F + get_global $binary/F + f64.const 1 + f64.sub + set_global $binary/F + get_global $binary/F + call $~lib/math/NativeMath.mod + set_global $binary/F + get_global $binary/F + call $~lib/math/NativeMath.pow + set_global $binary/F ) - (func $null (; 5 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 5 ;) (type $v) + nop ) ) diff --git a/tests/compiler/binary.untouched.wat b/tests/compiler/binary.untouched.wat index 08bfbbc2..343e5211 100644 --- a/tests/compiler/binary.untouched.wat +++ b/tests/compiler/binary.untouched.wat @@ -5,7 +5,7 @@ (type $fif (func (param f32 i32) (result f32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $binary/b (mut i32) (i32.const 0)) (global $binary/i (mut i32) (i32.const 0)) @@ -21,137 +21,92 @@ (local $2 f64) (local $3 i32) (local $4 i32) - (set_local $2 - (get_local $0) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (tee_local $4 - (i32.const 1023) - ) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.mul - (f64.const 2.2250738585072014e-308) - (f64.const 9007199254740992) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.sub - (i32.const 1022) - (i32.const 53) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.mul - (f64.const 2.2250738585072014e-308) - (f64.const 9007199254740992) - ) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (i32.add - (get_local $1) - (i32.const 1022) - ) - (i32.const 53) - ) - ) - (tee_local $4 - (i32.const -1022) - ) - (i32.gt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $2) - (f64.reinterpret/i64 - (i64.shl - (i64.add - (i64.const 1023) - (i64.extend_s/i32 - (get_local $1) - ) - ) - (i64.const 52) - ) - ) - ) + get_local $0 + set_local $2 + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $2 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $2 + get_local $1 + i32.const 1023 + i32.sub + set_local $1 + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $2 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $2 + get_local $1 + i32.const 1023 + i32.sub + tee_local $3 + i32.const 1023 + tee_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + set_local $1 + end + else + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $2 + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + set_local $2 + get_local $1 + i32.const 1022 + i32.const 53 + i32.sub + i32.add + set_local $1 + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $2 + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + set_local $2 + get_local $1 + i32.const 1022 + i32.add + i32.const 53 + i32.sub + tee_local $3 + i32.const -1022 + tee_local $4 + get_local $3 + get_local $4 + i32.gt_s + select + set_local $1 + end + end + end + get_local $2 + i64.const 1023 + get_local $1 + i64.extend_s/i32 + i64.add + i64.const 52 + i64.shl + f64.reinterpret/i64 + f64.mul ) (func $~lib/math/NativeMath.pow (; 1 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -193,1499 +148,1052 @@ (local $38 f64) (local $39 f64) (local $40 i32) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $4 - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_local $2 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $5 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $6 - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_local $7 - (i32.and - (get_local $3) - (i32.const 2147483647) - ) - ) - (set_local $8 - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (i32.or - (get_local $8) - (get_local $6) - ) - (i32.const 0) - ) - (return - (f64.const 1) - ) - ) - (if - (if (result i32) - (tee_local $9 - (if (result i32) - (tee_local $9 - (if (result i32) - (tee_local $9 - (i32.gt_s - (get_local $7) - (i32.const 2146435072) - ) - ) - (get_local $9) - (if (result i32) - (tee_local $9 - (i32.eq - (get_local $7) - (i32.const 2146435072) - ) - ) - (i32.ne - (get_local $4) - (i32.const 0) - ) - (get_local $9) - ) - ) - ) - (get_local $9) - (i32.gt_s - (get_local $8) - (i32.const 2146435072) - ) - ) - ) - (get_local $9) - (if (result i32) - (tee_local $9 - (i32.eq - (get_local $8) - (i32.const 2146435072) - ) - ) - (i32.ne - (get_local $6) - (i32.const 0) - ) - (get_local $9) - ) - ) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $10 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (if - (i32.ge_s - (get_local $8) - (i32.const 1128267776) - ) - (set_local $10 - (i32.const 2) - ) - (if - (i32.ge_s - (get_local $8) - (i32.const 1072693248) - ) - (block - (set_local $11 - (i32.sub - (i32.shr_s - (get_local $8) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $9 - (i32.sub - (select - (i32.const 52) - (i32.const 20) - (i32.gt_s - (get_local $11) - (i32.const 20) - ) - ) - (get_local $11) - ) - ) - (set_local $12 - (select - (get_local $6) - (get_local $8) - (i32.gt_s - (get_local $11) - (i32.const 20) - ) - ) - ) - (set_local $13 - (i32.shr_s - (get_local $12) - (get_local $9) - ) - ) - (if - (i32.eq - (i32.shl - (get_local $13) - (get_local $9) - ) - (get_local $12) - ) - (set_local $10 - (i32.sub - (i32.const 2) - (i32.and - (get_local $13) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 0) - ) - (block - (if - (i32.eq - (get_local $8) - (i32.const 2146435072) - ) - (block - (if - (i32.eq - (i32.or - (i32.sub - (get_local $7) - (i32.const 1072693248) - ) - (get_local $4) - ) - (i32.const 0) - ) - (return - (f64.const nan:0x8000000000000) - ) - (if - (i32.ge_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (get_local $1) - (f64.const 0) - ) - ) - (return - (if (result f64) - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (f64.const 0) - (f64.neg - (get_local $1) - ) - ) - ) - ) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 1072693248) - ) - (block - (if - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1073741824) - ) - (return - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1071644672) - ) - (if - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (return - (f64.sqrt - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $14 - (f64.abs - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $13 - (if (result i32) - (tee_local $13 - (i32.eq - (get_local $7) - (i32.const 2146435072) - ) - ) - (get_local $13) - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - ) - (get_local $13) - (i32.eq - (get_local $7) - (i32.const 1072693248) - ) - ) - (block - (set_local $15 - (get_local $14) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (set_local $15 - (f64.div - (f64.const 1) - (get_local $15) - ) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $7) - (i32.const 1072693248) - ) - (get_local $10) - ) - (i32.const 0) - ) - (set_local $15 - (f64.div - (f64.sub - (get_local $15) - (get_local $15) - ) - (f64.sub - (get_local $15) - (get_local $15) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (i32.const 1) - ) - (set_local $15 - (f64.neg - (get_local $15) - ) - ) - ) - ) - ) - (return - (get_local $15) - ) - ) - ) - ) - (set_local $16 - (f64.const 1) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (block - (if - (i32.eq - (get_local $10) - (i32.const 0) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (i32.const 1) - ) - (set_local $16 - (f64.const -1) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $8) - (i32.const 1105199104) - ) - (block - (if - (i32.gt_s - (get_local $8) - (i32.const 1139802112) - ) - (block - (if - (i32.le_s - (get_local $7) - (i32.const 1072693247) - ) - (return - (if (result f64) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.const 1.e+300) - (f64.const 1.e+300) - ) - (f64.mul - (f64.const 1e-300) - (f64.const 1e-300) - ) - ) - ) - ) - (if - (i32.ge_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.const 1.e+300) - (f64.const 1.e+300) - ) - (f64.mul - (f64.const 1e-300) - (f64.const 1e-300) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 1072693247) - ) - (return - (if (result f64) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - (set_local $22 - (f64.sub - (get_local $14) - (f64.const 1) - ) - ) - (set_local $25 - (f64.mul - (f64.mul - (get_local $22) - (get_local $22) - ) - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $22) - (f64.sub - (f64.const 0.3333333333333333) - (f64.mul - (get_local $22) - (f64.const 0.25) - ) - ) - ) - ) - ) - ) - (set_local $23 - (f64.mul - (f64.const 1.4426950216293335) - (get_local $22) - ) - ) - (set_local $24 - (f64.sub - (f64.mul - (get_local $22) - (f64.const 1.9259629911266175e-08) - ) - (f64.mul - (get_local $25) - (f64.const 1.4426950408889634) - ) - ) - ) - (set_local $17 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $17 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $17) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $18 - (f64.sub - (get_local $24) - (f64.sub - (get_local $17) - (get_local $23) - ) - ) - ) - ) - (block - (set_local $27 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 1048576) - ) - (block - (set_local $14 - (f64.mul - (get_local $14) - (f64.const 9007199254740992) - ) - ) - (set_local $27 - (i32.sub - (get_local $27) - (i32.const 53) - ) - ) - (set_local $7 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $14) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (set_local $27 - (i32.add - (get_local $27) - (i32.sub - (i32.shr_s - (get_local $7) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $26 - (i32.and - (get_local $7) - (i32.const 1048575) - ) - ) - (set_local $7 - (i32.or - (get_local $26) - (i32.const 1072693248) - ) - ) - (if - (i32.le_s - (get_local $26) - (i32.const 235662) - ) - (set_local $11 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $26) - (i32.const 767610) - ) - (set_local $11 - (i32.const 1) - ) - (block - (set_local $11 - (i32.const 0) - ) - (set_local $27 - (i32.add - (get_local $27) - (i32.const 1) - ) - ) - (set_local $7 - (i32.sub - (get_local $7) - (i32.const 1048576) - ) - ) - ) - ) - ) - (set_local $14 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $14) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $7) - ) - (i64.const 32) - ) - ) - ) - ) - (set_local $34 - (select - (f64.const 1.5) - (f64.const 1) - (get_local $11) - ) - ) - (set_local $23 - (f64.sub - (get_local $14) - (get_local $34) - ) - ) - (set_local $24 - (f64.div - (f64.const 1) - (f64.add - (get_local $14) - (get_local $34) - ) - ) - ) - (set_local $28 - (f64.mul - (get_local $23) - (get_local $24) - ) - ) - (set_local $30 - (get_local $28) - ) - (set_local $30 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $30) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $32 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.add - (i32.add - (i32.or - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - (i32.const 536870912) - ) - (i32.const 524288) - ) - (i32.shl - (get_local $11) - (i32.const 18) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $33 - (f64.sub - (get_local $14) - (f64.sub - (get_local $32) - (get_local $34) - ) - ) - ) - (set_local $31 - (f64.mul - (get_local $24) - (f64.sub - (f64.sub - (get_local $23) - (f64.mul - (get_local $30) - (get_local $32) - ) - ) - (f64.mul - (get_local $30) - (get_local $33) - ) - ) - ) - ) - (set_local $29 - (f64.mul - (get_local $28) - (get_local $28) - ) - ) - (set_local $21 - (f64.mul - (f64.mul - (get_local $29) - (get_local $29) - ) - (f64.add - (f64.const 0.5999999999999946) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.4285714285785502) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.33333332981837743) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.272728123808534) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.23066074577556175) - (f64.mul - (get_local $29) - (f64.const 0.20697501780033842) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $21 - (f64.add - (get_local $21) - (f64.mul - (get_local $31) - (f64.add - (get_local $30) - (get_local $28) - ) - ) - ) - ) - (set_local $29 - (f64.mul - (get_local $30) - (get_local $30) - ) - ) - (set_local $32 - (f64.add - (f64.add - (f64.const 3) - (get_local $29) - ) - (get_local $21) - ) - ) - (set_local $32 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $32) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $33 - (f64.sub - (get_local $21) - (f64.sub - (f64.sub - (get_local $32) - (f64.const 3) - ) - (get_local $29) - ) - ) - ) - (set_local $23 - (f64.mul - (get_local $30) - (get_local $32) - ) - ) - (set_local $24 - (f64.add - (f64.mul - (get_local $31) - (get_local $32) - ) - (f64.mul - (get_local $33) - (get_local $28) - ) - ) - ) - (set_local $19 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $19 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $19) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $20 - (f64.sub - (get_local $24) - (f64.sub - (get_local $19) - (get_local $23) - ) - ) - ) - (set_local $35 - (f64.mul - (f64.const 0.9617967009544373) - (get_local $19) - ) - ) - (set_local $36 - (select - (f64.const 1.350039202129749e-08) - (f64.const 0) - (get_local $11) - ) - ) - (set_local $37 - (f64.add - (f64.add - (f64.mul - (f64.const -7.028461650952758e-09) - (get_local $19) - ) - (f64.mul - (get_local $20) - (f64.const 0.9617966939259756) - ) - ) - (get_local $36) - ) - ) - (set_local $22 - (f64.convert_s/i32 - (get_local $27) - ) - ) - (set_local $38 - (select - (f64.const 0.5849624872207642) - (f64.const 0) - (get_local $11) - ) - ) - (set_local $17 - (f64.add - (f64.add - (f64.add - (get_local $35) - (get_local $37) - ) - (get_local $38) - ) - (get_local $22) - ) - ) - (set_local $17 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $17) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $18 - (f64.sub - (get_local $37) - (f64.sub - (f64.sub - (f64.sub - (get_local $17) - (get_local $22) - ) - (get_local $38) - ) - (get_local $35) - ) - ) - ) - ) - ) - (set_local $39 - (get_local $1) - ) - (set_local $39 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $39) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $20 - (f64.add - (f64.mul - (f64.sub - (get_local $1) - (get_local $39) - ) - (get_local $17) - ) - (f64.mul - (get_local $1) - (get_local $18) - ) - ) - ) - (set_local $19 - (f64.mul - (get_local $39) - (get_local $17) - ) - ) - (set_local $15 - (f64.add - (get_local $20) - (get_local $19) - ) - ) - (set_local $2 - (i64.reinterpret/f64 - (get_local $15) - ) - ) - (set_local $26 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $40 - (i32.wrap/i64 - (get_local $2) - ) - ) - (if - (i32.ge_s - (get_local $26) - (i32.const 1083179008) - ) - (block - (if - (i32.ne - (i32.or - (i32.sub - (get_local $26) - (i32.const 1083179008) - ) - (get_local $40) - ) - (i32.const 0) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - ) - ) - (if - (f64.gt - (f64.add - (get_local $20) - (f64.const 8.008566259537294e-17) - ) - (f64.sub - (get_local $15) - (get_local $19) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - ) - ) - ) - (if - (i32.ge_s - (i32.and - (get_local $26) - (i32.const 2147483647) - ) - (i32.const 1083231232) - ) - (block - (if - (i32.ne - (i32.or - (i32.sub - (get_local $26) - (i32.const -1064252416) - ) - (get_local $40) - ) - (i32.const 0) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - (if - (f64.le - (get_local $20) - (f64.sub - (get_local $15) - (get_local $19) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - ) - ) - (set_local $40 - (i32.and - (get_local $26) - (i32.const 2147483647) - ) - ) - (set_local $11 - (i32.sub - (i32.shr_s - (get_local $40) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $27 - (i32.const 0) - ) - (if - (i32.gt_s - (get_local $40) - (i32.const 1071644672) - ) - (block - (set_local $27 - (i32.add - (get_local $26) - (i32.shr_s - (i32.const 1048576) - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - ) - ) - (set_local $11 - (i32.sub - (i32.shr_s - (i32.and - (get_local $27) - (i32.const 2147483647) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $22 - (f64.const 0) - ) - (set_local $22 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.and - (get_local $27) - (i32.xor - (i32.shr_s - (i32.const 1048575) - (get_local $11) - ) - (i32.const -1) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $27 - (i32.shr_s - (i32.or - (i32.and - (get_local $27) - (i32.const 1048575) - ) - (i32.const 1048576) - ) - (i32.sub - (i32.const 20) - (get_local $11) - ) - ) - ) - (if - (i32.lt_s - (get_local $26) - (i32.const 0) - ) - (set_local $27 - (i32.sub - (i32.const 0) - (get_local $27) - ) - ) - ) - (set_local $19 - (f64.sub - (get_local $19) - (get_local $22) - ) - ) - ) - ) - (set_local $22 - (f64.add - (get_local $20) - (get_local $19) - ) - ) - (set_local $22 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $22) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $23 - (f64.mul - (get_local $22) - (f64.const 0.6931471824645996) - ) - ) - (set_local $24 - (f64.add - (f64.mul - (f64.sub - (get_local $20) - (f64.sub - (get_local $22) - (get_local $19) - ) - ) - (f64.const 0.6931471805599453) - ) - (f64.mul - (get_local $22) - (f64.const -1.904654299957768e-09) - ) - ) - ) - (set_local $15 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $25 - (f64.sub - (get_local $24) - (f64.sub - (get_local $15) - (get_local $23) - ) - ) - ) - (set_local $22 - (f64.mul - (get_local $15) - (get_local $15) - ) - ) - (set_local $17 - (f64.sub - (get_local $15) - (f64.mul - (get_local $22) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $22) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $22) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $22) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $22) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $21 - (f64.sub - (f64.div - (f64.mul - (get_local $15) - (get_local $17) - ) - (f64.sub - (get_local $17) - (f64.const 2) - ) - ) - (f64.add - (get_local $25) - (f64.mul - (get_local $15) - (get_local $25) - ) - ) - ) - ) - (set_local $15 - (f64.sub - (f64.const 1) - (f64.sub - (get_local $21) - (get_local $15) - ) - ) - ) - (set_local $26 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $15) - ) - (i64.const 32) - ) - ) - ) - (set_local $26 - (i32.add - (get_local $26) - (i32.shl - (get_local $27) - (i32.const 20) - ) - ) - ) - (if - (i32.le_s - (i32.shr_s - (get_local $26) - (i32.const 20) - ) - (i32.const 0) - ) - (set_local $15 - (call $~lib/math/NativeMath.scalbn - (get_local $15) - (get_local $27) - ) - ) - (set_local $15 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $15) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $26) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (f64.mul - (get_local $16) - (get_local $15) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $3 + get_local $2 + i32.wrap/i64 + set_local $4 + get_local $1 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $5 + get_local $2 + i32.wrap/i64 + set_local $6 + get_local $3 + i32.const 2147483647 + i32.and + set_local $7 + get_local $5 + i32.const 2147483647 + i32.and + set_local $8 + get_local $8 + get_local $6 + i32.or + i32.const 0 + i32.eq + if + f64.const 1 + return + end + get_local $7 + i32.const 2146435072 + i32.gt_s + tee_local $9 + if (result i32) + get_local $9 + else + get_local $7 + i32.const 2146435072 + i32.eq + tee_local $9 + if (result i32) + get_local $4 + i32.const 0 + i32.ne + else + get_local $9 + end + end + tee_local $9 + if (result i32) + get_local $9 + else + get_local $8 + i32.const 2146435072 + i32.gt_s + end + tee_local $9 + if (result i32) + get_local $9 + else + get_local $8 + i32.const 2146435072 + i32.eq + tee_local $9 + if (result i32) + get_local $6 + i32.const 0 + i32.ne + else + get_local $9 + end + end + if + get_local $0 + get_local $1 + f64.add + return + end + i32.const 0 + set_local $10 + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $8 + i32.const 1128267776 + i32.ge_s + if + i32.const 2 + set_local $10 + else + get_local $8 + i32.const 1072693248 + i32.ge_s + if + get_local $8 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + i32.const 52 + i32.const 20 + get_local $11 + i32.const 20 + i32.gt_s + select + get_local $11 + i32.sub + set_local $9 + get_local $6 + get_local $8 + get_local $11 + i32.const 20 + i32.gt_s + select + set_local $12 + get_local $12 + get_local $9 + i32.shr_s + set_local $13 + get_local $13 + get_local $9 + i32.shl + get_local $12 + i32.eq + if + i32.const 2 + get_local $13 + i32.const 1 + i32.and + i32.sub + set_local $10 + end + end + end + end + get_local $6 + i32.const 0 + i32.eq + if + get_local $8 + i32.const 2146435072 + i32.eq + if + get_local $7 + i32.const 1072693248 + i32.sub + get_local $4 + i32.or + i32.const 0 + i32.eq + if + f64.const nan:0x8000000000000 + return + else + get_local $7 + i32.const 1072693248 + i32.ge_s + if + get_local $5 + i32.const 0 + i32.ge_s + if (result f64) + get_local $1 + else + f64.const 0 + end + return + else + get_local $5 + i32.const 0 + i32.ge_s + if (result f64) + f64.const 0 + else + get_local $1 + f64.neg + end + return + end + unreachable + end + unreachable + unreachable + end + get_local $8 + i32.const 1072693248 + i32.eq + if + get_local $5 + i32.const 0 + i32.ge_s + if + get_local $0 + return + end + f64.const 1 + get_local $0 + f64.div + return + end + get_local $5 + i32.const 1073741824 + i32.eq + if + get_local $0 + get_local $0 + f64.mul + return + end + get_local $5 + i32.const 1071644672 + i32.eq + if + get_local $3 + i32.const 0 + i32.ge_s + if + get_local $0 + f64.sqrt + return + end + end + end + get_local $0 + f64.abs + set_local $14 + get_local $4 + i32.const 0 + i32.eq + if + get_local $7 + i32.const 2146435072 + i32.eq + tee_local $13 + if (result i32) + get_local $13 + else + get_local $7 + i32.const 0 + i32.eq + end + tee_local $13 + if (result i32) + get_local $13 + else + get_local $7 + i32.const 1072693248 + i32.eq + end + if + get_local $14 + set_local $15 + get_local $5 + i32.const 0 + i32.lt_s + if + f64.const 1 + get_local $15 + f64.div + set_local $15 + end + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $7 + i32.const 1072693248 + i32.sub + get_local $10 + i32.or + i32.const 0 + i32.eq + if + get_local $15 + get_local $15 + f64.sub + get_local $15 + get_local $15 + f64.sub + f64.div + set_local $15 + else + get_local $10 + i32.const 1 + i32.eq + if + get_local $15 + f64.neg + set_local $15 + end + end + end + get_local $15 + return + end + end + f64.const 1 + set_local $16 + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $10 + i32.const 0 + i32.eq + if + get_local $0 + get_local $0 + f64.sub + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $10 + i32.const 1 + i32.eq + if + f64.const -1 + set_local $16 + end + end + get_local $8 + i32.const 1105199104 + i32.gt_s + if + get_local $8 + i32.const 1139802112 + i32.gt_s + if + get_local $7 + i32.const 1072693247 + i32.le_s + if + get_local $5 + i32.const 0 + i32.lt_s + if (result f64) + f64.const 1.e+300 + f64.const 1.e+300 + f64.mul + else + f64.const 1e-300 + f64.const 1e-300 + f64.mul + end + return + end + get_local $7 + i32.const 1072693248 + i32.ge_s + if + get_local $5 + i32.const 0 + i32.gt_s + if (result f64) + f64.const 1.e+300 + f64.const 1.e+300 + f64.mul + else + f64.const 1e-300 + f64.const 1e-300 + f64.mul + end + return + end + end + get_local $7 + i32.const 1072693247 + i32.lt_s + if + get_local $5 + i32.const 0 + i32.lt_s + if (result f64) + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + return + end + get_local $7 + i32.const 1072693248 + i32.gt_s + if + get_local $5 + i32.const 0 + i32.gt_s + if (result f64) + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + return + end + get_local $14 + f64.const 1 + f64.sub + set_local $22 + get_local $22 + get_local $22 + f64.mul + f64.const 0.5 + get_local $22 + f64.const 0.3333333333333333 + get_local $22 + f64.const 0.25 + f64.mul + f64.sub + f64.mul + f64.sub + f64.mul + set_local $25 + f64.const 1.4426950216293335 + get_local $22 + f64.mul + set_local $23 + get_local $22 + f64.const 1.9259629911266175e-08 + f64.mul + get_local $25 + f64.const 1.4426950408889634 + f64.mul + f64.sub + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $17 + get_local $17 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $17 + get_local $24 + get_local $17 + get_local $23 + f64.sub + f64.sub + set_local $18 + else + i32.const 0 + set_local $27 + get_local $7 + i32.const 1048576 + i32.lt_s + if + get_local $14 + f64.const 9007199254740992 + f64.mul + set_local $14 + get_local $27 + i32.const 53 + i32.sub + set_local $27 + get_local $14 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $7 + end + get_local $27 + get_local $7 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $27 + get_local $7 + i32.const 1048575 + i32.and + set_local $26 + get_local $26 + i32.const 1072693248 + i32.or + set_local $7 + get_local $26 + i32.const 235662 + i32.le_s + if + i32.const 0 + set_local $11 + else + get_local $26 + i32.const 767610 + i32.lt_s + if + i32.const 1 + set_local $11 + else + i32.const 0 + set_local $11 + get_local $27 + i32.const 1 + i32.add + set_local $27 + get_local $7 + i32.const 1048576 + i32.sub + set_local $7 + end + end + get_local $14 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $7 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + set_local $14 + f64.const 1.5 + f64.const 1 + get_local $11 + select + set_local $34 + get_local $14 + get_local $34 + f64.sub + set_local $23 + f64.const 1 + get_local $14 + get_local $34 + f64.add + f64.div + set_local $24 + get_local $23 + get_local $24 + f64.mul + set_local $28 + get_local $28 + set_local $30 + get_local $30 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $30 + get_local $7 + i32.const 1 + i32.shr_s + i32.const 536870912 + i32.or + i32.const 524288 + i32.add + get_local $11 + i32.const 18 + i32.shl + i32.add + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $32 + get_local $14 + get_local $32 + get_local $34 + f64.sub + f64.sub + set_local $33 + get_local $24 + get_local $23 + get_local $30 + get_local $32 + f64.mul + f64.sub + get_local $30 + get_local $33 + f64.mul + f64.sub + f64.mul + set_local $31 + get_local $28 + get_local $28 + f64.mul + set_local $29 + get_local $29 + get_local $29 + f64.mul + f64.const 0.5999999999999946 + get_local $29 + f64.const 0.4285714285785502 + get_local $29 + f64.const 0.33333332981837743 + get_local $29 + f64.const 0.272728123808534 + get_local $29 + f64.const 0.23066074577556175 + get_local $29 + f64.const 0.20697501780033842 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $21 + get_local $21 + get_local $31 + get_local $30 + get_local $28 + f64.add + f64.mul + f64.add + set_local $21 + get_local $30 + get_local $30 + f64.mul + set_local $29 + f64.const 3 + get_local $29 + f64.add + get_local $21 + f64.add + set_local $32 + get_local $32 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $32 + get_local $21 + get_local $32 + f64.const 3 + f64.sub + get_local $29 + f64.sub + f64.sub + set_local $33 + get_local $30 + get_local $32 + f64.mul + set_local $23 + get_local $31 + get_local $32 + f64.mul + get_local $33 + get_local $28 + f64.mul + f64.add + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $19 + get_local $19 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $19 + get_local $24 + get_local $19 + get_local $23 + f64.sub + f64.sub + set_local $20 + f64.const 0.9617967009544373 + get_local $19 + f64.mul + set_local $35 + f64.const 1.350039202129749e-08 + f64.const 0 + get_local $11 + select + set_local $36 + f64.const -7.028461650952758e-09 + get_local $19 + f64.mul + get_local $20 + f64.const 0.9617966939259756 + f64.mul + f64.add + get_local $36 + f64.add + set_local $37 + get_local $27 + f64.convert_s/i32 + set_local $22 + f64.const 0.5849624872207642 + f64.const 0 + get_local $11 + select + set_local $38 + get_local $35 + get_local $37 + f64.add + get_local $38 + f64.add + get_local $22 + f64.add + set_local $17 + get_local $17 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $17 + get_local $37 + get_local $17 + get_local $22 + f64.sub + get_local $38 + f64.sub + get_local $35 + f64.sub + f64.sub + set_local $18 + end + get_local $1 + set_local $39 + get_local $39 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $39 + get_local $1 + get_local $39 + f64.sub + get_local $17 + f64.mul + get_local $1 + get_local $18 + f64.mul + f64.add + set_local $20 + get_local $39 + get_local $17 + f64.mul + set_local $19 + get_local $20 + get_local $19 + f64.add + set_local $15 + get_local $15 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $26 + get_local $2 + i32.wrap/i64 + set_local $40 + get_local $26 + i32.const 1083179008 + i32.ge_s + if + get_local $26 + i32.const 1083179008 + i32.sub + get_local $40 + i32.or + i32.const 0 + i32.ne + if + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + return + end + get_local $20 + f64.const 8.008566259537294e-17 + f64.add + get_local $15 + get_local $19 + f64.sub + f64.gt + if + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + return + end + else + get_local $26 + i32.const 2147483647 + i32.and + i32.const 1083231232 + i32.ge_s + if + get_local $26 + i32.const -1064252416 + i32.sub + get_local $40 + i32.or + i32.const 0 + i32.ne + if + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + get_local $20 + get_local $15 + get_local $19 + f64.sub + f64.le + if + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + end + end + get_local $26 + i32.const 2147483647 + i32.and + set_local $40 + get_local $40 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + i32.const 0 + set_local $27 + get_local $40 + i32.const 1071644672 + i32.gt_s + if + get_local $26 + i32.const 1048576 + get_local $11 + i32.const 1 + i32.add + i32.shr_s + i32.add + set_local $27 + get_local $27 + i32.const 2147483647 + i32.and + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + f64.const 0 + set_local $22 + get_local $27 + i32.const 1048575 + get_local $11 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $22 + get_local $27 + i32.const 1048575 + i32.and + i32.const 1048576 + i32.or + i32.const 20 + get_local $11 + i32.sub + i32.shr_s + set_local $27 + get_local $26 + i32.const 0 + i32.lt_s + if + i32.const 0 + get_local $27 + i32.sub + set_local $27 + end + get_local $19 + get_local $22 + f64.sub + set_local $19 + end + get_local $20 + get_local $19 + f64.add + set_local $22 + get_local $22 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $22 + get_local $22 + f64.const 0.6931471824645996 + f64.mul + set_local $23 + get_local $20 + get_local $22 + get_local $19 + f64.sub + f64.sub + f64.const 0.6931471805599453 + f64.mul + get_local $22 + f64.const -1.904654299957768e-09 + f64.mul + f64.add + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $15 + get_local $24 + get_local $15 + get_local $23 + f64.sub + f64.sub + set_local $25 + get_local $15 + get_local $15 + f64.mul + set_local $22 + get_local $15 + get_local $22 + f64.const 0.16666666666666602 + get_local $22 + f64.const -2.7777777777015593e-03 + get_local $22 + f64.const 6.613756321437934e-05 + get_local $22 + f64.const -1.6533902205465252e-06 + get_local $22 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + set_local $17 + get_local $15 + get_local $17 + f64.mul + get_local $17 + f64.const 2 + f64.sub + f64.div + get_local $25 + get_local $15 + get_local $25 + f64.mul + f64.add + f64.sub + set_local $21 + f64.const 1 + get_local $21 + get_local $15 + f64.sub + f64.sub + set_local $15 + get_local $15 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $26 + get_local $26 + get_local $27 + i32.const 20 + i32.shl + i32.add + set_local $26 + get_local $26 + i32.const 20 + i32.shr_s + i32.const 0 + i32.le_s + if + get_local $15 + get_local $27 + call $~lib/math/NativeMath.scalbn + set_local $15 + else + get_local $15 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $26 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + set_local $15 + end + get_local $16 + get_local $15 + f64.mul ) (func $~lib/math/NativeMathf.mod (; 2 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) @@ -1697,496 +1205,338 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (set_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $3 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $4 - (i32.and - (i32.shr_u - (get_local $2) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $5 - (i32.and - (i32.shr_u - (get_local $3) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $6 - (i32.and - (get_local $2) - (i32.const -2147483648) - ) - ) - (set_local $7 - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (if - (i32.and - (if (result i32) - (tee_local $8 - (if (result i32) - (tee_local $8 - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - (get_local $8) - (i32.eq - (get_local $4) - (i32.const 255) - ) - ) - ) - (get_local $8) - (block $~lib/builtins/isNaN|inlined.1 (result i32) - (f32.ne - (get_local $1) - (get_local $1) - ) - ) - ) - (i32.const 1) - ) - (return - (f32.div - (f32.mul - (get_local $0) - (get_local $1) - ) - (f32.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (set_local $9 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (if - (i32.le_u - (get_local $9) - (get_local $7) - ) - (block - (if - (i32.eq - (get_local $9) - (get_local $7) - ) - (return - (f32.mul - (f32.const 0) - (get_local $0) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (block - (set_local $4 - (i32.sub - (get_local $4) - (i32.clz - (i32.shl - (get_local $2) - (i32.const 9) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (i32.add - (i32.sub - (i32.const 0) - (get_local $4) - ) - (i32.const 1) - ) - ) - ) - ) - (block - (set_local $2 - (i32.and - (get_local $2) - (i32.shr_u - (i32.const -1) - (i32.const 9) - ) - ) - ) - (set_local $2 - (i32.or - (get_local $2) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (block - (set_local $5 - (i32.sub - (get_local $5) - (i32.clz - (i32.shl - (get_local $3) - (i32.const 9) - ) - ) - ) - ) - (set_local $3 - (i32.shl - (get_local $3) - (i32.add - (i32.sub - (i32.const 0) - (get_local $5) - ) - (i32.const 1) - ) - ) - ) - ) - (block - (set_local $3 - (i32.and - (get_local $3) - (i32.shr_u - (i32.const -1) - (i32.const 9) - ) - ) - ) - (set_local $3 - (i32.or - (get_local $3) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.gt_s - (get_local $4) - (get_local $5) - ) - (block - (block - (if - (i32.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i32.eq - (get_local $2) - (get_local $3) - ) - (return - (f32.mul - (f32.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i32.eq - (get_local $2) - (get_local $3) - ) - (return - (f32.mul - (f32.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $10 - (i32.clz - (i32.shl - (get_local $2) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (get_local $10) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (get_local $10) - ) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 0) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - (set_local $2 - (i32.or - (get_local $2) - (i32.shl - (get_local $4) - (i32.const 23) - ) - ) - ) - ) - (set_local $2 - (i32.shr_u - (get_local $2) - (i32.add - (i32.sub - (i32.const 0) - (get_local $4) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $2 - (i32.or - (get_local $2) - (get_local $6) - ) - ) - (f32.reinterpret/i32 - (get_local $2) - ) + get_local $0 + i32.reinterpret/f32 + set_local $2 + get_local $1 + i32.reinterpret/f32 + set_local $3 + get_local $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $4 + get_local $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $5 + get_local $2 + i32.const -2147483648 + i32.and + set_local $6 + get_local $3 + i32.const 1 + i32.shl + set_local $7 + get_local $7 + i32.const 0 + i32.eq + tee_local $8 + if (result i32) + get_local $8 + else + get_local $4 + i32.const 255 + i32.eq + end + tee_local $8 + if (result i32) + get_local $8 + else + get_local $1 + get_local $1 + f32.ne + end + i32.const 1 + i32.and + if + get_local $0 + get_local $1 + f32.mul + get_local $0 + get_local $1 + f32.mul + f32.div + return + end + get_local $2 + i32.const 1 + i32.shl + set_local $9 + get_local $9 + get_local $7 + i32.le_u + if + get_local $9 + get_local $7 + i32.eq + if + f32.const 0 + get_local $0 + f32.mul + return + end + get_local $0 + return + end + get_local $4 + i32.eqz + if + get_local $4 + get_local $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + set_local $4 + get_local $2 + i32.const 0 + get_local $4 + i32.sub + i32.const 1 + i32.add + i32.shl + set_local $2 + else + get_local $2 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + set_local $2 + get_local $2 + i32.const 1 + i32.const 23 + i32.shl + i32.or + set_local $2 + end + get_local $5 + i32.eqz + if + get_local $5 + get_local $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + set_local $5 + get_local $3 + i32.const 0 + get_local $5 + i32.sub + i32.const 1 + i32.add + i32.shl + set_local $3 + else + get_local $3 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + set_local $3 + get_local $3 + i32.const 1 + i32.const 23 + i32.shl + i32.or + set_local $3 + end + block $break|0 + loop $continue|0 + get_local $4 + get_local $5 + i32.gt_s + if + block + get_local $2 + get_local $3 + i32.ge_u + if + get_local $2 + get_local $3 + i32.eq + if + f32.const 0 + get_local $0 + f32.mul + return + end + get_local $2 + get_local $3 + i32.sub + set_local $2 + end + get_local $2 + i32.const 1 + i32.shl + set_local $2 + get_local $4 + i32.const 1 + i32.sub + set_local $4 + end + br $continue|0 + end + end + end + get_local $2 + get_local $3 + i32.ge_u + if + get_local $2 + get_local $3 + i32.eq + if + f32.const 0 + get_local $0 + f32.mul + return + end + get_local $2 + get_local $3 + i32.sub + set_local $2 + end + get_local $2 + i32.const 8 + i32.shl + i32.clz + set_local $10 + get_local $4 + get_local $10 + i32.sub + set_local $4 + get_local $2 + get_local $10 + i32.shl + set_local $2 + get_local $4 + i32.const 0 + i32.gt_s + if + get_local $2 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + set_local $2 + get_local $2 + get_local $4 + i32.const 23 + i32.shl + i32.or + set_local $2 + else + get_local $2 + i32.const 0 + get_local $4 + i32.sub + i32.const 1 + i32.add + i32.shr_u + set_local $2 + end + get_local $2 + get_local $6 + i32.or + set_local $2 + get_local $2 + f32.reinterpret/i32 ) (func $~lib/math/NativeMathf.scalbn (; 3 ;) (type $fif) (param $0 f32) (param $1 i32) (result f32) (local $2 f32) (local $3 i32) (local $4 i32) - (set_local $2 - (get_local $0) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 127) - ) - (block - (set_local $2 - (f32.mul - (get_local $2) - (f32.const 1701411834604692317316873e14) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 127) - ) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 127) - ) - (block - (set_local $2 - (f32.mul - (get_local $2) - (f32.const 1701411834604692317316873e14) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (get_local $1) - (i32.const 127) - ) - ) - (tee_local $4 - (i32.const 127) - ) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -126) - ) - (block - (set_local $2 - (f32.mul - (get_local $2) - (f32.mul - (f32.const 1.1754943508222875e-38) - (f32.const 16777216) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.sub - (i32.const 126) - (i32.const 24) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -126) - ) - (block - (set_local $2 - (f32.mul - (get_local $2) - (f32.mul - (f32.const 1.1754943508222875e-38) - (f32.const 16777216) - ) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (i32.add - (get_local $1) - (i32.const 126) - ) - (i32.const 24) - ) - ) - (tee_local $4 - (i32.const -126) - ) - (i32.gt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - ) - (f32.mul - (get_local $2) - (f32.reinterpret/i32 - (i32.shl - (i32.add - (i32.const 127) - (get_local $1) - ) - (i32.const 23) - ) - ) - ) + get_local $0 + set_local $2 + get_local $1 + i32.const 127 + i32.gt_s + if + get_local $2 + f32.const 1701411834604692317316873e14 + f32.mul + set_local $2 + get_local $1 + i32.const 127 + i32.sub + set_local $1 + get_local $1 + i32.const 127 + i32.gt_s + if + get_local $2 + f32.const 1701411834604692317316873e14 + f32.mul + set_local $2 + get_local $1 + i32.const 127 + i32.sub + tee_local $3 + i32.const 127 + tee_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + set_local $1 + end + else + get_local $1 + i32.const -126 + i32.lt_s + if + get_local $2 + f32.const 1.1754943508222875e-38 + f32.const 16777216 + f32.mul + f32.mul + set_local $2 + get_local $1 + i32.const 126 + i32.const 24 + i32.sub + i32.add + set_local $1 + get_local $1 + i32.const -126 + i32.lt_s + if + get_local $2 + f32.const 1.1754943508222875e-38 + f32.const 16777216 + f32.mul + f32.mul + set_local $2 + get_local $1 + i32.const 126 + i32.add + i32.const 24 + i32.sub + tee_local $3 + i32.const -126 + tee_local $4 + get_local $3 + get_local $4 + i32.gt_s + select + set_local $1 + end + end + end + get_local $2 + i32.const 127 + get_local $1 + i32.add + i32.const 23 + i32.shl + f32.reinterpret/i32 + f32.mul ) (func $~lib/math/NativeMathf.pow (; 4 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) @@ -2224,1287 +1574,907 @@ (local $34 f32) (local $35 f32) (local $36 i32) - (set_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $3 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $4 - (i32.and - (get_local $2) - (i32.const 2147483647) - ) - ) - (set_local $5 - (i32.and - (get_local $3) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 0) - ) - (return - (f32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $6 - (i32.gt_s - (get_local $4) - (i32.const 2139095040) - ) - ) - (get_local $6) - (i32.gt_s - (get_local $5) - (i32.const 2139095040) - ) - ) - (return - (f32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $7 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (if - (i32.ge_s - (get_local $5) - (i32.const 1266679808) - ) - (set_local $7 - (i32.const 2) - ) - (if - (i32.ge_s - (get_local $5) - (i32.const 1065353216) - ) - (block - (set_local $9 - (i32.sub - (i32.shr_s - (get_local $5) - (i32.const 23) - ) - (i32.const 127) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $5) - (i32.sub - (i32.const 23) - (get_local $9) - ) - ) - ) - (if - (i32.eq - (i32.shl - (get_local $8) - (i32.sub - (i32.const 23) - (get_local $9) - ) - ) - (get_local $5) - ) - (set_local $7 - (i32.sub - (i32.const 2) - (i32.and - (get_local $8) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 2139095040) - ) - (block - (if - (i32.eq - (get_local $4) - (i32.const 1065353216) - ) - (return - (f32.const nan:0x400000) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 1065353216) - ) - (return - (if (result f32) - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (get_local $1) - (f32.const 0) - ) - ) - (return - (if (result f32) - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (f32.const 0) - (f32.neg - (get_local $1) - ) - ) - ) - ) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1065353216) - ) - (return - (if (result f32) - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (get_local $0) - (f32.div - (f32.const 1) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1073741824) - ) - (return - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1056964608) - ) - (if - (i32.ge_s - (get_local $2) - (i32.const 0) - ) - (return - (f32.sqrt - (get_local $0) - ) - ) - ) - ) - (set_local $10 - (f32.abs - (get_local $0) - ) - ) - (if - (if (result i32) - (tee_local $6 - (if (result i32) - (tee_local $6 - (i32.eq - (get_local $4) - (i32.const 2139095040) - ) - ) - (get_local $6) - (i32.eq - (get_local $4) - (i32.const 0) - ) - ) - ) - (get_local $6) - (i32.eq - (get_local $4) - (i32.const 1065353216) - ) - ) - (block - (set_local $11 - (get_local $10) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (set_local $11 - (f32.div - (f32.const 1) - (get_local $11) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $4) - (i32.const 1065353216) - ) - (get_local $7) - ) - (i32.const 0) - ) - (set_local $11 - (f32.div - (f32.sub - (get_local $11) - (get_local $11) - ) - (f32.sub - (get_local $11) - (get_local $11) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 1) - ) - (set_local $11 - (f32.neg - (get_local $11) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) - ) - ) - (set_local $12 - (f32.const 1) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (block - (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (return - (f32.div - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 1) - ) - (set_local $12 - (f32.const -1) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $5) - (i32.const 1291845632) - ) - (block - (if - (i32.lt_s - (get_local $4) - (i32.const 1065353208) - ) - (return - (if (result f32) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 1065353223) - ) - (return - (if (result f32) - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) - ) - ) - ) - (set_local $17 - (f32.sub - (get_local $10) - (f32.const 1) - ) - ) - (set_local $20 - (f32.mul - (f32.mul - (get_local $17) - (get_local $17) - ) - (f32.sub - (f32.const 0.5) - (f32.mul - (get_local $17) - (f32.sub - (f32.const 0.3333333432674408) - (f32.mul - (get_local $17) - (f32.const 0.25) - ) - ) - ) - ) - ) - ) - (set_local $18 - (f32.mul - (f32.const 1.44268798828125) - (get_local $17) - ) - ) - (set_local $19 - (f32.sub - (f32.mul - (get_local $17) - (f32.const 7.052607543300837e-06) - ) - (f32.mul - (get_local $20) - (f32.const 1.4426950216293335) - ) - ) - ) - (set_local $13 - (f32.add - (get_local $18) - (get_local $19) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $13) - ) - ) - (set_local $13 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $14 - (f32.sub - (get_local $19) - (f32.sub - (get_local $13) - (get_local $18) - ) - ) - ) - ) - (block - (set_local $23 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 8388608) - ) - (block - (set_local $10 - (f32.mul - (get_local $10) - (f32.const 16777216) - ) - ) - (set_local $23 - (i32.sub - (get_local $23) - (i32.const 24) - ) - ) - (set_local $4 - (i32.reinterpret/f32 - (get_local $10) - ) - ) - ) - ) - (set_local $23 - (i32.add - (get_local $23) - (i32.sub - (i32.shr_s - (get_local $4) - (i32.const 23) - ) - (i32.const 127) - ) - ) - ) - (set_local $8 - (i32.and - (get_local $4) - (i32.const 8388607) - ) - ) - (set_local $4 - (i32.or - (get_local $8) - (i32.const 1065353216) - ) - ) - (if - (i32.le_s - (get_local $8) - (i32.const 1885297) - ) - (set_local $9 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $8) - (i32.const 6140887) - ) - (set_local $9 - (i32.const 1) - ) - (block - (set_local $9 - (i32.const 0) - ) - (set_local $23 - (i32.add - (get_local $23) - (i32.const 1) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 8388608) - ) - ) - ) - ) - ) - (set_local $10 - (f32.reinterpret/i32 - (get_local $4) - ) - ) - (set_local $30 - (select - (f32.const 1.5) - (f32.const 1) - (get_local $9) - ) - ) - (set_local $18 - (f32.sub - (get_local $10) - (get_local $30) - ) - ) - (set_local $19 - (f32.div - (f32.const 1) - (f32.add - (get_local $10) - (get_local $30) - ) - ) - ) - (set_local $16 - (f32.mul - (get_local $18) - (get_local $19) - ) - ) - (set_local $26 - (get_local $16) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $26) - ) - ) - (set_local $26 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $24 - (i32.or - (i32.and - (i32.shr_s - (get_local $4) - (i32.const 1) - ) - (i32.const -4096) - ) - (i32.const 536870912) - ) - ) - (set_local $28 - (f32.reinterpret/i32 - (i32.add - (i32.add - (get_local $24) - (i32.const 4194304) - ) - (i32.shl - (get_local $9) - (i32.const 21) - ) - ) - ) - ) - (set_local $29 - (f32.sub - (get_local $10) - (f32.sub - (get_local $28) - (get_local $30) - ) - ) - ) - (set_local $27 - (f32.mul - (get_local $19) - (f32.sub - (f32.sub - (get_local $18) - (f32.mul - (get_local $26) - (get_local $28) - ) - ) - (f32.mul - (get_local $26) - (get_local $29) - ) - ) - ) - ) - (set_local $25 - (f32.mul - (get_local $16) - (get_local $16) - ) - ) - (set_local $15 - (f32.mul - (f32.mul - (get_local $25) - (get_local $25) - ) - (f32.add - (f32.const 0.6000000238418579) - (f32.mul - (get_local $25) - (f32.add - (f32.const 0.4285714328289032) - (f32.mul - (get_local $25) - (f32.add - (f32.const 0.3333333432674408) - (f32.mul - (get_local $25) - (f32.add - (f32.const 0.2727281153202057) - (f32.mul - (get_local $25) - (f32.add - (f32.const 0.23066075146198273) - (f32.mul - (get_local $25) - (f32.const 0.20697501301765442) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $15 - (f32.add - (get_local $15) - (f32.mul - (get_local $27) - (f32.add - (get_local $26) - (get_local $16) - ) - ) - ) - ) - (set_local $25 - (f32.mul - (get_local $26) - (get_local $26) - ) - ) - (set_local $28 - (f32.add - (f32.add - (f32.const 3) - (get_local $25) - ) - (get_local $15) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $28) - ) - ) - (set_local $28 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $29 - (f32.sub - (get_local $15) - (f32.sub - (f32.sub - (get_local $28) - (f32.const 3) - ) - (get_local $25) - ) - ) - ) - (set_local $18 - (f32.mul - (get_local $26) - (get_local $28) - ) - ) - (set_local $19 - (f32.add - (f32.mul - (get_local $27) - (get_local $28) - ) - (f32.mul - (get_local $29) - (get_local $16) - ) - ) - ) - (set_local $21 - (f32.add - (get_local $18) - (get_local $19) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $21) - ) - ) - (set_local $21 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $22 - (f32.sub - (get_local $19) - (f32.sub - (get_local $21) - (get_local $18) - ) - ) - ) - (set_local $31 - (f32.mul - (f32.const 0.9619140625) - (get_local $21) - ) - ) - (set_local $32 - (select - (f32.const 1.5632208487659227e-06) - (f32.const 0) - (get_local $9) - ) - ) - (set_local $33 - (f32.add - (f32.add - (f32.mul - (f32.const -1.1736857413779944e-04) - (get_local $21) - ) - (f32.mul - (get_local $22) - (f32.const 0.9617967009544373) - ) - ) - (get_local $32) - ) - ) - (set_local $17 - (f32.convert_s/i32 - (get_local $23) - ) - ) - (set_local $34 - (select - (f32.const 0.5849609375) - (f32.const 0) - (get_local $9) - ) - ) - (set_local $13 - (f32.add - (f32.add - (f32.add - (get_local $31) - (get_local $33) - ) - (get_local $34) - ) - (get_local $17) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $13) - ) - ) - (set_local $13 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $14 - (f32.sub - (get_local $33) - (f32.sub - (f32.sub - (f32.sub - (get_local $13) - (get_local $17) - ) - (get_local $34) - ) - (get_local $31) - ) - ) - ) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $35 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $22 - (f32.add - (f32.mul - (f32.sub - (get_local $1) - (get_local $35) - ) - (get_local $13) - ) - (f32.mul - (get_local $1) - (get_local $14) - ) - ) - ) - (set_local $21 - (f32.mul - (get_local $35) - (get_local $13) - ) - ) - (set_local $11 - (f32.add - (get_local $22) - (get_local $21) - ) - ) - (set_local $8 - (i32.reinterpret/f32 - (get_local $11) - ) - ) - (if - (i32.gt_s - (get_local $8) - (i32.const 1124073472) - ) - (return - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 1124073472) - ) - (if - (f32.gt - (f32.add - (get_local $22) - (f32.const 4.299566569443414e-08) - ) - (f32.sub - (get_local $11) - (get_local $21) - ) - ) - (return - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - ) - ) - (if - (i32.gt_s - (i32.and - (get_local $8) - (i32.const 2147483647) - ) - (i32.const 1125515264) - ) - (return - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const -1021968384) - ) - (if - (f32.le - (get_local $22) - (f32.sub - (get_local $11) - (get_local $21) - ) - ) - (return - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) - ) - ) - ) - ) - ) - ) - (set_local $36 - (i32.and - (get_local $8) - (i32.const 2147483647) - ) - ) - (set_local $9 - (i32.sub - (i32.shr_s - (get_local $36) - (i32.const 23) - ) - (i32.const 127) - ) - ) - (set_local $23 - (i32.const 0) - ) - (if - (i32.gt_s - (get_local $36) - (i32.const 1056964608) - ) - (block - (set_local $23 - (i32.add - (get_local $8) - (i32.shr_s - (i32.const 8388608) - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - ) - ) - (set_local $9 - (i32.sub - (i32.shr_s - (i32.and - (get_local $23) - (i32.const 2147483647) - ) - (i32.const 23) - ) - (i32.const 127) - ) - ) - (set_local $17 - (f32.reinterpret/i32 - (i32.and - (get_local $23) - (i32.xor - (i32.shr_s - (i32.const 8388607) - (get_local $9) - ) - (i32.const -1) - ) - ) - ) - ) - (set_local $23 - (i32.shr_s - (i32.or - (i32.and - (get_local $23) - (i32.const 8388607) - ) - (i32.const 8388608) - ) - (i32.sub - (i32.const 23) - (get_local $9) - ) - ) - ) - (if - (i32.lt_s - (get_local $8) - (i32.const 0) - ) - (set_local $23 - (i32.sub - (i32.const 0) - (get_local $23) - ) - ) - ) - (set_local $21 - (f32.sub - (get_local $21) - (get_local $17) - ) - ) - ) - ) - (set_local $17 - (f32.add - (get_local $22) - (get_local $21) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $17) - ) - ) - (set_local $17 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -32768) - ) - ) - ) - (set_local $18 - (f32.mul - (get_local $17) - (f32.const 0.693145751953125) - ) - ) - (set_local $19 - (f32.add - (f32.mul - (f32.sub - (get_local $22) - (f32.sub - (get_local $17) - (get_local $21) - ) - ) - (f32.const 0.6931471824645996) - ) - (f32.mul - (get_local $17) - (f32.const 1.4286065379565116e-06) - ) - ) - ) - (set_local $11 - (f32.add - (get_local $18) - (get_local $19) - ) - ) - (set_local $20 - (f32.sub - (get_local $19) - (f32.sub - (get_local $11) - (get_local $18) - ) - ) - ) - (set_local $17 - (f32.mul - (get_local $11) - (get_local $11) - ) - ) - (set_local $13 - (f32.sub - (get_local $11) - (f32.mul - (get_local $17) - (f32.add - (f32.const 0.1666666716337204) - (f32.mul - (get_local $17) - (f32.add - (f32.const -2.7777778450399637e-03) - (f32.mul - (get_local $17) - (f32.add - (f32.const 6.61375597701408e-05) - (f32.mul - (get_local $17) - (f32.add - (f32.const -1.6533901998627698e-06) - (f32.mul - (get_local $17) - (f32.const 4.138136944220605e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $15 - (f32.sub - (f32.div - (f32.mul - (get_local $11) - (get_local $13) - ) - (f32.sub - (get_local $13) - (f32.const 2) - ) - ) - (f32.add - (get_local $20) - (f32.mul - (get_local $11) - (get_local $20) - ) - ) - ) - ) - (set_local $11 - (f32.sub - (f32.const 1) - (f32.sub - (get_local $15) - (get_local $11) - ) - ) - ) - (set_local $8 - (i32.reinterpret/f32 - (get_local $11) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.shl - (get_local $23) - (i32.const 23) - ) - ) - ) - (if - (i32.le_s - (i32.shr_s - (get_local $8) - (i32.const 23) - ) - (i32.const 0) - ) - (set_local $11 - (call $~lib/math/NativeMathf.scalbn - (get_local $11) - (get_local $23) - ) - ) - (set_local $11 - (f32.reinterpret/i32 - (get_local $8) - ) - ) - ) - (f32.mul - (get_local $12) - (get_local $11) - ) + get_local $0 + i32.reinterpret/f32 + set_local $2 + get_local $1 + i32.reinterpret/f32 + set_local $3 + get_local $2 + i32.const 2147483647 + i32.and + set_local $4 + get_local $3 + i32.const 2147483647 + i32.and + set_local $5 + get_local $5 + i32.const 0 + i32.eq + if + f32.const 1 + return + end + get_local $4 + i32.const 2139095040 + i32.gt_s + tee_local $6 + if (result i32) + get_local $6 + else + get_local $5 + i32.const 2139095040 + i32.gt_s + end + if + get_local $0 + get_local $1 + f32.add + return + end + i32.const 0 + set_local $7 + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $5 + i32.const 1266679808 + i32.ge_s + if + i32.const 2 + set_local $7 + else + get_local $5 + i32.const 1065353216 + i32.ge_s + if + get_local $5 + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + set_local $9 + get_local $5 + i32.const 23 + get_local $9 + i32.sub + i32.shr_s + set_local $8 + get_local $8 + i32.const 23 + get_local $9 + i32.sub + i32.shl + get_local $5 + i32.eq + if + i32.const 2 + get_local $8 + i32.const 1 + i32.and + i32.sub + set_local $7 + end + end + end + end + get_local $5 + i32.const 2139095040 + i32.eq + if + get_local $4 + i32.const 1065353216 + i32.eq + if + f32.const nan:0x400000 + return + else + get_local $4 + i32.const 1065353216 + i32.gt_s + if + get_local $3 + i32.const 0 + i32.ge_s + if (result f32) + get_local $1 + else + f32.const 0 + end + return + else + get_local $3 + i32.const 0 + i32.ge_s + if (result f32) + f32.const 0 + else + get_local $1 + f32.neg + end + return + end + unreachable + end + unreachable + unreachable + end + get_local $5 + i32.const 1065353216 + i32.eq + if + get_local $3 + i32.const 0 + i32.ge_s + if (result f32) + get_local $0 + else + f32.const 1 + get_local $0 + f32.div + end + return + end + get_local $3 + i32.const 1073741824 + i32.eq + if + get_local $0 + get_local $0 + f32.mul + return + end + get_local $3 + i32.const 1056964608 + i32.eq + if + get_local $2 + i32.const 0 + i32.ge_s + if + get_local $0 + f32.sqrt + return + end + end + get_local $0 + f32.abs + set_local $10 + get_local $4 + i32.const 2139095040 + i32.eq + tee_local $6 + if (result i32) + get_local $6 + else + get_local $4 + i32.const 0 + i32.eq + end + tee_local $6 + if (result i32) + get_local $6 + else + get_local $4 + i32.const 1065353216 + i32.eq + end + if + get_local $10 + set_local $11 + get_local $3 + i32.const 0 + i32.lt_s + if + f32.const 1 + get_local $11 + f32.div + set_local $11 + end + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $4 + i32.const 1065353216 + i32.sub + get_local $7 + i32.or + i32.const 0 + i32.eq + if + get_local $11 + get_local $11 + f32.sub + get_local $11 + get_local $11 + f32.sub + f32.div + set_local $11 + else + get_local $7 + i32.const 1 + i32.eq + if + get_local $11 + f32.neg + set_local $11 + end + end + end + get_local $11 + return + end + f32.const 1 + set_local $12 + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $7 + i32.const 0 + i32.eq + if + get_local $0 + get_local $0 + f32.sub + get_local $0 + get_local $0 + f32.sub + f32.div + return + end + get_local $7 + i32.const 1 + i32.eq + if + f32.const -1 + set_local $12 + end + end + get_local $5 + i32.const 1291845632 + i32.gt_s + if + get_local $4 + i32.const 1065353208 + i32.lt_s + if + get_local $3 + i32.const 0 + i32.lt_s + if (result f32) + get_local $12 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + else + get_local $12 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul + end + return + end + get_local $4 + i32.const 1065353223 + i32.gt_s + if + get_local $3 + i32.const 0 + i32.gt_s + if (result f32) + get_local $12 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + else + get_local $12 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul + end + return + end + get_local $10 + f32.const 1 + f32.sub + set_local $17 + get_local $17 + get_local $17 + f32.mul + f32.const 0.5 + get_local $17 + f32.const 0.3333333432674408 + get_local $17 + f32.const 0.25 + f32.mul + f32.sub + f32.mul + f32.sub + f32.mul + set_local $20 + f32.const 1.44268798828125 + get_local $17 + f32.mul + set_local $18 + get_local $17 + f32.const 7.052607543300837e-06 + f32.mul + get_local $20 + f32.const 1.4426950216293335 + f32.mul + f32.sub + set_local $19 + get_local $18 + get_local $19 + f32.add + set_local $13 + get_local $13 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $13 + get_local $19 + get_local $13 + get_local $18 + f32.sub + f32.sub + set_local $14 + else + i32.const 0 + set_local $23 + get_local $4 + i32.const 8388608 + i32.lt_s + if + get_local $10 + f32.const 16777216 + f32.mul + set_local $10 + get_local $23 + i32.const 24 + i32.sub + set_local $23 + get_local $10 + i32.reinterpret/f32 + set_local $4 + end + get_local $23 + get_local $4 + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + i32.add + set_local $23 + get_local $4 + i32.const 8388607 + i32.and + set_local $8 + get_local $8 + i32.const 1065353216 + i32.or + set_local $4 + get_local $8 + i32.const 1885297 + i32.le_s + if + i32.const 0 + set_local $9 + else + get_local $8 + i32.const 6140887 + i32.lt_s + if + i32.const 1 + set_local $9 + else + i32.const 0 + set_local $9 + get_local $23 + i32.const 1 + i32.add + set_local $23 + get_local $4 + i32.const 8388608 + i32.sub + set_local $4 + end + end + get_local $4 + f32.reinterpret/i32 + set_local $10 + f32.const 1.5 + f32.const 1 + get_local $9 + select + set_local $30 + get_local $10 + get_local $30 + f32.sub + set_local $18 + f32.const 1 + get_local $10 + get_local $30 + f32.add + f32.div + set_local $19 + get_local $18 + get_local $19 + f32.mul + set_local $16 + get_local $16 + set_local $26 + get_local $26 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $26 + get_local $4 + i32.const 1 + i32.shr_s + i32.const -4096 + i32.and + i32.const 536870912 + i32.or + set_local $24 + get_local $24 + i32.const 4194304 + i32.add + get_local $9 + i32.const 21 + i32.shl + i32.add + f32.reinterpret/i32 + set_local $28 + get_local $10 + get_local $28 + get_local $30 + f32.sub + f32.sub + set_local $29 + get_local $19 + get_local $18 + get_local $26 + get_local $28 + f32.mul + f32.sub + get_local $26 + get_local $29 + f32.mul + f32.sub + f32.mul + set_local $27 + get_local $16 + get_local $16 + f32.mul + set_local $25 + get_local $25 + get_local $25 + f32.mul + f32.const 0.6000000238418579 + get_local $25 + f32.const 0.4285714328289032 + get_local $25 + f32.const 0.3333333432674408 + get_local $25 + f32.const 0.2727281153202057 + get_local $25 + f32.const 0.23066075146198273 + get_local $25 + f32.const 0.20697501301765442 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + set_local $15 + get_local $15 + get_local $27 + get_local $26 + get_local $16 + f32.add + f32.mul + f32.add + set_local $15 + get_local $26 + get_local $26 + f32.mul + set_local $25 + f32.const 3 + get_local $25 + f32.add + get_local $15 + f32.add + set_local $28 + get_local $28 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $28 + get_local $15 + get_local $28 + f32.const 3 + f32.sub + get_local $25 + f32.sub + f32.sub + set_local $29 + get_local $26 + get_local $28 + f32.mul + set_local $18 + get_local $27 + get_local $28 + f32.mul + get_local $29 + get_local $16 + f32.mul + f32.add + set_local $19 + get_local $18 + get_local $19 + f32.add + set_local $21 + get_local $21 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $21 + get_local $19 + get_local $21 + get_local $18 + f32.sub + f32.sub + set_local $22 + f32.const 0.9619140625 + get_local $21 + f32.mul + set_local $31 + f32.const 1.5632208487659227e-06 + f32.const 0 + get_local $9 + select + set_local $32 + f32.const -1.1736857413779944e-04 + get_local $21 + f32.mul + get_local $22 + f32.const 0.9617967009544373 + f32.mul + f32.add + get_local $32 + f32.add + set_local $33 + get_local $23 + f32.convert_s/i32 + set_local $17 + f32.const 0.5849609375 + f32.const 0 + get_local $9 + select + set_local $34 + get_local $31 + get_local $33 + f32.add + get_local $34 + f32.add + get_local $17 + f32.add + set_local $13 + get_local $13 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $13 + get_local $33 + get_local $13 + get_local $17 + f32.sub + get_local $34 + f32.sub + get_local $31 + f32.sub + f32.sub + set_local $14 + end + get_local $1 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $35 + get_local $1 + get_local $35 + f32.sub + get_local $13 + f32.mul + get_local $1 + get_local $14 + f32.mul + f32.add + set_local $22 + get_local $35 + get_local $13 + f32.mul + set_local $21 + get_local $22 + get_local $21 + f32.add + set_local $11 + get_local $11 + i32.reinterpret/f32 + set_local $8 + get_local $8 + i32.const 1124073472 + i32.gt_s + if + get_local $12 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + return + else + get_local $8 + i32.const 1124073472 + i32.eq + if + get_local $22 + f32.const 4.299566569443414e-08 + f32.add + get_local $11 + get_local $21 + f32.sub + f32.gt + if + get_local $12 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + return + end + else + get_local $8 + i32.const 2147483647 + i32.and + i32.const 1125515264 + i32.gt_s + if + get_local $12 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul + return + else + get_local $8 + i32.const -1021968384 + i32.eq + if + get_local $22 + get_local $11 + get_local $21 + f32.sub + f32.le + if + get_local $12 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul + return + end + end + end + end + end + get_local $8 + i32.const 2147483647 + i32.and + set_local $36 + get_local $36 + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + set_local $9 + i32.const 0 + set_local $23 + get_local $36 + i32.const 1056964608 + i32.gt_s + if + get_local $8 + i32.const 8388608 + get_local $9 + i32.const 1 + i32.add + i32.shr_s + i32.add + set_local $23 + get_local $23 + i32.const 2147483647 + i32.and + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + set_local $9 + get_local $23 + i32.const 8388607 + get_local $9 + i32.shr_s + i32.const -1 + i32.xor + i32.and + f32.reinterpret/i32 + set_local $17 + get_local $23 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i32.const 23 + get_local $9 + i32.sub + i32.shr_s + set_local $23 + get_local $8 + i32.const 0 + i32.lt_s + if + i32.const 0 + get_local $23 + i32.sub + set_local $23 + end + get_local $21 + get_local $17 + f32.sub + set_local $21 + end + get_local $22 + get_local $21 + f32.add + set_local $17 + get_local $17 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -32768 + i32.and + f32.reinterpret/i32 + set_local $17 + get_local $17 + f32.const 0.693145751953125 + f32.mul + set_local $18 + get_local $22 + get_local $17 + get_local $21 + f32.sub + f32.sub + f32.const 0.6931471824645996 + f32.mul + get_local $17 + f32.const 1.4286065379565116e-06 + f32.mul + f32.add + set_local $19 + get_local $18 + get_local $19 + f32.add + set_local $11 + get_local $19 + get_local $11 + get_local $18 + f32.sub + f32.sub + set_local $20 + get_local $11 + get_local $11 + f32.mul + set_local $17 + get_local $11 + get_local $17 + f32.const 0.1666666716337204 + get_local $17 + f32.const -2.7777778450399637e-03 + get_local $17 + f32.const 6.61375597701408e-05 + get_local $17 + f32.const -1.6533901998627698e-06 + get_local $17 + f32.const 4.138136944220605e-08 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.sub + set_local $13 + get_local $11 + get_local $13 + f32.mul + get_local $13 + f32.const 2 + f32.sub + f32.div + get_local $20 + get_local $11 + get_local $20 + f32.mul + f32.add + f32.sub + set_local $15 + f32.const 1 + get_local $15 + get_local $11 + f32.sub + f32.sub + set_local $11 + get_local $11 + i32.reinterpret/f32 + set_local $8 + get_local $8 + get_local $23 + i32.const 23 + i32.shl + i32.add + set_local $8 + get_local $8 + i32.const 23 + i32.shr_s + i32.const 0 + i32.le_s + if + get_local $11 + get_local $23 + call $~lib/math/NativeMathf.scalbn + set_local $11 + else + get_local $8 + f32.reinterpret/i32 + set_local $11 + end + get_local $12 + get_local $11 + f32.mul ) (func $~lib/math/NativeMath.mod (; 5 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -3516,1279 +2486,858 @@ (local $8 i32) (local $9 i64) (local $10 i64) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $4 - (i64.and - (i64.shr_u - (get_local $2) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $5 - (i64.and - (i64.shr_u - (get_local $3) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $6 - (i64.shr_u - (get_local $2) - (i64.const 63) - ) - ) - (set_local $7 - (i64.shl - (get_local $3) - (i64.const 1) - ) - ) - (if - (i32.and - (if (result i32) - (tee_local $8 - (if (result i32) - (tee_local $8 - (i64.eq - (get_local $7) - (i64.const 0) - ) - ) - (get_local $8) - (i64.eq - (get_local $4) - (i64.const 2047) - ) - ) - ) - (get_local $8) - (block $~lib/builtins/isNaN|inlined.1 (result i32) - (f64.ne - (get_local $1) - (get_local $1) - ) - ) - ) - (i32.const 1) - ) - (return - (f64.div - (f64.mul - (get_local $0) - (get_local $1) - ) - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (set_local $9 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (if - (i64.le_u - (get_local $9) - (get_local $7) - ) - (block - (if - (i64.eq - (get_local $9) - (get_local $7) - ) - (return - (f64.mul - (f64.const 0) - (get_local $0) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i64.eqz - (get_local $4) - ) - (block - (set_local $4 - (i64.sub - (get_local $4) - (i64.clz - (i64.shl - (get_local $2) - (i64.const 12) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (get_local $4) - ) - (i64.const 1) - ) - ) - ) - ) - (block - (set_local $2 - (i64.and - (get_local $2) - (i64.shr_u - (i64.const -1) - (i64.const 12) - ) - ) - ) - (set_local $2 - (i64.or - (get_local $2) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - ) - ) - (if - (i64.eqz - (get_local $5) - ) - (block - (set_local $5 - (i64.sub - (get_local $5) - (i64.clz - (i64.shl - (get_local $3) - (i64.const 12) - ) - ) - ) - ) - (set_local $3 - (i64.shl - (get_local $3) - (i64.add - (i64.sub - (i64.const 0) - (get_local $5) - ) - (i64.const 1) - ) - ) - ) - ) - (block - (set_local $3 - (i64.and - (get_local $3) - (i64.shr_u - (i64.const -1) - (i64.const 12) - ) - ) - ) - (set_local $3 - (i64.or - (get_local $3) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i64.gt_s - (get_local $4) - (get_local $5) - ) - (block - (block - (if - (i64.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i64.eq - (get_local $2) - (get_local $3) - ) - (return - (f64.mul - (f64.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (set_local $4 - (i64.sub - (get_local $4) - (i64.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i64.eq - (get_local $2) - (get_local $3) - ) - (return - (f64.mul - (f64.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $10 - (i64.clz - (i64.shl - (get_local $2) - (i64.const 11) - ) - ) - ) - (set_local $4 - (i64.sub - (get_local $4) - (get_local $10) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (get_local $10) - ) - ) - (if - (i64.gt_s - (get_local $4) - (i64.const 0) - ) - (block - (set_local $2 - (i64.sub - (get_local $2) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - (set_local $2 - (i64.or - (get_local $2) - (i64.shl - (get_local $4) - (i64.const 52) - ) - ) - ) - ) - (set_local $2 - (i64.shr_u - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (get_local $4) - ) - (i64.const 1) - ) - ) - ) - ) - (set_local $2 - (i64.or - (get_local $2) - (i64.shl - (get_local $6) - (i64.const 63) - ) - ) - ) - (f64.reinterpret/i64 - (get_local $2) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $4 + get_local $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $5 + get_local $2 + i64.const 63 + i64.shr_u + set_local $6 + get_local $3 + i64.const 1 + i64.shl + set_local $7 + get_local $7 + i64.const 0 + i64.eq + tee_local $8 + if (result i32) + get_local $8 + else + get_local $4 + i64.const 2047 + i64.eq + end + tee_local $8 + if (result i32) + get_local $8 + else + get_local $1 + get_local $1 + f64.ne + end + i32.const 1 + i32.and + if + get_local $0 + get_local $1 + f64.mul + get_local $0 + get_local $1 + f64.mul + f64.div + return + end + get_local $2 + i64.const 1 + i64.shl + set_local $9 + get_local $9 + get_local $7 + i64.le_u + if + get_local $9 + get_local $7 + i64.eq + if + f64.const 0 + get_local $0 + f64.mul + return + end + get_local $0 + return + end + get_local $4 + i64.eqz + if + get_local $4 + get_local $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + set_local $4 + get_local $2 + i64.const 0 + get_local $4 + i64.sub + i64.const 1 + i64.add + i64.shl + set_local $2 + else + get_local $2 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + set_local $2 + get_local $2 + i64.const 1 + i64.const 52 + i64.shl + i64.or + set_local $2 + end + get_local $5 + i64.eqz + if + get_local $5 + get_local $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + set_local $5 + get_local $3 + i64.const 0 + get_local $5 + i64.sub + i64.const 1 + i64.add + i64.shl + set_local $3 + else + get_local $3 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + set_local $3 + get_local $3 + i64.const 1 + i64.const 52 + i64.shl + i64.or + set_local $3 + end + block $break|0 + loop $continue|0 + get_local $4 + get_local $5 + i64.gt_s + if + block + get_local $2 + get_local $3 + i64.ge_u + if + get_local $2 + get_local $3 + i64.eq + if + f64.const 0 + get_local $0 + f64.mul + return + end + get_local $2 + get_local $3 + i64.sub + set_local $2 + end + get_local $2 + i64.const 1 + i64.shl + set_local $2 + get_local $4 + i64.const 1 + i64.sub + set_local $4 + end + br $continue|0 + end + end + end + get_local $2 + get_local $3 + i64.ge_u + if + get_local $2 + get_local $3 + i64.eq + if + f64.const 0 + get_local $0 + f64.mul + return + end + get_local $2 + get_local $3 + i64.sub + set_local $2 + end + get_local $2 + i64.const 11 + i64.shl + i64.clz + set_local $10 + get_local $4 + get_local $10 + i64.sub + set_local $4 + get_local $2 + get_local $10 + i64.shl + set_local $2 + get_local $4 + i64.const 0 + i64.gt_s + if + get_local $2 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + set_local $2 + get_local $2 + get_local $4 + i64.const 52 + i64.shl + i64.or + set_local $2 + else + get_local $2 + i64.const 0 + get_local $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + set_local $2 + end + get_local $2 + get_local $6 + i64.const 63 + i64.shl + i64.or + set_local $2 + get_local $2 + f64.reinterpret/i64 ) (func $start (; 6 ;) (type $v) - (drop - (i32.lt_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.gt_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.le_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.ge_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.eq - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.eq - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.add - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.sub - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.mul - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.div_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.rem_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (call $~lib/math/NativeMath.pow - (f64.convert_s/i32 - (get_global $binary/i) - ) - (f64.const 1) - ) - ) - (drop - (i32.shl - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.shr_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.shr_u - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.and - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.or - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i32.xor - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.lt_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.gt_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.le_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.ge_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.eq - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/b - (i32.eq - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.add - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.sub - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.mul - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.div_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.rem_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.trunc_s/f64 - (call $~lib/math/NativeMath.pow - (f64.convert_s/i32 - (get_global $binary/i) - ) - (f64.const 1) - ) - ) - ) - (set_global $binary/i - (i32.shl - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.shr_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.shr_u - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.and - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.or - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.xor - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.add - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.sub - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.mul - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.rem_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.shl - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.shr_s - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.shr_u - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.and - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.or - (get_global $binary/i) - (i32.const 1) - ) - ) - (set_global $binary/i - (i32.xor - (get_global $binary/i) - (i32.const 1) - ) - ) - (drop - (i64.lt_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.gt_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.le_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.ge_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.eq - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.eq - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.add - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.sub - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.mul - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.div_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.rem_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (call $~lib/math/NativeMath.pow - (f64.convert_s/i64 - (get_global $binary/I) - ) - (f64.const 1) - ) - ) - (drop - (i64.shl - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.shr_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.shr_u - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.and - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.or - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (i64.xor - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.lt_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.gt_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.le_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.ge_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.eq - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/b - (i64.eq - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.add - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.sub - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.mul - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.div_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.rem_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.trunc_s/f64 - (call $~lib/math/NativeMath.pow - (f64.convert_s/i64 - (get_global $binary/I) - ) - (f64.const 1) - ) - ) - ) - (set_global $binary/I - (i64.shl - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.shr_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.shr_u - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.and - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.or - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.xor - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.add - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.sub - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.mul - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.rem_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.shl - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.shr_s - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.shr_u - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.and - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.or - (get_global $binary/I) - (i64.const 1) - ) - ) - (set_global $binary/I - (i64.xor - (get_global $binary/I) - (i64.const 1) - ) - ) - (drop - (f32.lt - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (f32.gt - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (f32.le - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (f32.ge - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (f32.eq - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (f32.eq - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (f32.add - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (f32.sub - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (f32.mul - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (f32.div - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (call $~lib/math/NativeMathf.mod - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (call $~lib/math/NativeMathf.pow - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.lt - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.gt - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.le - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.ge - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.eq - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/b - (f32.eq - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (f32.add - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (f32.sub - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (f32.mul - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (f32.div - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (call $~lib/math/NativeMathf.mod - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (call $~lib/math/NativeMathf.pow - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (f32.add - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (f32.sub - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (f32.mul - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (call $~lib/math/NativeMathf.mod - (get_global $binary/f) - (f32.const 1) - ) - ) - (set_global $binary/f - (call $~lib/math/NativeMathf.pow - (get_global $binary/f) - (f32.const 1) - ) - ) - (drop - (f64.lt - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (f64.gt - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (f64.le - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (f64.ge - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (f64.eq - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (f64.eq - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (f64.add - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (f64.sub - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (f64.mul - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (f64.div - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (call $~lib/math/NativeMath.mod - (get_global $binary/F) - (f64.const 1) - ) - ) - (drop - (call $~lib/math/NativeMath.pow - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.lt - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.gt - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.le - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.ge - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.eq - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/b - (f64.eq - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (f64.add - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (f64.sub - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (f64.mul - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (f64.div - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (call $~lib/math/NativeMath.mod - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (call $~lib/math/NativeMath.pow - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (f64.add - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (f64.sub - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (f64.mul - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (call $~lib/math/NativeMath.mod - (get_global $binary/F) - (f64.const 1) - ) - ) - (set_global $binary/F - (call $~lib/math/NativeMath.pow - (get_global $binary/F) - (f64.const 1) - ) - ) + get_global $binary/i + i32.const 1 + i32.lt_s + drop + get_global $binary/i + i32.const 1 + i32.gt_s + drop + get_global $binary/i + i32.const 1 + i32.le_s + drop + get_global $binary/i + i32.const 1 + i32.ge_s + drop + get_global $binary/i + i32.const 1 + i32.eq + drop + get_global $binary/i + i32.const 1 + i32.eq + drop + get_global $binary/i + i32.const 1 + i32.add + drop + get_global $binary/i + i32.const 1 + i32.sub + drop + get_global $binary/i + i32.const 1 + i32.mul + drop + get_global $binary/i + i32.const 1 + i32.div_s + drop + get_global $binary/i + i32.const 1 + i32.rem_s + drop + get_global $binary/i + f64.convert_s/i32 + f64.const 1 + call $~lib/math/NativeMath.pow + drop + get_global $binary/i + i32.const 1 + i32.shl + drop + get_global $binary/i + i32.const 1 + i32.shr_s + drop + get_global $binary/i + i32.const 1 + i32.shr_u + drop + get_global $binary/i + i32.const 1 + i32.and + drop + get_global $binary/i + i32.const 1 + i32.or + drop + get_global $binary/i + i32.const 1 + i32.xor + drop + get_global $binary/i + i32.const 1 + i32.lt_s + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.gt_s + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.le_s + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.ge_s + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.eq + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.eq + set_global $binary/b + get_global $binary/i + i32.const 1 + i32.add + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.sub + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.mul + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.div_s + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.rem_s + set_global $binary/i + get_global $binary/i + f64.convert_s/i32 + f64.const 1 + call $~lib/math/NativeMath.pow + i32.trunc_s/f64 + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shl + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shr_s + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shr_u + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.and + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.or + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.xor + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.add + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.sub + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.mul + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.rem_s + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shl + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shr_s + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.shr_u + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.and + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.or + set_global $binary/i + get_global $binary/i + i32.const 1 + i32.xor + set_global $binary/i + get_global $binary/I + i64.const 1 + i64.lt_s + drop + get_global $binary/I + i64.const 1 + i64.gt_s + drop + get_global $binary/I + i64.const 1 + i64.le_s + drop + get_global $binary/I + i64.const 1 + i64.ge_s + drop + get_global $binary/I + i64.const 1 + i64.eq + drop + get_global $binary/I + i64.const 1 + i64.eq + drop + get_global $binary/I + i64.const 1 + i64.add + drop + get_global $binary/I + i64.const 1 + i64.sub + drop + get_global $binary/I + i64.const 1 + i64.mul + drop + get_global $binary/I + i64.const 1 + i64.div_s + drop + get_global $binary/I + i64.const 1 + i64.rem_s + drop + get_global $binary/I + f64.convert_s/i64 + f64.const 1 + call $~lib/math/NativeMath.pow + drop + get_global $binary/I + i64.const 1 + i64.shl + drop + get_global $binary/I + i64.const 1 + i64.shr_s + drop + get_global $binary/I + i64.const 1 + i64.shr_u + drop + get_global $binary/I + i64.const 1 + i64.and + drop + get_global $binary/I + i64.const 1 + i64.or + drop + get_global $binary/I + i64.const 1 + i64.xor + drop + get_global $binary/I + i64.const 1 + i64.lt_s + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.gt_s + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.le_s + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.ge_s + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.eq + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.eq + set_global $binary/b + get_global $binary/I + i64.const 1 + i64.add + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.sub + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.mul + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.div_s + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.rem_s + set_global $binary/I + get_global $binary/I + f64.convert_s/i64 + f64.const 1 + call $~lib/math/NativeMath.pow + i64.trunc_s/f64 + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shl + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shr_s + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shr_u + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.and + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.or + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.xor + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.add + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.sub + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.mul + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.rem_s + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shl + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shr_s + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.shr_u + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.and + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.or + set_global $binary/I + get_global $binary/I + i64.const 1 + i64.xor + set_global $binary/I + get_global $binary/f + f32.const 1 + f32.lt + drop + get_global $binary/f + f32.const 1 + f32.gt + drop + get_global $binary/f + f32.const 1 + f32.le + drop + get_global $binary/f + f32.const 1 + f32.ge + drop + get_global $binary/f + f32.const 1 + f32.eq + drop + get_global $binary/f + f32.const 1 + f32.eq + drop + get_global $binary/f + f32.const 1 + f32.add + drop + get_global $binary/f + f32.const 1 + f32.sub + drop + get_global $binary/f + f32.const 1 + f32.mul + drop + get_global $binary/f + f32.const 1 + f32.div + drop + get_global $binary/f + f32.const 1 + call $~lib/math/NativeMathf.mod + drop + get_global $binary/f + f32.const 1 + call $~lib/math/NativeMathf.pow + drop + get_global $binary/f + f32.const 1 + f32.lt + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.gt + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.le + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.ge + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.eq + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.eq + set_global $binary/b + get_global $binary/f + f32.const 1 + f32.add + set_global $binary/f + get_global $binary/f + f32.const 1 + f32.sub + set_global $binary/f + get_global $binary/f + f32.const 1 + f32.mul + set_global $binary/f + get_global $binary/f + f32.const 1 + f32.div + set_global $binary/f + get_global $binary/f + f32.const 1 + call $~lib/math/NativeMathf.mod + set_global $binary/f + get_global $binary/f + f32.const 1 + call $~lib/math/NativeMathf.pow + set_global $binary/f + get_global $binary/f + f32.const 1 + f32.add + set_global $binary/f + get_global $binary/f + f32.const 1 + f32.sub + set_global $binary/f + get_global $binary/f + f32.const 1 + f32.mul + set_global $binary/f + get_global $binary/f + f32.const 1 + call $~lib/math/NativeMathf.mod + set_global $binary/f + get_global $binary/f + f32.const 1 + call $~lib/math/NativeMathf.pow + set_global $binary/f + get_global $binary/F + f64.const 1 + f64.lt + drop + get_global $binary/F + f64.const 1 + f64.gt + drop + get_global $binary/F + f64.const 1 + f64.le + drop + get_global $binary/F + f64.const 1 + f64.ge + drop + get_global $binary/F + f64.const 1 + f64.eq + drop + get_global $binary/F + f64.const 1 + f64.eq + drop + get_global $binary/F + f64.const 1 + f64.add + drop + get_global $binary/F + f64.const 1 + f64.sub + drop + get_global $binary/F + f64.const 1 + f64.mul + drop + get_global $binary/F + f64.const 1 + f64.div + drop + get_global $binary/F + f64.const 1 + call $~lib/math/NativeMath.mod + drop + get_global $binary/F + f64.const 1 + call $~lib/math/NativeMath.pow + drop + get_global $binary/F + f64.const 1 + f64.lt + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.gt + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.le + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.ge + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.eq + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.eq + set_global $binary/b + get_global $binary/F + f64.const 1 + f64.add + set_global $binary/F + get_global $binary/F + f64.const 1 + f64.sub + set_global $binary/F + get_global $binary/F + f64.const 1 + f64.mul + set_global $binary/F + get_global $binary/F + f64.const 1 + f64.div + set_global $binary/F + get_global $binary/F + f64.const 1 + call $~lib/math/NativeMath.mod + set_global $binary/F + get_global $binary/F + f64.const 1 + call $~lib/math/NativeMath.pow + set_global $binary/F + get_global $binary/F + f64.const 1 + f64.add + set_global $binary/F + get_global $binary/F + f64.const 1 + f64.sub + set_global $binary/F + get_global $binary/F + f64.const 1 + f64.mul + set_global $binary/F + get_global $binary/F + f64.const 1 + call $~lib/math/NativeMath.mod + set_global $binary/F + get_global $binary/F + f64.const 1 + call $~lib/math/NativeMath.pow + set_global $binary/F ) (func $null (; 7 ;) (type $v) ) diff --git a/tests/compiler/builtins.optimized.wat b/tests/compiler/builtins.optimized.wat index 0a6a848d..d849c0ec 100644 --- a/tests/compiler/builtins.optimized.wat +++ b/tests/compiler/builtins.optimized.wat @@ -2,12 +2,12 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $iiv (func (param i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s") (data (i32.const 40) "\01\00\00\001") - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $builtins/test $start~anonymous|1) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $builtins/b (mut i32) (i32.const 0)) (global $builtins/i (mut i32) (i32.const 0)) (global $builtins/I (mut i64) (i64.const 0)) @@ -21,637 +21,430 @@ (export "table" (table $0)) (export "test" (func $builtins/test)) (start $start) - (func $start~anonymous|1 (; 1 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (nop) + (func $start~anonymous|1 (; 1 ;) (type $iiv) (param $0 i32) (param $1 i32) + nop ) - (func $builtins/test (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $builtins/test (; 2 ;) (type $v) + nop ) - (func $start (; 3 ;) (; has Stack IR ;) (type $v) - (set_global $builtins/i - (i32.const 31) - ) - (set_global $builtins/i - (i32.const 0) - ) - (set_global $builtins/i - (i32.const 1) - ) - (set_global $builtins/i - (i32.const 2) - ) - (set_global $builtins/i - (i32.const -2147483648) - ) - (set_global $builtins/i - (i32.const 42) - ) - (if - (i32.ne - (get_global $builtins/i) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 50) - (i32.const 19) - ) - (unreachable) - ) - ) - (set_global $builtins/i - (i32.const 2) - ) - (if - (i32.ne - (get_global $builtins/i) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 51) - (i32.const 20) - ) - (unreachable) - ) - ) - (set_global $builtins/i - (i32.const 1) - ) - (if - (i32.ne - (get_global $builtins/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 52) - (i32.const 20) - ) - (unreachable) - ) - ) - (set_global $builtins/I - (i64.const 63) - ) - (set_global $builtins/I - (i64.const 0) - ) - (set_global $builtins/I - (i64.const 1) - ) - (set_global $builtins/I - (i64.const 2) - ) - (set_global $builtins/I - (i64.const -9223372036854775808) - ) - (set_global $builtins/I - (i64.const 42) - ) - (if - (i64.ne - (get_global $builtins/I) - (i64.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 68) - (i32.const 19) - ) - (unreachable) - ) - ) - (set_global $builtins/I - (i64.const 2) - ) - (if - (i64.ne - (get_global $builtins/I) - (i64.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 69) - (i32.const 20) - ) - (unreachable) - ) - ) - (set_global $builtins/I - (i64.const 1) - ) - (if - (i32.ne - (get_global $builtins/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 70) - (i32.const 20) - ) - (unreachable) - ) - ) - (set_global $builtins/f - (f32.const nan:0x400000) - ) - (set_global $builtins/f - (f32.const inf) - ) - (set_global $builtins/f - (f32.const 1.25) - ) - (set_global $builtins/f - (f32.const 2) - ) - (set_global $builtins/f - (f32.const 1.25) - ) - (set_global $builtins/f - (f32.const 1) - ) - (set_global $builtins/f - (f32.const 2.5) - ) - (set_global $builtins/f - (f32.const 1.25) - ) - (set_global $builtins/f - (f32.const 1) - ) - (set_global $builtins/f - (f32.const 1.1180340051651) - ) - (set_global $builtins/f - (f32.const 1) - ) - (set_global $builtins/b - (i32.const 0) - ) - (set_global $builtins/b - (i32.const 1) - ) - (set_global $builtins/F - (f64.const nan:0x8000000000000) - ) - (set_global $builtins/F - (f64.const inf) - ) - (set_global $builtins/F - (f64.const 1.25) - ) - (set_global $builtins/F - (f64.const 2) - ) - (set_global $builtins/F - (f64.const 1.25) - ) - (set_global $builtins/F - (f64.const 1) - ) - (set_global $builtins/F - (f64.const 2.5) - ) - (set_global $builtins/F - (f64.const 1.25) - ) - (set_global $builtins/F - (f64.const 1) - ) - (set_global $builtins/F - (f64.const 1.118033988749895) - ) - (set_global $builtins/F - (f64.const 1) - ) - (set_global $builtins/b - (i32.const 0) - ) - (set_global $builtins/b - (i32.const 1) - ) - (set_global $builtins/i - (i32.load - (i32.const 8) - ) - ) - (i32.store - (i32.const 8) - (get_global $builtins/i) - ) - (i32.store - (i32.const 8) - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load - (i32.const 8) - ) - ) - (i64.store - (i32.const 8) - (get_global $builtins/I) - ) - (i64.store - (i32.const 8) - (i64.load - (i32.const 8) - ) - ) - (set_global $builtins/f - (f32.load - (i32.const 8) - ) - ) - (f32.store - (i32.const 8) - (get_global $builtins/f) - ) - (f32.store - (i32.const 8) - (f32.load - (i32.const 8) - ) - ) - (set_global $builtins/F - (f64.load - (i32.const 8) - ) - ) - (f64.store - (i32.const 8) - (get_global $builtins/F) - ) - (f64.store - (i32.const 8) - (f64.load - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load - (i32.const 8) - ) - ) - (i32.store - (i32.const 8) - (get_global $builtins/i) - ) - (i32.store - (i32.const 8) - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load - (i32.const 8) - ) - ) - (i64.store - (i32.const 8) - (get_global $builtins/I) - ) - (i64.store - (i32.const 8) - (i64.load - (i32.const 8) - ) - ) - (set_global $builtins/f - (f32.load - (i32.const 8) - ) - ) - (f32.store - (i32.const 8) - (get_global $builtins/f) - ) - (f32.store - (i32.const 8) - (f32.load - (i32.const 8) - ) - ) - (set_global $builtins/F - (f64.load - (i32.const 8) - ) - ) - (f64.store - (i32.const 8) - (get_global $builtins/F) - ) - (f64.store - (i32.const 8) - (f64.load - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load8_s - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load16_s - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load8_u - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load16_u - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load8_u - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load16_u - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load8_s - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load16_s - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load8_s - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load16_s - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load32_s - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load - (i32.const 8) - ) - ) - (set_global $builtins/U - (i64.load8_u - (i32.const 8) - ) - ) - (set_global $builtins/U - (i64.load16_u - (i32.const 8) - ) - ) - (set_global $builtins/U - (i64.load32_u - (i32.const 8) - ) - ) - (set_global $builtins/U - (i64.load - (i32.const 8) - ) - ) - (i32.store8 - (i32.const 8) - (i32.const 1) - ) - (i32.store16 - (i32.const 8) - (i32.const 1) - ) - (i32.store - (i32.const 8) - (i32.const 1) - ) - (i64.store8 - (i32.const 8) - (i64.const 1) - ) - (i64.store16 - (i32.const 8) - (i64.const 1) - ) - (i64.store32 - (i32.const 8) - (i64.const 1) - ) - (i64.store - (i32.const 8) - (i64.const 1) - ) - (i64.store - (i32.const 8) - (i64.const 1) - ) - (set_global $builtins/i - (i32.const 1067450368) - ) - (set_global $builtins/f - (f32.const 3.5032461608120427e-44) - ) - (set_global $builtins/I - (i64.const 4608308318706860032) - ) - (set_global $builtins/F - (f64.const 1.24e-322) - ) - (drop - (current_memory) - ) - (drop - (grow_memory - (i32.const 1) - ) - ) - (set_global $builtins/s - (current_memory) - ) - (set_global $builtins/s - (grow_memory - (i32.const 1) - ) - ) - (set_global $builtins/i - (i32.const 10) - ) - (set_global $builtins/I - (i64.const 200) - ) - (set_global $builtins/f - (f32.const 1.25) - ) - (set_global $builtins/F - (f64.const 25) - ) - (if - (i32.eqz - (get_global $builtins/i) - ) - (unreachable) - ) - (call_indirect (type $iiv) - (i32.const 1) - (i32.const 2) - (get_global $builtins/fn) - ) - (drop - (i32.load8_s - (i32.const 8) - ) - ) - (drop - (i32.load8_u - (i32.const 8) - ) - ) - (drop - (i32.load16_s - (i32.const 8) - ) - ) - (drop - (i32.load16_u - (i32.const 8) - ) - ) - (drop - (i32.load - (i32.const 8) - ) - ) - (drop - (i64.load8_s - (i32.const 8) - ) - ) - (drop - (i64.load8_u - (i32.const 8) - ) - ) - (drop - (i64.load16_s - (i32.const 8) - ) - ) - (drop - (i64.load16_u - (i32.const 8) - ) - ) - (drop - (i64.load32_s - (i32.const 8) - ) - ) - (drop - (i64.load32_u - (i32.const 8) - ) - ) - (drop - (i64.load - (i32.const 8) - ) - ) - (drop - (f32.load - (i32.const 8) - ) - ) - (drop - (f64.load - (i32.const 8) - ) - ) - (i32.store8 - (i32.const 8) - (i32.const 1) - ) - (i32.store16 - (i32.const 8) - (i32.const 1) - ) - (i32.store - (i32.const 8) - (i32.const 1) - ) - (i32.store8 - (i32.const 8) - (i32.const 1) - ) - (i32.store16 - (i32.const 8) - (i32.const 1) - ) - (i32.store - (i32.const 8) - (i32.const 1) - ) - (i64.store - (i32.const 8) - (i64.const 1) - ) - (f32.store - (i32.const 8) - (f32.const 1) - ) - (f64.store - (i32.const 8) - (f64.const 1) - ) + (func $start (; 3 ;) (type $v) + i32.const 31 + set_global $builtins/i + i32.const 0 + set_global $builtins/i + i32.const 1 + set_global $builtins/i + i32.const 2 + set_global $builtins/i + i32.const -2147483648 + set_global $builtins/i + i32.const 42 + set_global $builtins/i + get_global $builtins/i + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 50 + i32.const 19 + call $~lib/env/abort + unreachable + end + i32.const 2 + set_global $builtins/i + get_global $builtins/i + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 51 + i32.const 20 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $builtins/i + get_global $builtins/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 52 + i32.const 20 + call $~lib/env/abort + unreachable + end + i64.const 63 + set_global $builtins/I + i64.const 0 + set_global $builtins/I + i64.const 1 + set_global $builtins/I + i64.const 2 + set_global $builtins/I + i64.const -9223372036854775808 + set_global $builtins/I + i64.const 42 + set_global $builtins/I + get_global $builtins/I + i64.const 42 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 68 + i32.const 19 + call $~lib/env/abort + unreachable + end + i64.const 2 + set_global $builtins/I + get_global $builtins/I + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 69 + i32.const 20 + call $~lib/env/abort + unreachable + end + i64.const 1 + set_global $builtins/I + get_global $builtins/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 70 + i32.const 20 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + set_global $builtins/f + f32.const inf + set_global $builtins/f + f32.const 1.25 + set_global $builtins/f + f32.const 2 + set_global $builtins/f + f32.const 1.25 + set_global $builtins/f + f32.const 1 + set_global $builtins/f + f32.const 2.5 + set_global $builtins/f + f32.const 1.25 + set_global $builtins/f + f32.const 1 + set_global $builtins/f + f32.const 1.1180340051651 + set_global $builtins/f + f32.const 1 + set_global $builtins/f + i32.const 0 + set_global $builtins/b + i32.const 1 + set_global $builtins/b + f64.const nan:0x8000000000000 + set_global $builtins/F + f64.const inf + set_global $builtins/F + f64.const 1.25 + set_global $builtins/F + f64.const 2 + set_global $builtins/F + f64.const 1.25 + set_global $builtins/F + f64.const 1 + set_global $builtins/F + f64.const 2.5 + set_global $builtins/F + f64.const 1.25 + set_global $builtins/F + f64.const 1 + set_global $builtins/F + f64.const 1.118033988749895 + set_global $builtins/F + f64.const 1 + set_global $builtins/F + i32.const 0 + set_global $builtins/b + i32.const 1 + set_global $builtins/b + i32.const 8 + i32.load + set_global $builtins/i + i32.const 8 + get_global $builtins/i + i32.store + i32.const 8 + i32.const 8 + i32.load + i32.store + i32.const 8 + i64.load + set_global $builtins/I + i32.const 8 + get_global $builtins/I + i64.store + i32.const 8 + i32.const 8 + i64.load + i64.store + i32.const 8 + f32.load + set_global $builtins/f + i32.const 8 + get_global $builtins/f + f32.store + i32.const 8 + i32.const 8 + f32.load + f32.store + i32.const 8 + f64.load + set_global $builtins/F + i32.const 8 + get_global $builtins/F + f64.store + i32.const 8 + i32.const 8 + f64.load + f64.store + i32.const 8 + i32.load + set_global $builtins/i + i32.const 8 + get_global $builtins/i + i32.store + i32.const 8 + i32.const 8 + i32.load + i32.store + i32.const 8 + i64.load + set_global $builtins/I + i32.const 8 + get_global $builtins/I + i64.store + i32.const 8 + i32.const 8 + i64.load + i64.store + i32.const 8 + f32.load + set_global $builtins/f + i32.const 8 + get_global $builtins/f + f32.store + i32.const 8 + i32.const 8 + f32.load + f32.store + i32.const 8 + f64.load + set_global $builtins/F + i32.const 8 + get_global $builtins/F + f64.store + i32.const 8 + i32.const 8 + f64.load + f64.store + i32.const 8 + i32.load8_s + set_global $builtins/i + i32.const 8 + i32.load16_s + set_global $builtins/i + i32.const 8 + i32.load + set_global $builtins/i + i32.const 8 + i32.load8_u + set_global $builtins/i + i32.const 8 + i32.load16_u + set_global $builtins/i + i32.const 8 + i32.load + set_global $builtins/i + i32.const 8 + i32.load8_u + set_global $builtins/u + i32.const 8 + i32.load16_u + set_global $builtins/u + i32.const 8 + i32.load + set_global $builtins/u + i32.const 8 + i32.load8_s + set_global $builtins/u + i32.const 8 + i32.load16_s + set_global $builtins/u + i32.const 8 + i32.load + set_global $builtins/u + i32.const 8 + i64.load8_s + set_global $builtins/I + i32.const 8 + i64.load16_s + set_global $builtins/I + i32.const 8 + i64.load32_s + set_global $builtins/I + i32.const 8 + i64.load + set_global $builtins/I + i32.const 8 + i64.load8_u + set_global $builtins/U + i32.const 8 + i64.load16_u + set_global $builtins/U + i32.const 8 + i64.load32_u + set_global $builtins/U + i32.const 8 + i64.load + set_global $builtins/U + i32.const 8 + i32.const 1 + i32.store8 + i32.const 8 + i32.const 1 + i32.store16 + i32.const 8 + i32.const 1 + i32.store + i32.const 8 + i64.const 1 + i64.store8 + i32.const 8 + i64.const 1 + i64.store16 + i32.const 8 + i64.const 1 + i64.store32 + i32.const 8 + i64.const 1 + i64.store + i32.const 8 + i64.const 1 + i64.store + i32.const 1067450368 + set_global $builtins/i + f32.const 3.5032461608120427e-44 + set_global $builtins/f + i64.const 4608308318706860032 + set_global $builtins/I + f64.const 1.24e-322 + set_global $builtins/F + current_memory + drop + i32.const 1 + grow_memory + drop + current_memory + set_global $builtins/s + i32.const 1 + grow_memory + set_global $builtins/s + i32.const 10 + set_global $builtins/i + i64.const 200 + set_global $builtins/I + f32.const 1.25 + set_global $builtins/f + f64.const 25 + set_global $builtins/F + get_global $builtins/i + i32.eqz + if + unreachable + end + i32.const 1 + i32.const 2 + get_global $builtins/fn + call_indirect (type $iiv) + i32.const 8 + i32.load8_s + drop + i32.const 8 + i32.load8_u + drop + i32.const 8 + i32.load16_s + drop + i32.const 8 + i32.load16_u + drop + i32.const 8 + i32.load + drop + i32.const 8 + i64.load8_s + drop + i32.const 8 + i64.load8_u + drop + i32.const 8 + i64.load16_s + drop + i32.const 8 + i64.load16_u + drop + i32.const 8 + i64.load32_s + drop + i32.const 8 + i64.load32_u + drop + i32.const 8 + i64.load + drop + i32.const 8 + f32.load + drop + i32.const 8 + f64.load + drop + i32.const 8 + i32.const 1 + i32.store8 + i32.const 8 + i32.const 1 + i32.store16 + i32.const 8 + i32.const 1 + i32.store + i32.const 8 + i32.const 1 + i32.store8 + i32.const 8 + i32.const 1 + i32.store16 + i32.const 8 + i32.const 1 + i32.store + i32.const 8 + i64.const 1 + i64.store + i32.const 8 + f32.const 1 + f32.store + i32.const 8 + f64.const 1 + f64.store ) ) diff --git a/tests/compiler/builtins.untouched.wat b/tests/compiler/builtins.untouched.wat index e8a5dd92..5a92c8d2 100644 --- a/tests/compiler/builtins.untouched.wat +++ b/tests/compiler/builtins.untouched.wat @@ -2,12 +2,12 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $iiv (func (param i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00") (data (i32.const 40) "\01\00\00\001\00") - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $start~anonymous|1) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $builtins/b (mut i32) (i32.const 0)) (global $builtins/i (mut i32) (i32.const 0)) (global $builtins/I (mut i64) (i64.const 0)) @@ -58,10 +58,10 @@ (export "test" (func $builtins/test)) (start $start) (func $start~anonymous|1 (; 1 ;) (type $iiv) (param $0 i32) (param $1 i32) - (nop) + nop ) (func $builtins/test (; 2 ;) (type $v) - (nop) + nop ) (func $start (; 3 ;) (type $v) (local $0 i32) @@ -70,3146 +70,2152 @@ (local $3 i64) (local $4 f32) (local $5 f64) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 14) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 29) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (i32.clz - (i32.const 1) - ) - ) - (drop - (i32.ctz - (i32.const 1) - ) - ) - (drop - (i32.popcnt - (i32.const 1) - ) - ) - (drop - (i32.rotl - (i32.const 1) - (i32.const 1) - ) - ) - (drop - (i32.rotr - (i32.const 1) - (i32.const 1) - ) - ) - (drop - (select - (tee_local $0 - (i32.const -42) - ) - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.gt_s - (get_local $0) - (i32.const 0) - ) - ) - ) - (drop - (select - (tee_local $0 - (i32.const 1) - ) - (tee_local $1 - (i32.const 2) - ) - (i32.gt_s - (get_local $0) - (get_local $1) - ) - ) - ) - (drop - (select - (tee_local $0 - (i32.const 1) - ) - (tee_local $1 - (i32.const 2) - ) - (i32.lt_s - (get_local $0) - (get_local $1) - ) - ) - ) - (set_global $builtins/i - (i32.clz - (i32.const 1) - ) - ) - (set_global $builtins/i - (i32.ctz - (i32.const 1) - ) - ) - (set_global $builtins/i - (i32.popcnt - (i32.const 1) - ) - ) - (set_global $builtins/i - (i32.rotl - (i32.const 1) - (i32.const 1) - ) - ) - (set_global $builtins/i - (i32.rotr - (i32.const 1) - (i32.const 1) - ) - ) - (set_global $builtins/i - (select - (tee_local $0 - (i32.const -42) - ) - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.gt_s - (get_local $0) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $builtins/i) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 50) - (i32.const 19) - ) - (unreachable) - ) - ) - (set_global $builtins/i - (select - (tee_local $0 - (i32.const 1) - ) - (tee_local $1 - (i32.const 2) - ) - (i32.gt_s - (get_local $0) - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $builtins/i) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 51) - (i32.const 20) - ) - (unreachable) - ) - ) - (set_global $builtins/i - (select - (tee_local $0 - (i32.const 1) - ) - (tee_local $1 - (i32.const 2) - ) - (i32.lt_s - (get_local $0) - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $builtins/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 52) - (i32.const 20) - ) - (unreachable) - ) - ) - (drop - (i64.clz - (i64.const 1) - ) - ) - (drop - (i64.ctz - (i64.const 1) - ) - ) - (drop - (i64.popcnt - (i64.const 1) - ) - ) - (drop - (i64.rotl - (i64.const 1) - (i64.const 1) - ) - ) - (drop - (i64.rotr - (i64.const 1) - (i64.const 1) - ) - ) - (drop - (select - (tee_local $2 - (i64.const -42) - ) - (i64.sub - (i64.const 0) - (get_local $2) - ) - (i64.gt_s - (get_local $2) - (i64.const 0) - ) - ) - ) - (set_global $builtins/I - (i64.clz - (i64.const 1) - ) - ) - (set_global $builtins/I - (i64.ctz - (i64.const 1) - ) - ) - (set_global $builtins/I - (i64.popcnt - (i64.const 1) - ) - ) - (set_global $builtins/I - (i64.rotl - (i64.const 1) - (i64.const 1) - ) - ) - (set_global $builtins/I - (i64.rotr - (i64.const 1) - (i64.const 1) - ) - ) - (set_global $builtins/I - (select - (tee_local $2 - (i64.const -42) - ) - (i64.sub - (i64.const 0) - (get_local $2) - ) - (i64.gt_s - (get_local $2) - (i64.const 0) - ) - ) - ) - (if - (i32.eqz - (i64.eq - (get_global $builtins/I) - (i64.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 68) - (i32.const 19) - ) - (unreachable) - ) - ) - (set_global $builtins/I - (select - (tee_local $2 - (i64.const 1) - ) - (tee_local $3 - (i64.const 2) - ) - (i64.gt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (if - (i32.eqz - (i64.eq - (get_global $builtins/I) - (i64.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 69) - (i32.const 20) - ) - (unreachable) - ) - ) - (set_global $builtins/I - (select - (tee_local $2 - (i64.const 1) - ) - (tee_local $3 - (i64.const 2) - ) - (i64.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $builtins/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 70) - (i32.const 20) - ) - (unreachable) - ) - ) - (drop - (f32.const nan:0x400000) - ) - (drop - (f32.const inf) - ) - (drop - (f32.abs - (f32.const 1.25) - ) - ) - (drop - (f32.ceil - (f32.const 1.25) - ) - ) - (drop - (f32.copysign - (f32.const 1.25) - (f32.const 2.5) - ) - ) - (drop - (f32.floor - (f32.const 1.25) - ) - ) - (drop - (f32.max - (f32.const 1.25) - (f32.const 2.5) - ) - ) - (drop - (f32.min - (f32.const 1.25) - (f32.const 2.5) - ) - ) - (drop - (f32.nearest - (f32.const 1.25) - ) - ) - (drop - (f32.sqrt - (f32.const 1.25) - ) - ) - (drop - (f32.trunc - (f32.const 1.25) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isNaN|inlined.0 (result i32) - (set_local $4 - (f32.const 1.25) - ) - (f32.ne - (get_local $4) - (get_local $4) - ) - ) - (i32.const 1) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 87) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isNaN|inlined.1 (result i32) - (set_local $4 - (f32.const nan:0x400000) - ) - (f32.ne - (get_local $4) - (get_local $4) - ) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 88) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isFinite|inlined.0 (result i32) - (set_local $4 - (f32.const 1.25) - ) - (f32.eq - (f32.sub - (get_local $4) - (get_local $4) - ) - (f32.const 0) - ) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 89) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isFinite|inlined.1 (result i32) - (set_local $4 - (f32.const inf) - ) - (f32.eq - (f32.sub - (get_local $4) - (get_local $4) - ) - (f32.const 0) - ) - ) - (i32.const 1) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 90) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isFinite|inlined.2 (result i32) - (set_local $4 - (f32.neg - (f32.const inf) - ) - ) - (f32.eq - (f32.sub - (get_local $4) - (get_local $4) - ) - (f32.const 0) - ) - ) - (i32.const 1) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 91) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isFinite|inlined.3 (result i32) - (set_local $4 - (f32.const nan:0x400000) - ) - (f32.eq - (f32.sub - (get_local $4) - (get_local $4) - ) - (f32.const 0) - ) - ) - (i32.const 1) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 92) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $builtins/f - (f32.const nan:0x400000) - ) - (set_global $builtins/f - (f32.const inf) - ) - (set_global $builtins/f - (f32.abs - (f32.const 1.25) - ) - ) - (set_global $builtins/f - (f32.ceil - (f32.const 1.25) - ) - ) - (set_global $builtins/f - (f32.copysign - (f32.const 1.25) - (f32.const 2.5) - ) - ) - (set_global $builtins/f - (f32.floor - (f32.const 1.25) - ) - ) - (set_global $builtins/f - (f32.max - (f32.const 1.25) - (f32.const 2.5) - ) - ) - (set_global $builtins/f - (f32.min - (f32.const 1.25) - (f32.const 2.5) - ) - ) - (set_global $builtins/f - (f32.nearest - (f32.const 1.25) - ) - ) - (set_global $builtins/f - (f32.sqrt - (f32.const 1.25) - ) - ) - (set_global $builtins/f - (f32.trunc - (f32.const 1.25) - ) - ) - (set_global $builtins/b - (i32.and - (block $~lib/builtins/isNaN|inlined.2 (result i32) - (set_local $4 - (f32.const 1.25) - ) - (f32.ne - (get_local $4) - (get_local $4) - ) - ) - (i32.const 1) - ) - ) - (set_global $builtins/b - (i32.and - (block $~lib/builtins/isFinite|inlined.4 (result i32) - (set_local $4 - (f32.const 1.25) - ) - (f32.eq - (f32.sub - (get_local $4) - (get_local $4) - ) - (f32.const 0) - ) - ) - (i32.const 1) - ) - ) - (drop - (f64.const nan:0x8000000000000) - ) - (drop - (f64.const inf) - ) - (drop - (f64.const nan:0x8000000000000) - ) - (drop - (f64.const inf) - ) - (drop - (f64.abs - (f64.const 1.25) - ) - ) - (drop - (f64.ceil - (f64.const 1.25) - ) - ) - (drop - (f64.copysign - (f64.const 1.25) - (f64.const 2.5) - ) - ) - (drop - (f64.floor - (f64.const 1.25) - ) - ) - (drop - (f64.max - (f64.const 1.25) - (f64.const 2.5) - ) - ) - (drop - (f64.min - (f64.const 1.25) - (f64.const 2.5) - ) - ) - (drop - (f64.nearest - (f64.const 1.25) - ) - ) - (drop - (f64.sqrt - (f64.const 1.25) - ) - ) - (drop - (f64.trunc - (f64.const 1.25) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isNaN|inlined.0 (result i32) - (set_local $5 - (f64.const 1.25) - ) - (f64.ne - (get_local $5) - (get_local $5) - ) - ) - (i32.const 1) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 123) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isNaN|inlined.1 (result i32) - (set_local $5 - (f64.const nan:0x8000000000000) - ) - (f64.ne - (get_local $5) - (get_local $5) - ) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isFinite|inlined.0 (result i32) - (set_local $5 - (f64.const 1.25) - ) - (f64.eq - (f64.sub - (get_local $5) - (get_local $5) - ) - (f64.const 0) - ) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 125) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isFinite|inlined.1 (result i32) - (set_local $5 - (f64.const inf) - ) - (f64.eq - (f64.sub - (get_local $5) - (get_local $5) - ) - (f64.const 0) - ) - ) - (i32.const 1) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isFinite|inlined.2 (result i32) - (set_local $5 - (f64.neg - (f64.const inf) - ) - ) - (f64.eq - (f64.sub - (get_local $5) - (get_local $5) - ) - (f64.const 0) - ) - ) - (i32.const 1) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (block $~lib/builtins/isFinite|inlined.3 (result i32) - (set_local $5 - (f64.const nan:0x8000000000000) - ) - (f64.eq - (f64.sub - (get_local $5) - (get_local $5) - ) - (f64.const 0) - ) - ) - (i32.const 1) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $builtins/F - (f64.const nan:0x8000000000000) - ) - (set_global $builtins/F - (f64.const inf) - ) - (set_global $builtins/F - (f64.abs - (f64.const 1.25) - ) - ) - (set_global $builtins/F - (f64.ceil - (f64.const 1.25) - ) - ) - (set_global $builtins/F - (f64.copysign - (f64.const 1.25) - (f64.const 2.5) - ) - ) - (set_global $builtins/F - (f64.floor - (f64.const 1.25) - ) - ) - (set_global $builtins/F - (f64.max - (f64.const 1.25) - (f64.const 2.5) - ) - ) - (set_global $builtins/F - (f64.min - (f64.const 1.25) - (f64.const 2.5) - ) - ) - (set_global $builtins/F - (f64.nearest - (f64.const 1.25) - ) - ) - (set_global $builtins/F - (f64.sqrt - (f64.const 1.25) - ) - ) - (set_global $builtins/F - (f64.trunc - (f64.const 1.25) - ) - ) - (set_global $builtins/b - (i32.and - (block $~lib/builtins/isNaN|inlined.2 (result i32) - (set_local $5 - (f64.const 1.25) - ) - (f64.ne - (get_local $5) - (get_local $5) - ) - ) - (i32.const 1) - ) - ) - (set_global $builtins/b - (i32.and - (block $~lib/builtins/isFinite|inlined.4 (result i32) - (set_local $5 - (f64.const 1.25) - ) - (f64.eq - (f64.sub - (get_local $5) - (get_local $5) - ) - (f64.const 0) - ) - ) - (i32.const 1) - ) - ) - (set_global $builtins/i - (i32.load - (i32.const 8) - ) - ) - (i32.store - (i32.const 8) - (get_global $builtins/i) - ) - (i32.store - (i32.const 8) - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load - (i32.const 8) - ) - ) - (i64.store - (i32.const 8) - (get_global $builtins/I) - ) - (i64.store - (i32.const 8) - (i64.load - (i32.const 8) - ) - ) - (set_global $builtins/f - (f32.load - (i32.const 8) - ) - ) - (f32.store - (i32.const 8) - (get_global $builtins/f) - ) - (f32.store - (i32.const 8) - (f32.load - (i32.const 8) - ) - ) - (set_global $builtins/F - (f64.load - (i32.const 8) - ) - ) - (f64.store - (i32.const 8) - (get_global $builtins/F) - ) - (f64.store - (i32.const 8) - (f64.load - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load offset=8 - (i32.const 0) - ) - ) - (i32.store offset=8 - (i32.const 0) - (get_global $builtins/i) - ) - (i32.store offset=8 - (i32.const 0) - (i32.load offset=8 - (i32.const 0) - ) - ) - (set_global $builtins/I - (i64.load offset=8 - (i32.const 0) - ) - ) - (i64.store offset=8 - (i32.const 0) - (get_global $builtins/I) - ) - (i64.store offset=8 - (i32.const 0) - (i64.load offset=8 - (i32.const 0) - ) - ) - (set_global $builtins/f - (f32.load offset=8 - (i32.const 0) - ) - ) - (f32.store offset=8 - (i32.const 0) - (get_global $builtins/f) - ) - (f32.store offset=8 - (i32.const 0) - (f32.load offset=8 - (i32.const 0) - ) - ) - (set_global $builtins/F - (f64.load offset=8 - (i32.const 0) - ) - ) - (f64.store offset=8 - (i32.const 0) - (get_global $builtins/F) - ) - (f64.store offset=8 - (i32.const 0) - (f64.load offset=8 - (i32.const 0) - ) - ) - (set_global $builtins/i - (i32.load8_s - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load16_s - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load8_u - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load16_u - (i32.const 8) - ) - ) - (set_global $builtins/i - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load8_u - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load16_u - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load8_s - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load16_s - (i32.const 8) - ) - ) - (set_global $builtins/u - (i32.load - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load8_s - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load16_s - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load32_s - (i32.const 8) - ) - ) - (set_global $builtins/I - (i64.load - (i32.const 8) - ) - ) - (set_global $builtins/U - (i64.load8_u - (i32.const 8) - ) - ) - (set_global $builtins/U - (i64.load16_u - (i32.const 8) - ) - ) - (set_global $builtins/U - (i64.load32_u - (i32.const 8) - ) - ) - (set_global $builtins/U - (i64.load - (i32.const 8) - ) - ) - (i32.store8 - (i32.const 8) - (i32.const 1) - ) - (i32.store16 - (i32.const 8) - (i32.const 1) - ) - (i32.store - (i32.const 8) - (i32.const 1) - ) - (i64.store8 - (i32.const 8) - (i64.const 1) - ) - (i64.store16 - (i32.const 8) - (i64.const 1) - ) - (i64.store32 - (i32.const 8) - (i64.const 1) - ) - (i64.store - (i32.const 8) - (i64.const 1) - ) - (i64.store - (i32.const 8) - (i64.extend_s/i32 - (i32.const 1) - ) - ) - (drop - (i32.reinterpret/f32 - (f32.const 1.25) - ) - ) - (drop - (f32.reinterpret/i32 - (i32.const 25) - ) - ) - (drop - (i64.reinterpret/f64 - (f64.const 1.25) - ) - ) - (drop - (f64.reinterpret/i64 - (i64.const 25) - ) - ) - (set_global $builtins/i - (i32.reinterpret/f32 - (f32.const 1.25) - ) - ) - (set_global $builtins/f - (f32.reinterpret/i32 - (i32.const 25) - ) - ) - (set_global $builtins/I - (i64.reinterpret/f64 - (f64.const 1.25) - ) - ) - (set_global $builtins/F - (f64.reinterpret/i64 - (i64.const 25) - ) - ) - (drop - (current_memory) - ) - (drop - (grow_memory - (i32.const 1) - ) - ) - (set_global $builtins/s - (current_memory) - ) - (set_global $builtins/s - (grow_memory - (i32.const 1) - ) - ) - (drop - (select - (i32.const 10) - (i32.const 20) - (i32.const 1) - ) - ) - (drop - (select - (i64.const 100) - (i64.const 200) - (i32.const 0) - ) - ) - (drop - (select - (f32.const 1.25) - (f32.const 2.5) - (i32.const 1) - ) - ) - (drop - (select - (f64.const 12.5) - (f64.const 25) - (i32.const 0) - ) - ) - (set_global $builtins/i - (select - (i32.const 10) - (i32.const 20) - (i32.const 1) - ) - ) - (set_global $builtins/I - (select - (i64.const 100) - (i64.const 200) - (i32.const 0) - ) - ) - (set_global $builtins/f - (select - (f32.const 1.25) - (f32.const 2.5) - (i32.const 1) - ) - ) - (set_global $builtins/F - (select - (f64.const 12.5) - (f64.const 25) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_global $builtins/i) - ) - (unreachable) - ) - (call_indirect (type $iiv) - (i32.const 1) - (i32.const 2) - (get_global $builtins/fn) - ) - (if - (i32.eqz - (i32.eq - (i32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 247) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 2) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 248) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 249) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 8) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 250) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (i32.const 4) - ) - (if - (i32.eqz - (i32.eq - (i32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 252) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 253) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 2) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 254) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 255) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 8) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 256) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (i32.const 4) - ) - (if - (i32.eqz - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 258) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 8) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 259) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 262) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 263) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 264) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 2) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 265) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 267) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.const 8) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 268) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.ne - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 270) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.and - (block $~lib/builtins/isNaN|inlined.3 (result i32) - (set_local $4 - (f32.const nan:0x400000) - ) - (f32.ne - (get_local $4) - (get_local $4) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 271) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.and - (block $~lib/builtins/isNaN|inlined.3 (result i32) - (set_local $5 - (f64.const nan:0x8000000000000) - ) - (f64.ne - (get_local $5) - (get_local $5) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 272) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.and - (block $~lib/builtins/isFinite|inlined.5 (result i32) - (set_local $4 - (f32.const nan:0x400000) - ) - (f32.eq - (f32.sub - (get_local $4) - (get_local $4) - ) - (f32.const 0) - ) - ) - (i32.const 1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 273) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.and - (block $~lib/builtins/isFinite|inlined.6 (result i32) - (set_local $4 - (f32.const inf) - ) - (f32.eq - (f32.sub - (get_local $4) - (get_local $4) - ) - (f32.const 0) - ) - ) - (i32.const 1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 274) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.and - (block $~lib/builtins/isFinite|inlined.5 (result i32) - (set_local $5 - (f64.const nan:0x8000000000000) - ) - (f64.eq - (f64.sub - (get_local $5) - (get_local $5) - ) - (f64.const 0) - ) - ) - (i32.const 1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 275) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.and - (block $~lib/builtins/isFinite|inlined.6 (result i32) - (set_local $5 - (f64.const inf) - ) - (f64.eq - (f64.sub - (get_local $5) - (get_local $5) - ) - (f64.const 0) - ) - ) - (i32.const 1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 276) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.and - (block $~lib/builtins/isFinite|inlined.7 (result i32) - (set_local $4 - (f32.const 0) - ) - (f32.eq - (f32.sub - (get_local $4) - (get_local $4) - ) - (f32.const 0) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 277) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.and - (block $~lib/builtins/isFinite|inlined.7 (result i32) - (set_local $5 - (f64.const 0) - ) - (f64.eq - (f64.sub - (get_local $5) - (get_local $5) - ) - (f64.const 0) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 278) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/i8.MIN_VALUE) - (i32.shr_s - (i32.shl - (i32.const 128) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 291) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/i8.MAX_VALUE) - (i32.const 127) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 292) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/i16.MIN_VALUE) - (i32.shr_s - (i32.shl - (i32.const 32768) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 293) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/i16.MAX_VALUE) - (i32.const 32767) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 294) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/i32.MIN_VALUE) - (i32.const -2147483648) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 295) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/i32.MAX_VALUE) - (i32.const 2147483647) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 296) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (get_global $~lib/builtins/i64.MIN_VALUE) - (i64.const -9223372036854775808) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 297) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (get_global $~lib/builtins/i64.MAX_VALUE) - (i64.const 9223372036854775807) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 298) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/u8.MIN_VALUE) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 300) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/u8.MAX_VALUE) - (i32.const 255) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 301) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/u16.MIN_VALUE) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 302) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/u16.MAX_VALUE) - (i32.const 65535) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 303) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/u32.MIN_VALUE) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 304) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/u32.MAX_VALUE) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 305) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (get_global $~lib/builtins/u64.MIN_VALUE) - (i64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 306) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (get_global $~lib/builtins/u64.MAX_VALUE) - (i64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 307) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/bool.MIN_VALUE) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 308) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/bool.MIN_VALUE) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 308) - (i32.const 29) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/bool.MAX_VALUE) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 309) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/builtins/bool.MAX_VALUE) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 309) - (i32.const 29) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (get_global $~lib/builtins/f32.MIN_NORMAL_VALUE) - (f32.const 1.1754943508222875e-38) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 311) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (get_global $~lib/builtins/f32.MIN_VALUE) - (f32.const 1.401298464324817e-45) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 312) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (get_global $~lib/builtins/f32.MAX_VALUE) - (f32.const 3402823466385288598117041e14) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 313) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (get_global $~lib/builtins/f32.MIN_SAFE_INTEGER) - (f32.const -16777215) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 314) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (get_global $~lib/builtins/f32.MAX_SAFE_INTEGER) - (f32.const 16777215) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 315) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (get_global $~lib/builtins/f32.EPSILON) - (f32.const 1.1920928955078125e-07) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 316) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.and - (block $~lib/builtins/isNaN|inlined.4 (result i32) - (set_local $4 - (get_global $~lib/builtins/f32.NaN) - ) - (f32.ne - (get_local $4) - (get_local $4) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 317) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (get_global $~lib/builtins/f64.MIN_NORMAL_VALUE) - (f64.const 2.2250738585072014e-308) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 318) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (get_global $~lib/builtins/f64.MIN_VALUE) - (f64.const 5e-324) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 319) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (get_global $~lib/builtins/f64.MAX_VALUE) - (f64.const 1797693134862315708145274e284) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 320) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (get_global $~lib/builtins/f64.MIN_SAFE_INTEGER) - (f64.const -9007199254740991) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 321) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (get_global $~lib/builtins/f64.MAX_SAFE_INTEGER) - (f64.const 9007199254740991) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 322) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (get_global $~lib/builtins/f64.EPSILON) - (f64.const 2.220446049250313e-16) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 323) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.and - (block $~lib/builtins/isNaN|inlined.4 (result i32) - (set_local $5 - (get_global $~lib/builtins/f64.NaN) - ) - (f64.ne - (get_local $5) - (get_local $5) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 324) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (f32.abs - (f32.const 1) - ) - ) - (drop - (f64.abs - (f64.const 1) - ) - ) - (drop - (f32.ceil - (f32.const 1) - ) - ) - (drop - (f64.ceil - (f64.const 1) - ) - ) - (drop - (i32.clz - (i32.const 1) - ) - ) - (drop - (i64.clz - (i64.const 1) - ) - ) - (drop - (f32.copysign - (f32.const 1) - (f32.const 2) - ) - ) - (drop - (f64.copysign - (f64.const 1) - (f64.const 2) - ) - ) - (drop - (i32.ctz - (i32.const 1) - ) - ) - (drop - (i64.ctz - (i64.const 1) - ) - ) - (drop - (f32.floor - (f32.const 1) - ) - ) - (drop - (f64.floor - (f64.const 1) - ) - ) - (drop - (f32.nearest - (f32.const 1) - ) - ) - (drop - (f64.nearest - (f64.const 1) - ) - ) - (drop - (i32.popcnt - (i32.const 1) - ) - ) - (drop - (i64.popcnt - (i64.const 1) - ) - ) - (drop - (i32.load8_s - (i32.const 8) - ) - ) - (drop - (i32.load8_u - (i32.const 8) - ) - ) - (drop - (i32.load16_s - (i32.const 8) - ) - ) - (drop - (i32.load16_u - (i32.const 8) - ) - ) - (drop - (i32.load - (i32.const 8) - ) - ) - (drop - (i64.load8_s - (i32.const 8) - ) - ) - (drop - (i64.load8_u - (i32.const 8) - ) - ) - (drop - (i64.load16_s - (i32.const 8) - ) - ) - (drop - (i64.load16_u - (i32.const 8) - ) - ) - (drop - (i64.load32_s - (i32.const 8) - ) - ) - (drop - (i64.load32_u - (i32.const 8) - ) - ) - (drop - (i64.load - (i32.const 8) - ) - ) - (drop - (f32.load - (i32.const 8) - ) - ) - (drop - (f64.load - (i32.const 8) - ) - ) - (drop - (f32.max - (f32.const 1) - (f32.const 2) - ) - ) - (drop - (f64.max - (f64.const 1) - (f64.const 2) - ) - ) - (drop - (f32.min - (f32.const 1) - (f32.const 2) - ) - ) - (drop - (f64.min - (f64.const 1) - (f64.const 2) - ) - ) - (drop - (i32.reinterpret/f32 - (f32.const 1) - ) - ) - (drop - (i64.reinterpret/f64 - (f64.const 1) - ) - ) - (drop - (f32.reinterpret/i32 - (i32.const 1) - ) - ) - (drop - (f64.reinterpret/i64 - (i64.const 1) - ) - ) - (drop - (i32.rotl - (i32.const 1) - (i32.const 2) - ) - ) - (drop - (i64.rotl - (i64.const 1) - (i64.const 2) - ) - ) - (drop - (i32.rotr - (i32.const 1) - (i32.const 2) - ) - ) - (drop - (i64.rotr - (i64.const 1) - (i64.const 2) - ) - ) - (drop - (f32.sqrt - (f32.const 1) - ) - ) - (drop - (f64.sqrt - (f64.const 1) - ) - ) - (i32.store8 - (i32.const 8) - (i32.const 1) - ) - (i32.store16 - (i32.const 8) - (i32.const 1) - ) - (i32.store - (i32.const 8) - (i32.const 1) - ) - (i32.store8 - (i32.const 8) - (i32.const 1) - ) - (i32.store16 - (i32.const 8) - (i32.const 1) - ) - (i32.store - (i32.const 8) - (i32.const 1) - ) - (i64.store - (i32.const 8) - (i64.const 1) - ) - (f32.store - (i32.const 8) - (f32.const 1) - ) - (f64.store - (i32.const 8) - (f64.const 1) - ) - (drop - (f32.trunc - (f32.const 1) - ) - ) - (drop - (f64.trunc - (f64.const 1) - ) - ) - (drop - (block $~lib/builtins/isNaN|inlined.5 (result i32) - (set_local $5 - (f64.const 1) - ) - (f64.ne - (get_local $5) - (get_local $5) - ) - ) - ) + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 14 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 29 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.clz + drop + i32.const 1 + i32.ctz + drop + i32.const 1 + i32.popcnt + drop + i32.const 1 + i32.const 1 + i32.rotl + drop + i32.const 1 + i32.const 1 + i32.rotr + drop + i32.const -42 + tee_local $0 + i32.const 0 + get_local $0 + i32.sub + get_local $0 + i32.const 0 + i32.gt_s + select + drop + i32.const 1 + tee_local $0 + i32.const 2 + tee_local $1 + get_local $0 + get_local $1 + i32.gt_s + select + drop + i32.const 1 + tee_local $0 + i32.const 2 + tee_local $1 + get_local $0 + get_local $1 + i32.lt_s + select + drop + i32.const 1 + i32.clz + set_global $builtins/i + i32.const 1 + i32.ctz + set_global $builtins/i + i32.const 1 + i32.popcnt + set_global $builtins/i + i32.const 1 + i32.const 1 + i32.rotl + set_global $builtins/i + i32.const 1 + i32.const 1 + i32.rotr + set_global $builtins/i + i32.const -42 + tee_local $0 + i32.const 0 + get_local $0 + i32.sub + get_local $0 + i32.const 0 + i32.gt_s + select + set_global $builtins/i + get_global $builtins/i + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 50 + i32.const 19 + call $~lib/env/abort + unreachable + end + i32.const 1 + tee_local $0 + i32.const 2 + tee_local $1 + get_local $0 + get_local $1 + i32.gt_s + select + set_global $builtins/i + get_global $builtins/i + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 51 + i32.const 20 + call $~lib/env/abort + unreachable + end + i32.const 1 + tee_local $0 + i32.const 2 + tee_local $1 + get_local $0 + get_local $1 + i32.lt_s + select + set_global $builtins/i + get_global $builtins/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 52 + i32.const 20 + call $~lib/env/abort + unreachable + end + i64.const 1 + i64.clz + drop + i64.const 1 + i64.ctz + drop + i64.const 1 + i64.popcnt + drop + i64.const 1 + i64.const 1 + i64.rotl + drop + i64.const 1 + i64.const 1 + i64.rotr + drop + i64.const -42 + tee_local $2 + i64.const 0 + get_local $2 + i64.sub + get_local $2 + i64.const 0 + i64.gt_s + select + drop + i64.const 1 + i64.clz + set_global $builtins/I + i64.const 1 + i64.ctz + set_global $builtins/I + i64.const 1 + i64.popcnt + set_global $builtins/I + i64.const 1 + i64.const 1 + i64.rotl + set_global $builtins/I + i64.const 1 + i64.const 1 + i64.rotr + set_global $builtins/I + i64.const -42 + tee_local $2 + i64.const 0 + get_local $2 + i64.sub + get_local $2 + i64.const 0 + i64.gt_s + select + set_global $builtins/I + get_global $builtins/I + i64.const 42 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 68 + i32.const 19 + call $~lib/env/abort + unreachable + end + i64.const 1 + tee_local $2 + i64.const 2 + tee_local $3 + get_local $2 + get_local $3 + i64.gt_s + select + set_global $builtins/I + get_global $builtins/I + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 69 + i32.const 20 + call $~lib/env/abort + unreachable + end + i64.const 1 + tee_local $2 + i64.const 2 + tee_local $3 + get_local $2 + get_local $3 + i64.lt_s + select + set_global $builtins/I + get_global $builtins/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 70 + i32.const 20 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + drop + f32.const inf + drop + f32.const 1.25 + f32.abs + drop + f32.const 1.25 + f32.ceil + drop + f32.const 1.25 + f32.const 2.5 + f32.copysign + drop + f32.const 1.25 + f32.floor + drop + f32.const 1.25 + f32.const 2.5 + f32.max + drop + f32.const 1.25 + f32.const 2.5 + f32.min + drop + f32.const 1.25 + f32.nearest + drop + f32.const 1.25 + f32.sqrt + drop + f32.const 1.25 + f32.trunc + drop + block $~lib/builtins/isNaN|inlined.0 (result i32) + f32.const 1.25 + set_local $4 + get_local $4 + get_local $4 + f32.ne + end + i32.const 1 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 87 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isNaN|inlined.1 (result i32) + f32.const nan:0x400000 + set_local $4 + get_local $4 + get_local $4 + f32.ne + end + i32.const 1 + i32.and + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 88 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.0 (result i32) + f32.const 1.25 + set_local $4 + get_local $4 + get_local $4 + f32.sub + f32.const 0 + f32.eq + end + i32.const 1 + i32.and + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 89 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.1 (result i32) + f32.const inf + set_local $4 + get_local $4 + get_local $4 + f32.sub + f32.const 0 + f32.eq + end + i32.const 1 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 90 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.2 (result i32) + f32.const inf + f32.neg + set_local $4 + get_local $4 + get_local $4 + f32.sub + f32.const 0 + f32.eq + end + i32.const 1 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 91 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.3 (result i32) + f32.const nan:0x400000 + set_local $4 + get_local $4 + get_local $4 + f32.sub + f32.const 0 + f32.eq + end + i32.const 1 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 92 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + set_global $builtins/f + f32.const inf + set_global $builtins/f + f32.const 1.25 + f32.abs + set_global $builtins/f + f32.const 1.25 + f32.ceil + set_global $builtins/f + f32.const 1.25 + f32.const 2.5 + f32.copysign + set_global $builtins/f + f32.const 1.25 + f32.floor + set_global $builtins/f + f32.const 1.25 + f32.const 2.5 + f32.max + set_global $builtins/f + f32.const 1.25 + f32.const 2.5 + f32.min + set_global $builtins/f + f32.const 1.25 + f32.nearest + set_global $builtins/f + f32.const 1.25 + f32.sqrt + set_global $builtins/f + f32.const 1.25 + f32.trunc + set_global $builtins/f + block $~lib/builtins/isNaN|inlined.2 (result i32) + f32.const 1.25 + set_local $4 + get_local $4 + get_local $4 + f32.ne + end + i32.const 1 + i32.and + set_global $builtins/b + block $~lib/builtins/isFinite|inlined.4 (result i32) + f32.const 1.25 + set_local $4 + get_local $4 + get_local $4 + f32.sub + f32.const 0 + f32.eq + end + i32.const 1 + i32.and + set_global $builtins/b + f64.const nan:0x8000000000000 + drop + f64.const inf + drop + f64.const nan:0x8000000000000 + drop + f64.const inf + drop + f64.const 1.25 + f64.abs + drop + f64.const 1.25 + f64.ceil + drop + f64.const 1.25 + f64.const 2.5 + f64.copysign + drop + f64.const 1.25 + f64.floor + drop + f64.const 1.25 + f64.const 2.5 + f64.max + drop + f64.const 1.25 + f64.const 2.5 + f64.min + drop + f64.const 1.25 + f64.nearest + drop + f64.const 1.25 + f64.sqrt + drop + f64.const 1.25 + f64.trunc + drop + block $~lib/builtins/isNaN|inlined.0 (result i32) + f64.const 1.25 + set_local $5 + get_local $5 + get_local $5 + f64.ne + end + i32.const 1 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 123 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isNaN|inlined.1 (result i32) + f64.const nan:0x8000000000000 + set_local $5 + get_local $5 + get_local $5 + f64.ne + end + i32.const 1 + i32.and + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 124 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.0 (result i32) + f64.const 1.25 + set_local $5 + get_local $5 + get_local $5 + f64.sub + f64.const 0 + f64.eq + end + i32.const 1 + i32.and + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 125 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.1 (result i32) + f64.const inf + set_local $5 + get_local $5 + get_local $5 + f64.sub + f64.const 0 + f64.eq + end + i32.const 1 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.2 (result i32) + f64.const inf + f64.neg + set_local $5 + get_local $5 + get_local $5 + f64.sub + f64.const 0 + f64.eq + end + i32.const 1 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 127 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.3 (result i32) + f64.const nan:0x8000000000000 + set_local $5 + get_local $5 + get_local $5 + f64.sub + f64.const 0 + f64.eq + end + i32.const 1 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + set_global $builtins/F + f64.const inf + set_global $builtins/F + f64.const 1.25 + f64.abs + set_global $builtins/F + f64.const 1.25 + f64.ceil + set_global $builtins/F + f64.const 1.25 + f64.const 2.5 + f64.copysign + set_global $builtins/F + f64.const 1.25 + f64.floor + set_global $builtins/F + f64.const 1.25 + f64.const 2.5 + f64.max + set_global $builtins/F + f64.const 1.25 + f64.const 2.5 + f64.min + set_global $builtins/F + f64.const 1.25 + f64.nearest + set_global $builtins/F + f64.const 1.25 + f64.sqrt + set_global $builtins/F + f64.const 1.25 + f64.trunc + set_global $builtins/F + block $~lib/builtins/isNaN|inlined.2 (result i32) + f64.const 1.25 + set_local $5 + get_local $5 + get_local $5 + f64.ne + end + i32.const 1 + i32.and + set_global $builtins/b + block $~lib/builtins/isFinite|inlined.4 (result i32) + f64.const 1.25 + set_local $5 + get_local $5 + get_local $5 + f64.sub + f64.const 0 + f64.eq + end + i32.const 1 + i32.and + set_global $builtins/b + i32.const 8 + i32.load + set_global $builtins/i + i32.const 8 + get_global $builtins/i + i32.store + i32.const 8 + i32.const 8 + i32.load + i32.store + i32.const 8 + i64.load + set_global $builtins/I + i32.const 8 + get_global $builtins/I + i64.store + i32.const 8 + i32.const 8 + i64.load + i64.store + i32.const 8 + f32.load + set_global $builtins/f + i32.const 8 + get_global $builtins/f + f32.store + i32.const 8 + i32.const 8 + f32.load + f32.store + i32.const 8 + f64.load + set_global $builtins/F + i32.const 8 + get_global $builtins/F + f64.store + i32.const 8 + i32.const 8 + f64.load + f64.store + i32.const 0 + i32.load offset=8 + set_global $builtins/i + i32.const 0 + get_global $builtins/i + i32.store offset=8 + i32.const 0 + i32.const 0 + i32.load offset=8 + i32.store offset=8 + i32.const 0 + i64.load offset=8 + set_global $builtins/I + i32.const 0 + get_global $builtins/I + i64.store offset=8 + i32.const 0 + i32.const 0 + i64.load offset=8 + i64.store offset=8 + i32.const 0 + f32.load offset=8 + set_global $builtins/f + i32.const 0 + get_global $builtins/f + f32.store offset=8 + i32.const 0 + i32.const 0 + f32.load offset=8 + f32.store offset=8 + i32.const 0 + f64.load offset=8 + set_global $builtins/F + i32.const 0 + get_global $builtins/F + f64.store offset=8 + i32.const 0 + i32.const 0 + f64.load offset=8 + f64.store offset=8 + i32.const 8 + i32.load8_s + set_global $builtins/i + i32.const 8 + i32.load16_s + set_global $builtins/i + i32.const 8 + i32.load + set_global $builtins/i + i32.const 8 + i32.load8_u + set_global $builtins/i + i32.const 8 + i32.load16_u + set_global $builtins/i + i32.const 8 + i32.load + set_global $builtins/i + i32.const 8 + i32.load8_u + set_global $builtins/u + i32.const 8 + i32.load16_u + set_global $builtins/u + i32.const 8 + i32.load + set_global $builtins/u + i32.const 8 + i32.load8_s + set_global $builtins/u + i32.const 8 + i32.load16_s + set_global $builtins/u + i32.const 8 + i32.load + set_global $builtins/u + i32.const 8 + i64.load8_s + set_global $builtins/I + i32.const 8 + i64.load16_s + set_global $builtins/I + i32.const 8 + i64.load32_s + set_global $builtins/I + i32.const 8 + i64.load + set_global $builtins/I + i32.const 8 + i64.load8_u + set_global $builtins/U + i32.const 8 + i64.load16_u + set_global $builtins/U + i32.const 8 + i64.load32_u + set_global $builtins/U + i32.const 8 + i64.load + set_global $builtins/U + i32.const 8 + i32.const 1 + i32.store8 + i32.const 8 + i32.const 1 + i32.store16 + i32.const 8 + i32.const 1 + i32.store + i32.const 8 + i64.const 1 + i64.store8 + i32.const 8 + i64.const 1 + i64.store16 + i32.const 8 + i64.const 1 + i64.store32 + i32.const 8 + i64.const 1 + i64.store + i32.const 8 + i32.const 1 + i64.extend_s/i32 + i64.store + f32.const 1.25 + i32.reinterpret/f32 + drop + i32.const 25 + f32.reinterpret/i32 + drop + f64.const 1.25 + i64.reinterpret/f64 + drop + i64.const 25 + f64.reinterpret/i64 + drop + f32.const 1.25 + i32.reinterpret/f32 + set_global $builtins/i + i32.const 25 + f32.reinterpret/i32 + set_global $builtins/f + f64.const 1.25 + i64.reinterpret/f64 + set_global $builtins/I + i64.const 25 + f64.reinterpret/i64 + set_global $builtins/F + current_memory + drop + i32.const 1 + grow_memory + drop + current_memory + set_global $builtins/s + i32.const 1 + grow_memory + set_global $builtins/s + i32.const 10 + i32.const 20 + i32.const 1 + select + drop + i64.const 100 + i64.const 200 + i32.const 0 + select + drop + f32.const 1.25 + f32.const 2.5 + i32.const 1 + select + drop + f64.const 12.5 + f64.const 25 + i32.const 0 + select + drop + i32.const 10 + i32.const 20 + i32.const 1 + select + set_global $builtins/i + i64.const 100 + i64.const 200 + i32.const 0 + select + set_global $builtins/I + f32.const 1.25 + f32.const 2.5 + i32.const 1 + select + set_global $builtins/f + f64.const 12.5 + f64.const 25 + i32.const 0 + select + set_global $builtins/F + get_global $builtins/i + i32.eqz + if + unreachable + end + i32.const 1 + i32.const 2 + get_global $builtins/fn + call_indirect (type $iiv) + i32.const 1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 247 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 248 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 250 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + drop + i32.const 1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 252 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 253 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 254 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 255 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 256 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + drop + i32.const 4 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 258 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 259 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 262 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 263 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 264 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 265 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 267 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 268 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.ne + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 270 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isNaN|inlined.3 (result i32) + f32.const nan:0x400000 + set_local $4 + get_local $4 + get_local $4 + f32.ne + end + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 271 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isNaN|inlined.3 (result i32) + f64.const nan:0x8000000000000 + set_local $5 + get_local $5 + get_local $5 + f64.ne + end + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 272 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.5 (result i32) + f32.const nan:0x400000 + set_local $4 + get_local $4 + get_local $4 + f32.sub + f32.const 0 + f32.eq + end + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 273 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.6 (result i32) + f32.const inf + set_local $4 + get_local $4 + get_local $4 + f32.sub + f32.const 0 + f32.eq + end + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 274 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.5 (result i32) + f64.const nan:0x8000000000000 + set_local $5 + get_local $5 + get_local $5 + f64.sub + f64.const 0 + f64.eq + end + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 275 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.6 (result i32) + f64.const inf + set_local $5 + get_local $5 + get_local $5 + f64.sub + f64.const 0 + f64.eq + end + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 276 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.7 (result i32) + f32.const 0 + set_local $4 + get_local $4 + get_local $4 + f32.sub + f32.const 0 + f32.eq + end + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 277 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isFinite|inlined.7 (result i32) + f64.const 0 + set_local $5 + get_local $5 + get_local $5 + f64.sub + f64.const 0 + f64.eq + end + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 278 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/i8.MIN_VALUE + i32.const 128 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 291 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/i8.MAX_VALUE + i32.const 127 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 292 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/i16.MIN_VALUE + i32.const 32768 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 293 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/i16.MAX_VALUE + i32.const 32767 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 294 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/i32.MIN_VALUE + i32.const -2147483648 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 295 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/i32.MAX_VALUE + i32.const 2147483647 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 296 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/i64.MIN_VALUE + i64.const -9223372036854775808 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 297 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/i64.MAX_VALUE + i64.const 9223372036854775807 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 298 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u8.MIN_VALUE + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 300 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u8.MAX_VALUE + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 301 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u16.MIN_VALUE + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 302 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u16.MAX_VALUE + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 303 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u32.MIN_VALUE + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 304 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u32.MAX_VALUE + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 305 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u64.MIN_VALUE + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 306 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u64.MAX_VALUE + i64.const -1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 307 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/bool.MIN_VALUE + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 308 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/bool.MIN_VALUE + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 308 + i32.const 29 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/bool.MAX_VALUE + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 309 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/bool.MAX_VALUE + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 309 + i32.const 29 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f32.MIN_NORMAL_VALUE + f32.const 1.1754943508222875e-38 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 311 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f32.MIN_VALUE + f32.const 1.401298464324817e-45 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 312 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f32.MAX_VALUE + f32.const 3402823466385288598117041e14 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 313 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f32.MIN_SAFE_INTEGER + f32.const -16777215 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 314 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f32.MAX_SAFE_INTEGER + f32.const 16777215 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 315 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f32.EPSILON + f32.const 1.1920928955078125e-07 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 316 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isNaN|inlined.4 (result i32) + get_global $~lib/builtins/f32.NaN + set_local $4 + get_local $4 + get_local $4 + f32.ne + end + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 317 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f64.MIN_NORMAL_VALUE + f64.const 2.2250738585072014e-308 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 318 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f64.MIN_VALUE + f64.const 5e-324 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 319 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f64.MAX_VALUE + f64.const 1797693134862315708145274e284 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 320 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f64.MIN_SAFE_INTEGER + f64.const -9007199254740991 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 321 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f64.MAX_SAFE_INTEGER + f64.const 9007199254740991 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 322 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f64.EPSILON + f64.const 2.220446049250313e-16 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 323 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/builtins/isNaN|inlined.4 (result i32) + get_global $~lib/builtins/f64.NaN + set_local $5 + get_local $5 + get_local $5 + f64.ne + end + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 324 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.abs + drop + f64.const 1 + f64.abs + drop + f32.const 1 + f32.ceil + drop + f64.const 1 + f64.ceil + drop + i32.const 1 + i32.clz + drop + i64.const 1 + i64.clz + drop + f32.const 1 + f32.const 2 + f32.copysign + drop + f64.const 1 + f64.const 2 + f64.copysign + drop + i32.const 1 + i32.ctz + drop + i64.const 1 + i64.ctz + drop + f32.const 1 + f32.floor + drop + f64.const 1 + f64.floor + drop + f32.const 1 + f32.nearest + drop + f64.const 1 + f64.nearest + drop + i32.const 1 + i32.popcnt + drop + i64.const 1 + i64.popcnt + drop + i32.const 8 + i32.load8_s + drop + i32.const 8 + i32.load8_u + drop + i32.const 8 + i32.load16_s + drop + i32.const 8 + i32.load16_u + drop + i32.const 8 + i32.load + drop + i32.const 8 + i64.load8_s + drop + i32.const 8 + i64.load8_u + drop + i32.const 8 + i64.load16_s + drop + i32.const 8 + i64.load16_u + drop + i32.const 8 + i64.load32_s + drop + i32.const 8 + i64.load32_u + drop + i32.const 8 + i64.load + drop + i32.const 8 + f32.load + drop + i32.const 8 + f64.load + drop + f32.const 1 + f32.const 2 + f32.max + drop + f64.const 1 + f64.const 2 + f64.max + drop + f32.const 1 + f32.const 2 + f32.min + drop + f64.const 1 + f64.const 2 + f64.min + drop + f32.const 1 + i32.reinterpret/f32 + drop + f64.const 1 + i64.reinterpret/f64 + drop + i32.const 1 + f32.reinterpret/i32 + drop + i64.const 1 + f64.reinterpret/i64 + drop + i32.const 1 + i32.const 2 + i32.rotl + drop + i64.const 1 + i64.const 2 + i64.rotl + drop + i32.const 1 + i32.const 2 + i32.rotr + drop + i64.const 1 + i64.const 2 + i64.rotr + drop + f32.const 1 + f32.sqrt + drop + f64.const 1 + f64.sqrt + drop + i32.const 8 + i32.const 1 + i32.store8 + i32.const 8 + i32.const 1 + i32.store16 + i32.const 8 + i32.const 1 + i32.store + i32.const 8 + i32.const 1 + i32.store8 + i32.const 8 + i32.const 1 + i32.store16 + i32.const 8 + i32.const 1 + i32.store + i32.const 8 + i64.const 1 + i64.store + i32.const 8 + f32.const 1 + f32.store + i32.const 8 + f64.const 1 + f64.store + f32.const 1 + f32.trunc + drop + f64.const 1 + f64.trunc + drop + block $~lib/builtins/isNaN|inlined.5 (result i32) + f64.const 1 + set_local $5 + get_local $5 + get_local $5 + f64.ne + end + drop ) (func $null (; 4 ;) (type $v) ) diff --git a/tests/compiler/call-inferred.optimized.wat b/tests/compiler/call-inferred.optimized.wat index 424dd403..84687f2b 100644 --- a/tests/compiler/call-inferred.optimized.wat +++ b/tests/compiler/call-inferred.optimized.wat @@ -4,86 +4,70 @@ (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$d (func (result f64))) (type $FUNCSIG$f (func (result f32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\10\00\00\00c\00a\00l\00l\00-\00i\00n\00f\00e\00r\00r\00e\00d\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $call-inferred/foo (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const 42) + (func $call-inferred/foo (; 1 ;) (type $FUNCSIG$i) (result i32) + i32.const 42 ) - (func $call-inferred/foo (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$d) (result f64) - (f64.const 42) + (func $call-inferred/foo (; 2 ;) (type $FUNCSIG$d) (result f64) + f64.const 42 ) - (func $call-inferred/foo (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$f) (result f32) - (f32.const 42) + (func $call-inferred/foo (; 3 ;) (type $FUNCSIG$f) (result f32) + f32.const 42 ) - (func $start (; 4 ;) (; has Stack IR ;) (type $v) - (if - (i32.ne - (call $call-inferred/foo) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $call-inferred/foo) - (f64.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (call $call-inferred/foo) - (f32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (call $call-inferred/foo) - (f32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 4 ;) (type $v) + call $call-inferred/foo + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $call-inferred/foo + f64.const 42 + f64.ne + if + i32.const 0 + i32.const 8 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $call-inferred/foo + f32.const 42 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $call-inferred/foo + f32.const 42 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 5 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 5 ;) (type $v) + nop ) ) diff --git a/tests/compiler/call-inferred.untouched.wat b/tests/compiler/call-inferred.untouched.wat index 601b9b61..923a3db0 100644 --- a/tests/compiler/call-inferred.untouched.wat +++ b/tests/compiler/call-inferred.untouched.wat @@ -4,104 +4,80 @@ (type $FF (func (param f64) (result f64))) (type $ff (func (param f32) (result f32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\10\00\00\00c\00a\00l\00l\00-\00i\00n\00f\00e\00r\00r\00e\00d\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $HEAP_BASE i32 (i32.const 44)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $call-inferred/foo (; 1 ;) (type $ii) (param $0 i32) (result i32) - (get_local $0) + get_local $0 ) (func $call-inferred/foo (; 2 ;) (type $FF) (param $0 f64) (result f64) - (get_local $0) + get_local $0 ) (func $call-inferred/foo (; 3 ;) (type $ff) (param $0 f32) (result f32) - (get_local $0) + get_local $0 ) (func $call-inferred/bar (; 4 ;) (type $ff) (param $0 f32) (result f32) - (get_local $0) + get_local $0 ) (func $start (; 5 ;) (type $v) - (if - (i32.eqz - (i32.eq - (call $call-inferred/foo - (i32.const 42) - ) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $call-inferred/foo - (f64.const 42) - ) - (f64.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (call $call-inferred/foo - (f32.const 42) - ) - (f32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (call $call-inferred/bar - (f32.const 42) - ) - (f32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 42 + call $call-inferred/foo + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 42 + call $call-inferred/foo + f64.const 42 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 42 + call $call-inferred/foo + f32.const 42 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 42 + call $call-inferred/bar + f32.const 42 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 6 ;) (type $v) ) diff --git a/tests/compiler/call-optional.optimized.wat b/tests/compiler/call-optional.optimized.wat index 5b1ff05d..63f8996d 100644 --- a/tests/compiler/call-optional.optimized.wat +++ b/tests/compiler/call-optional.optimized.wat @@ -2,182 +2,142 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\10\00\00\00c\00a\00l\00l\00-\00o\00p\00t\00i\00o\00n\00a\00l\00.\00t\00s") - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $call-optional/opt|trampoline) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~argc (mut i32) (i32.const 0)) (global $call-optional/optIndirect (mut i32) (i32.const 1)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $call-optional/opt (; 1 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) + (func $call-optional/opt (; 1 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + get_local $1 + i32.add + get_local $2 + i32.add ) - (func $call-optional/opt|trampoline (; 2 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const -1) - ) - ) - (set_local $2 - (i32.const -2) - ) - ) - (call $call-optional/opt - (get_local $0) - (get_local $1) - (get_local $2) - ) + (func $call-optional/opt|trampoline (; 2 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const -1 + set_local $1 + end + i32.const -2 + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $call-optional/opt ) - (func $start (; 3 ;) (; has Stack IR ;) (type $v) - (set_global $~argc - (i32.const 1) - ) - (if - (call $call-optional/opt|trampoline - (i32.const 3) - (i32.const 0) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.ne - (call $call-optional/opt|trampoline - (i32.const 3) - (i32.const 4) - (i32.const 0) - ) - (i32.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $call-optional/opt - (i32.const 3) - (i32.const 4) - (i32.const 5) - ) - (i32.const 12) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (call_indirect (type $iiii) - (i32.const 3) - (i32.const 0) - (i32.const 0) - (get_global $call-optional/optIndirect) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.ne - (call_indirect (type $iiii) - (i32.const 3) - (i32.const 4) - (i32.const 0) - (get_global $call-optional/optIndirect) - ) - (i32.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 3) - ) - (if - (i32.ne - (call_indirect (type $iiii) - (i32.const 3) - (i32.const 4) - (i32.const 5) - (get_global $call-optional/optIndirect) - ) - (i32.const 12) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 3 ;) (type $v) + i32.const 1 + set_global $~argc + i32.const 3 + i32.const 0 + i32.const 0 + call $call-optional/opt|trampoline + if + i32.const 0 + i32.const 8 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + set_global $~argc + i32.const 3 + i32.const 4 + i32.const 0 + call $call-optional/opt|trampoline + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + i32.const 4 + i32.const 5 + call $call-optional/opt + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 3 + i32.const 0 + i32.const 0 + get_global $call-optional/optIndirect + call_indirect (type $iiii) + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + set_global $~argc + i32.const 3 + i32.const 4 + i32.const 0 + get_global $call-optional/optIndirect + call_indirect (type $iiii) + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + set_global $~argc + i32.const 3 + i32.const 4 + i32.const 5 + get_global $call-optional/optIndirect + call_indirect (type $iiii) + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 4 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 4 ;) (type $v) + nop ) ) diff --git a/tests/compiler/call-optional.untouched.wat b/tests/compiler/call-optional.untouched.wat index f293ecc3..4cf2d5c5 100644 --- a/tests/compiler/call-optional.untouched.wat +++ b/tests/compiler/call-optional.untouched.wat @@ -2,11 +2,11 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\10\00\00\00c\00a\00l\00l\00-\00o\00p\00t\00i\00o\00n\00a\00l\00.\00t\00s\00") - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $call-optional/opt|trampoline) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~argc (mut i32) (i32.const 0)) (global $call-optional/optIndirect (mut i32) (i32.const 1)) (global $HEAP_BASE i32 (i32.const 44)) @@ -14,197 +14,149 @@ (export "table" (table $0)) (start $start) (func $call-optional/opt (; 1 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) + get_local $0 + get_local $1 + i32.add + get_local $2 + i32.add ) (func $call-optional/opt|trampoline (; 2 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const -1) - ) - ) - (set_local $2 - (i32.const -2) - ) - ) - (call $call-optional/opt - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const -1 + set_local $1 + end + i32.const -2 + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $call-optional/opt ) (func $start (; 3 ;) (type $v) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $call-optional/opt|trampoline - (i32.const 3) - (i32.const 0) - (i32.const 0) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call $call-optional/opt|trampoline - (i32.const 3) - (i32.const 4) - (i32.const 0) - ) - ) - (i32.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $call-optional/opt - (i32.const 3) - (i32.const 4) - (i32.const 5) - ) - (i32.const 12) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call_indirect (type $iiii) - (i32.const 3) - (i32.const 0) - (i32.const 0) - (get_global $call-optional/optIndirect) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iiii) - (i32.const 3) - (i32.const 4) - (i32.const 0) - (get_global $call-optional/optIndirect) - ) - ) - (i32.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 3) - ) - (call_indirect (type $iiii) - (i32.const 3) - (i32.const 4) - (i32.const 5) - (get_global $call-optional/optIndirect) - ) - ) - (i32.const 12) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) + block (result i32) + i32.const 1 + set_global $~argc + i32.const 3 + i32.const 0 + i32.const 0 + call $call-optional/opt|trampoline + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 2 + set_global $~argc + i32.const 3 + i32.const 4 + i32.const 0 + call $call-optional/opt|trampoline + end + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + i32.const 4 + i32.const 5 + call $call-optional/opt + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 3 + i32.const 0 + i32.const 0 + get_global $call-optional/optIndirect + call_indirect (type $iiii) + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 2 + set_global $~argc + i32.const 3 + i32.const 4 + i32.const 0 + get_global $call-optional/optIndirect + call_indirect (type $iiii) + end + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 3 + set_global $~argc + i32.const 3 + i32.const 4 + i32.const 5 + get_global $call-optional/optIndirect + call_indirect (type $iiii) + end + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 4 ;) (type $v) ) diff --git a/tests/compiler/class-extends.optimized.wat b/tests/compiler/class-extends.optimized.wat index b0d9ff00..4ad5a10a 100644 --- a/tests/compiler/class-extends.optimized.wat +++ b/tests/compiler/class-extends.optimized.wat @@ -2,32 +2,26 @@ (type $iv (func (param i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "test" (func $class-extends/test)) - (func $class-extends/test (; 0 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (drop - (i32.load - (get_local $0) - ) - ) - (drop - (i32.load16_s offset=4 - (get_local $0) - ) - ) - (i32.store - (get_local $0) - (i32.const 2) - ) - (i32.store16 offset=4 - (get_local $0) - (i32.const 3) - ) + (func $class-extends/test (; 0 ;) (type $iv) (param $0 i32) + get_local $0 + i32.load + drop + get_local $0 + i32.load16_s offset=4 + drop + get_local $0 + i32.const 2 + i32.store + get_local $0 + i32.const 3 + i32.store16 offset=4 ) - (func $null (; 1 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 1 ;) (type $v) + nop ) ) diff --git a/tests/compiler/class-extends.untouched.wat b/tests/compiler/class-extends.untouched.wat index 83cc7a30..61e50990 100644 --- a/tests/compiler/class-extends.untouched.wat +++ b/tests/compiler/class-extends.untouched.wat @@ -2,31 +2,25 @@ (type $iv (func (param i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) (export "table" (table $0)) (export "test" (func $class-extends/test)) (func $class-extends/test (; 0 ;) (type $iv) (param $0 i32) - (drop - (i32.load - (get_local $0) - ) - ) - (drop - (i32.load16_s offset=4 - (get_local $0) - ) - ) - (i32.store - (get_local $0) - (i32.const 2) - ) - (i32.store16 offset=4 - (get_local $0) - (i32.const 3) - ) + get_local $0 + i32.load + drop + get_local $0 + i32.load16_s offset=4 + drop + get_local $0 + i32.const 2 + i32.store + get_local $0 + i32.const 3 + i32.store16 offset=4 ) (func $null (; 1 ;) (type $v) ) diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index b750b3e3..54cf7958 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -3,24 +3,23 @@ (type $v (func)) (type $FUNCSIG$v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "test" (func $class-overloading/test)) (start $start) - (func $class-overloading/Foo#baz (; 0 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (nop) + (func $class-overloading/Foo#baz (; 0 ;) (type $FUNCSIG$v) + nop ) - (func $class-overloading/test (; 1 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (call $class-overloading/Foo#baz) + (func $class-overloading/test (; 1 ;) (type $iv) (param $0 i32) + call $class-overloading/Foo#baz ) - (func $start (; 2 ;) (; has Stack IR ;) (type $v) - (call $class-overloading/test - (i32.const 0) - ) + (func $start (; 2 ;) (type $v) + i32.const 0 + call $class-overloading/test ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/class-overloading.untouched.wat b/tests/compiler/class-overloading.untouched.wat index 082ac329..162d4f3b 100644 --- a/tests/compiler/class-overloading.untouched.wat +++ b/tests/compiler/class-overloading.untouched.wat @@ -2,7 +2,7 @@ (type $iv (func (param i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) @@ -10,17 +10,15 @@ (export "test" (func $class-overloading/test)) (start $start) (func $class-overloading/Foo#baz (; 0 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $class-overloading/test (; 1 ;) (type $iv) (param $0 i32) - (call $class-overloading/Foo#baz - (get_local $0) - ) + get_local $0 + call $class-overloading/Foo#baz ) (func $start (; 2 ;) (type $v) - (call $class-overloading/test - (i32.const 0) - ) + i32.const 0 + call $class-overloading/test ) (func $null (; 3 ;) (type $v) ) diff --git a/tests/compiler/class-with-boolean-field.optimized.wat b/tests/compiler/class-with-boolean-field.optimized.wat index e808ac29..1441bc3d 100644 --- a/tests/compiler/class-with-boolean-field.optimized.wat +++ b/tests/compiler/class-with-boolean-field.optimized.wat @@ -2,21 +2,19 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "test" (func $class-with-boolean-field/test)) - (func $class-with-boolean-field/test (; 0 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.store8 - (i32.const 0) - (i32.const 1) - ) - (i32.load8_u - (i32.const 0) - ) + (func $class-with-boolean-field/test (; 0 ;) (type $i) (result i32) + i32.const 0 + i32.const 1 + i32.store8 + i32.const 0 + i32.load8_u ) - (func $null (; 1 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 1 ;) (type $v) + nop ) ) diff --git a/tests/compiler/class-with-boolean-field.untouched.wat b/tests/compiler/class-with-boolean-field.untouched.wat index 98f2c9c9..01ac114c 100644 --- a/tests/compiler/class-with-boolean-field.untouched.wat +++ b/tests/compiler/class-with-boolean-field.untouched.wat @@ -2,7 +2,7 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) @@ -10,13 +10,11 @@ (export "test" (func $class-with-boolean-field/test)) (func $class-with-boolean-field/test (; 0 ;) (type $i) (result i32) (local $0 i32) - (i32.store8 - (get_local $0) - (i32.const 1) - ) - (i32.load8_u - (get_local $0) - ) + get_local $0 + i32.const 1 + i32.store8 + get_local $0 + i32.load8_u ) (func $null (; 1 ;) (type $v) ) diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index 00e30359..ff7a9ced 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -5,72 +5,56 @@ (type $FUNCSIG$f (func (result f32))) (memory $0 1) (data (i32.const 8) "\08\00\00\00c\00l\00a\00s\00s\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $class/Animal.ONE (mut i32) (i32.const 1)) (export "memory" (memory $0)) (export "table" (table $0)) (export "test" (func $class/test)) (start $start) - (func $class/Animal.add (; 0 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.add - (get_global $class/Animal.ONE) - (i32.const 3) - ) + (func $class/Animal.add (; 0 ;) (type $FUNCSIG$i) (result i32) + get_global $class/Animal.ONE + i32.const 3 + i32.add ) - (func $class/Animal.sub (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$f) (result f32) - (f32.add - (f32.const -1) - (f32.convert_s/i32 - (get_global $class/Animal.ONE) - ) - ) + (func $class/Animal.sub (; 1 ;) (type $FUNCSIG$f) (result f32) + f32.const -1 + get_global $class/Animal.ONE + f32.convert_s/i32 + f32.add ) - (func $class/test (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (drop - (call $class/Animal.add) - ) - (drop - (call $class/Animal.sub) - ) - (drop - (i32.load - (get_local $0) - ) - ) - (drop - (i32.load16_s offset=4 - (get_local $0) - ) - ) - (drop - (i32.load8_s offset=6 - (get_local $0) - ) - ) - (i32.store - (get_local $0) - (i32.const 1) - ) - (i32.store16 offset=4 - (get_local $0) - (i32.const 2) - ) - (i32.store8 offset=6 - (get_local $0) - (i32.const 3) - ) - (get_local $0) + (func $class/test (; 2 ;) (type $ii) (param $0 i32) (result i32) + call $class/Animal.add + drop + call $class/Animal.sub + drop + get_local $0 + i32.load + drop + get_local $0 + i32.load16_s offset=4 + drop + get_local $0 + i32.load8_s offset=6 + drop + get_local $0 + i32.const 1 + i32.store + get_local $0 + i32.const 2 + i32.store16 offset=4 + get_local $0 + i32.const 3 + i32.store8 offset=6 + get_local $0 ) - (func $start (; 3 ;) (; has Stack IR ;) (type $v) - (drop - (call $class/Animal.add) - ) - (drop - (call $class/Animal.sub) - ) + (func $start (; 3 ;) (type $v) + call $class/Animal.add + drop + call $class/Animal.sub + drop ) - (func $null (; 4 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 4 ;) (type $v) + nop ) ) diff --git a/tests/compiler/class.untouched.wat b/tests/compiler/class.untouched.wat index 59174a7d..7a7096de 100644 --- a/tests/compiler/class.untouched.wat +++ b/tests/compiler/class.untouched.wat @@ -6,11 +6,11 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $ifff (func (param i32 f32 f32) (result f32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\08\00\00\00c\00l\00a\00s\00s\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $class/Animal.ONE (mut i32) (i32.const 1)) (global $HEAP_BASE i32 (i32.const 28)) (export "memory" (memory $0)) @@ -18,142 +18,103 @@ (export "test" (func $class/test)) (start $start) (func $class/Animal.add (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (get_global $class/Animal.ONE) - ) + get_local $0 + get_local $1 + i32.add + get_global $class/Animal.ONE + i32.add ) (func $class/Animal.sub (; 2 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) - (f32.add - (f32.sub - (get_local $0) - (get_local $1) - ) - (f32.convert_s/i32 - (get_global $class/Animal.ONE) - ) - ) + get_local $0 + get_local $1 + f32.sub + get_global $class/Animal.ONE + f32.convert_s/i32 + f32.add ) (func $class/Animal#instanceAdd (; 3 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.add - (i32.add - (get_local $1) - (get_local $2) - ) - (get_global $class/Animal.ONE) - ) + get_local $1 + get_local $2 + i32.add + get_global $class/Animal.ONE + i32.add ) (func $class/Animal#instanceSub (; 4 ;) (type $ifff) (param $0 i32) (param $1 f32) (param $2 f32) (result f32) - (f32.add - (f32.sub - (get_local $1) - (get_local $2) - ) - (f32.convert_s/i32 - (get_global $class/Animal.ONE) - ) - ) + get_local $1 + get_local $2 + f32.sub + get_global $class/Animal.ONE + f32.convert_s/i32 + f32.add ) (func $class/test (; 5 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (drop - (call $class/Animal#instanceAdd - (get_local $0) - (i32.const 1) - (i32.const 2) - ) - ) - (drop - (call $class/Animal#instanceSub - (get_local $0) - (f32.const 1) - (f32.const 2) - ) - ) - (drop - (i32.load - (get_local $0) - ) - ) - (drop - (i32.load16_s offset=4 - (get_local $0) - ) - ) - (drop - (i32.load8_s offset=6 - (get_local $0) - ) - ) - (i32.store - (get_local $0) - (i32.add - (i32.const 0) - (i32.const 1) - ) - ) - (i32.store16 offset=4 - (get_local $0) - (i32.add - (i32.const 1) - (i32.const 1) - ) - ) - (i32.store8 offset=6 - (get_local $0) - (i32.add - (i32.add - (i32.const 1) - (i32.const 1) - ) - (i32.const 1) - ) - ) - (set_local $1 - (get_local $0) - ) - (set_local $2 - (get_local $1) - ) - (get_local $2) + get_local $0 + i32.const 1 + i32.const 2 + call $class/Animal#instanceAdd + drop + get_local $0 + f32.const 1 + f32.const 2 + call $class/Animal#instanceSub + drop + get_local $0 + i32.load + drop + get_local $0 + i32.load16_s offset=4 + drop + get_local $0 + i32.load8_s offset=6 + drop + get_local $0 + i32.const 0 + i32.const 1 + i32.add + i32.store + get_local $0 + i32.const 1 + i32.const 1 + i32.add + i32.store16 offset=4 + get_local $0 + i32.const 1 + i32.const 1 + i32.add + i32.const 1 + i32.add + i32.store8 offset=6 + get_local $0 + set_local $1 + get_local $1 + set_local $2 + get_local $2 ) (func $start (; 6 ;) (type $v) - (if - (i32.eqz - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (get_global $class/Animal.ONE) - ) - (drop - (call $class/Animal.add - (i32.const 1) - (i32.const 2) - ) - ) - (drop - (call $class/Animal.sub - (f32.const 1) - (f32.const 2) - ) - ) + i32.const 4 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $class/Animal.ONE + drop + i32.const 1 + i32.const 2 + call $class/Animal.add + drop + f32.const 1 + f32.const 2 + call $class/Animal.sub + drop ) (func $null (; 7 ;) (type $v) ) diff --git a/tests/compiler/closure.optimized.wat b/tests/compiler/closure.optimized.wat index b6693700..f90cb84b 100644 --- a/tests/compiler/closure.optimized.wat +++ b/tests/compiler/closure.optimized.wat @@ -1,11 +1,11 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) - (func $null (; 0 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 0 ;) (type $v) + nop ) ) diff --git a/tests/compiler/closure.untouched.wat b/tests/compiler/closure.untouched.wat index 2973943d..99c47340 100644 --- a/tests/compiler/closure.untouched.wat +++ b/tests/compiler/closure.untouched.wat @@ -1,7 +1,7 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) diff --git a/tests/compiler/comma.optimized.wat b/tests/compiler/comma.optimized.wat index 84f9f4d5..487cb739 100644 --- a/tests/compiler/comma.optimized.wat +++ b/tests/compiler/comma.optimized.wat @@ -1,225 +1,169 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\08\00\00\00c\00o\00m\00m\00a\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $comma/a (mut i32) (i32.const 0)) (global $comma/b (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 1 ;) (; has Stack IR ;) (type $v) + (func $start (; 1 ;) (type $v) (local $0 i32) - (set_global $comma/a - (i32.add - (tee_local $0 - (get_global $comma/a) - ) - (i32.const 1) - ) - ) - (set_global $comma/b - (get_local $0) - ) - (if - (i32.ne - (get_global $comma/a) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (get_global $comma/b) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $comma/a - (i32.add - (get_global $comma/a) - (i32.const 1) - ) - ) - (set_global $comma/b - (get_global $comma/a) - ) - (if - (i32.ne - (get_global $comma/a) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $comma/b) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $comma/b - (i32.const 0) - ) - (set_global $comma/a - (get_global $comma/b) - ) - (set_global $comma/a - (i32.add - (get_global $comma/a) - (i32.const 1) - ) - ) - (set_global $comma/b - (get_global $comma/a) - ) - (if - (i32.ne - (get_global $comma/a) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 14) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $comma/b) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $comma/a - (i32.add - (get_global $comma/a) - (i32.const 1) - ) - ) - (set_global $comma/b - (get_global $comma/a) - ) - (set_global $comma/a - (get_global $comma/b) - ) - (if - (i32.ne - (get_global $comma/a) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $comma/b) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $break|0 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (get_global $comma/a) - ) - ) - (set_global $comma/a - (i32.sub - (get_global $comma/a) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.ne - (get_local $0) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $comma/a + tee_local $0 + i32.const 1 + i32.add + set_global $comma/a + get_local $0 + set_global $comma/b + get_global $comma/a + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $comma/b + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $comma/a + i32.const 1 + i32.add + set_global $comma/a + get_global $comma/a + set_global $comma/b + get_global $comma/a + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $comma/b + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $comma/b + get_global $comma/b + set_global $comma/a + get_global $comma/a + i32.const 1 + i32.add + set_global $comma/a + get_global $comma/a + set_global $comma/b + get_global $comma/a + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 14 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $comma/b + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $comma/a + i32.const 1 + i32.add + set_global $comma/a + get_global $comma/a + set_global $comma/b + get_global $comma/b + set_global $comma/a + get_global $comma/a + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $comma/b + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $break|0 + i32.const 0 + set_local $0 + loop $repeat|0 + get_local $0 + get_global $comma/a + i32.ge_s + br_if $break|0 + get_global $comma/a + i32.const 1 + i32.sub + set_global $comma/a + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/comma.untouched.wat b/tests/compiler/comma.untouched.wat index 5c542b4d..c929bd9c 100644 --- a/tests/compiler/comma.untouched.wat +++ b/tests/compiler/comma.untouched.wat @@ -1,11 +1,11 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\08\00\00\00c\00o\00m\00m\00a\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $comma/a (mut i32) (i32.const 0)) (global $comma/b (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 28)) @@ -15,265 +15,194 @@ (func $start (; 1 ;) (type $v) (local $0 i32) (local $1 i32) - (block - (set_global $comma/b - (block (result i32) - (set_global $comma/a - (i32.add - (tee_local $0 - (get_global $comma/a) - ) - (i32.const 1) - ) - ) - (get_local $0) - ) - ) - (drop - (get_global $comma/a) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $comma/a) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $comma/b) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (block - (set_global $comma/a - (i32.add - (get_global $comma/a) - (i32.const 1) - ) - ) - (set_global $comma/b - (get_global $comma/a) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $comma/a) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $comma/b) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $comma/a - (block (result i32) - (set_global $comma/b - (i32.const 0) - ) - (get_global $comma/b) - ) - ) - (set_global $comma/b - (block (result i32) - (set_global $comma/a - (i32.add - (get_global $comma/a) - (i32.const 1) - ) - ) - (get_global $comma/a) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $comma/a) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 14) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $comma/b) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $comma/a - (block (result i32) - (set_global $comma/a - (i32.add - (get_global $comma/a) - (i32.const 1) - ) - ) - (block (result i32) - (set_global $comma/b - (get_global $comma/a) - ) - (get_global $comma/b) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $comma/a) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $comma/b) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $1) - (get_global $comma/a) - ) - ) - ) - (nop) - (block - (set_global $comma/a - (i32.sub - (get_global $comma/a) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_local $1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (block - (drop - (i32.const 1) - ) - (drop - (i32.const 2) - ) - (drop - (i32.const 3) - ) - ) + block + block (result i32) + get_global $comma/a + tee_local $0 + i32.const 1 + i32.add + set_global $comma/a + get_local $0 + end + set_global $comma/b + get_global $comma/a + drop + end + get_global $comma/a + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $comma/b + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + block + get_global $comma/a + i32.const 1 + i32.add + set_global $comma/a + get_global $comma/a + set_global $comma/b + end + get_global $comma/a + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $comma/b + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + set_global $comma/b + get_global $comma/b + end + set_global $comma/a + block (result i32) + get_global $comma/a + i32.const 1 + i32.add + set_global $comma/a + get_global $comma/a + end + set_global $comma/b + get_global $comma/a + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 14 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $comma/b + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + get_global $comma/a + i32.const 1 + i32.add + set_global $comma/a + block (result i32) + get_global $comma/a + set_global $comma/b + get_global $comma/b + end + end + set_global $comma/a + get_global $comma/a + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $comma/b + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + get_global $comma/a + i32.lt_s + i32.eqz + br_if $break|0 + nop + block + get_global $comma/a + i32.const 1 + i32.sub + set_global $comma/a + get_local $1 + i32.const 1 + i32.add + set_local $1 + end + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + block + i32.const 1 + drop + i32.const 2 + drop + i32.const 3 + drop + end ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/declare.optimized.wat b/tests/compiler/declare.optimized.wat index c3cd8226..1708077c 100644 --- a/tests/compiler/declare.optimized.wat +++ b/tests/compiler/declare.optimized.wat @@ -1,53 +1,45 @@ (module (type $v (func)) (type $iiiiv (func (param i32 i32 i32 i32))) - (memory $0 1) - (data (i32.const 8) "\n\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s") - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "declare" "externalConstant" (global $declare/externalConstant i32)) (import "declare" "my.externalConstant" (global $declare/my.externalConstant i32)) (import "declare" "externalFunction" (func $declare/externalFunction)) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (import "declare" "my.externalFunction" (func $declare/my.externalFunction)) + (memory $0 1) + (data (i32.const 8) "\n\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s") + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 3 ;) (; has Stack IR ;) (type $v) - (call $declare/externalFunction) - (if - (i32.ne - (get_global $declare/externalConstant) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $declare/my.externalFunction) - (if - (i32.ne - (get_global $declare/my.externalConstant) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 3 ;) (type $v) + call $declare/externalFunction + get_global $declare/externalConstant + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $declare/my.externalFunction + get_global $declare/my.externalConstant + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 4 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 4 ;) (type $v) + nop ) ) diff --git a/tests/compiler/declare.untouched.wat b/tests/compiler/declare.untouched.wat index 19ccbd4b..fdc27314 100644 --- a/tests/compiler/declare.untouched.wat +++ b/tests/compiler/declare.untouched.wat @@ -1,56 +1,46 @@ (module (type $v (func)) (type $iiiiv (func (param i32 i32 i32 i32))) - (memory $0 1) - (data (i32.const 8) "\n\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s\00") - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "declare" "externalConstant" (global $declare/externalConstant i32)) (import "declare" "my.externalConstant" (global $declare/my.externalConstant i32)) (import "declare" "externalFunction" (func $declare/externalFunction)) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (import "declare" "my.externalFunction" (func $declare/my.externalFunction)) + (memory $0 1) + (data (i32.const 8) "\n\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s\00") + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 32)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $start (; 3 ;) (type $v) - (call $declare/externalFunction) - (if - (i32.eqz - (i32.eq - (get_global $declare/externalConstant) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $declare/my.externalFunction) - (if - (i32.eqz - (i32.eq - (get_global $declare/my.externalConstant) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) + call $declare/externalFunction + get_global $declare/externalConstant + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $declare/my.externalFunction + get_global $declare/my.externalConstant + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 4 ;) (type $v) ) diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index 4043ba03..6033f633 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -1,205 +1,154 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\05\00\00\00d\00o\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $do/n (mut i32) (i32.const 10)) (global $do/m (mut i32) (i32.const 0)) (global $do/o (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 1 ;) (; has Stack IR ;) (type $v) + (func $start (; 1 ;) (type $v) (local $0 i32) - (loop $continue|0 - (set_global $do/n - (i32.sub - (get_global $do/n) - (i32.const 1) - ) - ) - (set_global $do/m - (i32.add - (get_global $do/m) - (i32.const 1) - ) - ) - (br_if $continue|0 - (get_global $do/n) - ) - ) - (if - (get_global $do/n) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $do/m) - (i32.const 10) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $do/n - (i32.const 10) - ) - (loop $continue|1 - (set_global $do/n - (i32.sub - (tee_local $0 - (get_global $do/n) - ) - (i32.const 1) - ) - ) - (br_if $continue|1 - (get_local $0) - ) - ) - (if - (i32.ne - (get_global $do/n) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $do/n - (i32.const 10) - ) - (set_global $do/m - (i32.const 0) - ) - (loop $continue|2 - (set_global $do/n - (i32.sub - (get_global $do/n) - (i32.const 1) - ) - ) - (set_global $do/m - (i32.add - (get_global $do/m) - (i32.const 1) - ) - ) - (loop $continue|3 - (set_global $do/n - (i32.sub - (get_global $do/n) - (i32.const 1) - ) - ) - (set_global $do/o - (i32.add - (get_global $do/o) - (i32.const 1) - ) - ) - (br_if $continue|3 - (get_global $do/n) - ) - ) - (if - (get_global $do/n) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 24) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $do/o) - (i32.const 9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 2) - ) - (unreachable) - ) - ) - (br_if $continue|2 - (get_global $do/n) - ) - ) - (if - (get_global $do/n) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $do/m) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $do/o) - (i32.const 9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 29) - (i32.const 0) - ) - (unreachable) - ) - ) + loop $continue|0 + get_global $do/n + i32.const 1 + i32.sub + set_global $do/n + get_global $do/m + i32.const 1 + i32.add + set_global $do/m + get_global $do/n + br_if $continue|0 + end + get_global $do/n + if + i32.const 0 + i32.const 8 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $do/m + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 10 + set_global $do/n + loop $continue|1 + get_global $do/n + tee_local $0 + i32.const 1 + i32.sub + set_global $do/n + get_local $0 + br_if $continue|1 + end + get_global $do/n + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 10 + set_global $do/n + i32.const 0 + set_global $do/m + loop $continue|2 + get_global $do/n + i32.const 1 + i32.sub + set_global $do/n + get_global $do/m + i32.const 1 + i32.add + set_global $do/m + loop $continue|3 + get_global $do/n + i32.const 1 + i32.sub + set_global $do/n + get_global $do/o + i32.const 1 + i32.add + set_global $do/o + get_global $do/n + br_if $continue|3 + end + get_global $do/n + if + i32.const 0 + i32.const 8 + i32.const 24 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_global $do/o + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_global $do/n + br_if $continue|2 + end + get_global $do/n + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $do/m + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $do/o + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 29 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/do.untouched.wat b/tests/compiler/do.untouched.wat index 772915cb..8c8c316f 100644 --- a/tests/compiler/do.untouched.wat +++ b/tests/compiler/do.untouched.wat @@ -1,11 +1,11 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\05\00\00\00d\00o\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $do/n (mut i32) (i32.const 10)) (global $do/m (mut i32) (i32.const 0)) (global $do/o (mut i32) (i32.const 0)) @@ -15,232 +15,170 @@ (start $start) (func $start (; 1 ;) (type $v) (local $0 i32) - (block $break|0 - (loop $continue|0 - (block - (set_global $do/n - (i32.sub - (get_global $do/n) - (i32.const 1) - ) - ) - (set_global $do/m - (i32.add - (get_global $do/m) - (i32.const 1) - ) - ) - ) - (br_if $continue|0 - (get_global $do/n) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $do/n) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $do/m) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $do/n - (i32.const 10) - ) - (block $break|1 - (loop $continue|1 - (nop) - (br_if $continue|1 - (block (result i32) - (set_global $do/n - (i32.sub - (tee_local $0 - (get_global $do/n) - ) - (i32.const 1) - ) - ) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $do/n) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $do/n - (i32.const 10) - ) - (set_global $do/m - (i32.const 0) - ) - (block $break|2 - (loop $continue|2 - (block - (set_global $do/n - (i32.sub - (get_global $do/n) - (i32.const 1) - ) - ) - (set_global $do/m - (i32.add - (get_global $do/m) - (i32.const 1) - ) - ) - (block $break|3 - (loop $continue|3 - (block - (set_global $do/n - (i32.sub - (get_global $do/n) - (i32.const 1) - ) - ) - (set_global $do/o - (i32.add - (get_global $do/o) - (i32.const 1) - ) - ) - ) - (br_if $continue|3 - (get_global $do/n) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $do/n) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 24) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $do/o) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (br_if $continue|2 - (get_global $do/n) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $do/n) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $do/m) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $do/o) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 29) - (i32.const 0) - ) - (unreachable) - ) - ) + block $break|0 + loop $continue|0 + block + get_global $do/n + i32.const 1 + i32.sub + set_global $do/n + get_global $do/m + i32.const 1 + i32.add + set_global $do/m + end + get_global $do/n + br_if $continue|0 + end + end + get_global $do/n + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $do/m + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 10 + set_global $do/n + block $break|1 + loop $continue|1 + nop + block (result i32) + get_global $do/n + tee_local $0 + i32.const 1 + i32.sub + set_global $do/n + get_local $0 + end + br_if $continue|1 + end + end + get_global $do/n + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 10 + set_global $do/n + i32.const 0 + set_global $do/m + block $break|2 + loop $continue|2 + block + get_global $do/n + i32.const 1 + i32.sub + set_global $do/n + get_global $do/m + i32.const 1 + i32.add + set_global $do/m + block $break|3 + loop $continue|3 + block + get_global $do/n + i32.const 1 + i32.sub + set_global $do/n + get_global $do/o + i32.const 1 + i32.add + set_global $do/o + end + get_global $do/n + br_if $continue|3 + end + end + get_global $do/n + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 24 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_global $do/o + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + get_global $do/n + br_if $continue|2 + end + end + get_global $do/n + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $do/m + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $do/o + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 29 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/empty.optimized.wat b/tests/compiler/empty.optimized.wat index b6693700..f90cb84b 100644 --- a/tests/compiler/empty.optimized.wat +++ b/tests/compiler/empty.optimized.wat @@ -1,11 +1,11 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) - (func $null (; 0 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 0 ;) (type $v) + nop ) ) diff --git a/tests/compiler/empty.untouched.wat b/tests/compiler/empty.untouched.wat index 2973943d..99c47340 100644 --- a/tests/compiler/empty.untouched.wat +++ b/tests/compiler/empty.untouched.wat @@ -1,7 +1,7 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) diff --git a/tests/compiler/enum.optimized.wat b/tests/compiler/enum.optimized.wat index 7a93a9eb..8e8679cd 100644 --- a/tests/compiler/enum.optimized.wat +++ b/tests/compiler/enum.optimized.wat @@ -2,7 +2,7 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $enum/Implicit.ZERO i32 (i32.const 0)) (global $enum/Implicit.ONE i32 (i32.const 1)) @@ -37,21 +37,18 @@ (export "SelfReference.ZERO" (global $enum/SelfReference.ZERO)) (export "SelfReference.ONE" (global $enum/SelfReference.ONE)) (start $start) - (func $enum/getZero (; 0 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 0) + (func $enum/getZero (; 0 ;) (type $i) (result i32) + i32.const 0 ) - (func $start (; 1 ;) (; has Stack IR ;) (type $v) - (set_global $enum/NonConstant.ZERO - (call $enum/getZero) - ) - (set_global $enum/NonConstant.ONE - (i32.add - (call $enum/getZero) - (i32.const 1) - ) - ) + (func $start (; 1 ;) (type $v) + call $enum/getZero + set_global $enum/NonConstant.ZERO + call $enum/getZero + i32.const 1 + i32.add + set_global $enum/NonConstant.ONE ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/enum.untouched.wat b/tests/compiler/enum.untouched.wat index b86e0ffe..94c97a81 100644 --- a/tests/compiler/enum.untouched.wat +++ b/tests/compiler/enum.untouched.wat @@ -2,7 +2,7 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $enum/Implicit.ZERO i32 (i32.const 0)) (global $enum/Implicit.ONE i32 (i32.const 1)) @@ -40,24 +40,19 @@ (export "SelfReference.ONE" (global $enum/SelfReference.ONE)) (start $start) (func $enum/getZero (; 0 ;) (type $i) (result i32) - (i32.const 0) + i32.const 0 ) (func $start (; 1 ;) (type $v) - (set_global $enum/NonConstant.ZERO - (call $enum/getZero) - ) - (set_global $enum/NonConstant.ONE - (i32.add - (call $enum/getZero) - (i32.const 1) - ) - ) - (drop - (get_global $enum/NonConstant.ZERO) - ) - (drop - (get_global $enum/NonConstant.ONE) - ) + call $enum/getZero + set_global $enum/NonConstant.ZERO + call $enum/getZero + i32.const 1 + i32.add + set_global $enum/NonConstant.ONE + get_global $enum/NonConstant.ZERO + drop + get_global $enum/NonConstant.ONE + drop ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/export.optimized.wat b/tests/compiler/export.optimized.wat index 364c84ee..2f643b64 100644 --- a/tests/compiler/export.optimized.wat +++ b/tests/compiler/export.optimized.wat @@ -2,7 +2,7 @@ (type $iii (func (param i32 i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $export/ns.two) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) @@ -16,25 +16,22 @@ (export "b" (global $export/b)) (export "renamed_c" (global $export/c)) (export "ns.two" (func $export/ns.two)) - (func $export/add (; 0 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + (func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.add ) - (func $export/sub (; 1 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + (func $export/sub (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.sub ) - (func $export/mul (; 2 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.mul - (get_local $0) - (get_local $1) - ) + (func $export/mul (; 2 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.mul ) - (func $export/ns.two (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $export/ns.two (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/export.untouched.wat b/tests/compiler/export.untouched.wat index a54727a9..7af9840e 100644 --- a/tests/compiler/export.untouched.wat +++ b/tests/compiler/export.untouched.wat @@ -2,7 +2,7 @@ (type $iii (func (param i32 i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) @@ -18,25 +18,22 @@ (export "renamed_c" (global $export/c)) (export "ns.two" (func $export/ns.two)) (func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $export/sub (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.sub ) (func $export/mul (; 2 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.mul - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.mul ) (func $export/ns.two (; 3 ;) (type $v) - (nop) + nop ) (func $null (; 4 ;) (type $v) ) diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index e945c1fe..1180572e 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -7,7 +7,7 @@ (type $v (func)) (type $FUNCSIG$i (func (result i32))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) @@ -47,198 +47,156 @@ (export "vehicles.Car#openDoors" (func $exports/Car#openDoors)) (export "outer.inner.a" (global $exports/outer.inner.a)) (start $start) - (func $exports/add (; 0 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + (func $exports/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.add ) - (func $exports/subOpt (; 1 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + (func $exports/subOpt (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.sub ) - (func $exports/Car.getNumTires (; 2 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 4) + (func $exports/Car.getNumTires (; 2 ;) (type $i) (result i32) + i32.const 4 ) - (func $~lib/allocator/arena/__memory_allocate (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/memory/memory.allocate (; 4 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (i32.const 4) - ) + (func $~lib/memory/memory.allocate (; 4 ;) (type $FUNCSIG$i) (result i32) + i32.const 4 + call $~lib/allocator/arena/__memory_allocate ) - (func $exports/Car#constructor (; 5 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (if - (i32.eqz - (get_local $0) - ) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate) - ) - (get_local $1) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - (get_local $0) + (func $exports/Car#constructor (; 5 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.eqz + if + call $~lib/memory/memory.allocate + tee_local $0 + get_local $1 + i32.store + end + get_local $0 + get_local $1 + i32.store + get_local $0 ) - (func $exports/Car#get:numDoors (; 6 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.load - (get_local $0) - ) + (func $exports/Car#get:numDoors (; 6 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load ) - (func $exports/Car#set:numDoors (; 7 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (get_local $1) - ) + (func $exports/Car#set:numDoors (; 7 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + get_local $1 + i32.store ) - (func $exports/Car#openDoors (; 8 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (nop) + (func $exports/Car#openDoors (; 8 ;) (type $iv) (param $0 i32) + nop ) - (func $start (; 9 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.const 8) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) + (func $start (; 9 ;) (type $v) + i32.const 8 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset ) - (func $null (; 10 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 10 ;) (type $v) + nop ) - (func $exports/subOpt|trampoline (; 11 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 0) - ) - ) - (call $exports/subOpt - (get_local $0) - (get_local $1) - ) + (func $exports/subOpt|trampoline (; 11 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + set_local $1 + end + get_local $0 + get_local $1 + call $exports/subOpt ) - (func $~setargc (; 12 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (set_global $~argc - (get_local $0) - ) + (func $~setargc (; 12 ;) (type $iv) (param $0 i32) + get_local $0 + set_global $~argc ) - (func $exports/Car#constructor|trampoline (; 13 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 2) - ) - ) - (call $exports/Car#constructor - (get_local $0) - (get_local $1) - ) + (func $exports/Car#constructor|trampoline (; 13 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2 + set_local $1 + end + get_local $0 + get_local $1 + call $exports/Car#constructor ) ) diff --git a/tests/compiler/exports.untouched.wat b/tests/compiler/exports.untouched.wat index dfff9161..07356a02 100644 --- a/tests/compiler/exports.untouched.wat +++ b/tests/compiler/exports.untouched.wat @@ -6,7 +6,7 @@ (type $iv (func (param i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) @@ -52,25 +52,22 @@ (export "outer.inner.a" (global $exports/outer.inner.a)) (start $start) (func $exports/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $exports/subOpt (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.sub ) (func $exports/math.sub (; 2 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.sub ) (func $exports/Car.getNumTires (; 3 ;) (type $i) (result i32) - (get_global $exports/Car.TIRES) + get_global $exports/Car.TIRES ) (func $~lib/allocator/arena/__memory_allocate (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -79,306 +76,238 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/memory/memory.allocate (; 5 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $exports/Car#constructor (; 6 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $2 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.store - (get_local $2) - (get_local $1) - ) - (get_local $2) - ) - ) - ) - ) - (get_local $1) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 4 + call $~lib/memory/memory.allocate + set_local $2 + get_local $2 + get_local $1 + i32.store + get_local $2 + end + tee_local $0 + end + tee_local $0 + get_local $1 + i32.store + get_local $0 ) (func $exports/Car#get:numDoors (; 7 ;) (type $ii) (param $0 i32) (result i32) - (i32.load - (get_local $0) - ) + get_local $0 + i32.load ) (func $exports/Car#set:numDoors (; 8 ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.store ) (func $exports/Car#openDoors (; 9 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $exports/vehicles.Car.getNumTires (; 10 ;) (type $i) (result i32) - (get_global $exports/vehicles.Car.TIRES) + get_global $exports/vehicles.Car.TIRES ) (func $exports/vehicles.Car#constructor (; 11 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $2 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.store - (get_local $2) - (get_local $1) - ) - (get_local $2) - ) - ) - ) - ) - (get_local $1) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 4 + call $~lib/memory/memory.allocate + set_local $2 + get_local $2 + get_local $1 + i32.store + get_local $2 + end + tee_local $0 + end + tee_local $0 + get_local $1 + i32.store + get_local $0 ) (func $exports/vehicles.Car#get:numDoors (; 12 ;) (type $ii) (param $0 i32) (result i32) - (i32.load - (get_local $0) - ) + get_local $0 + i32.load ) (func $exports/vehicles.Car#set:numDoors (; 13 ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.store ) (func $exports/vehicles.Car#openDoors (; 14 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $start (; 15 ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset ) (func $null (; 16 ;) (type $v) ) (func $exports/subOpt|trampoline (; 17 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 0) - ) - ) - (call $exports/subOpt - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + set_local $1 + end + get_local $0 + get_local $1 + call $exports/subOpt ) (func $~setargc (; 18 ;) (type $iv) (param $0 i32) - (set_global $~argc - (get_local $0) - ) + get_local $0 + set_global $~argc ) (func $exports/Car#constructor|trampoline (; 19 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 2) - ) - ) - (call $exports/Car#constructor - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2 + set_local $1 + end + get_local $0 + get_local $1 + call $exports/Car#constructor ) (func $Car#get:doors (; 20 ;) (type $ii) (param $0 i32) (result i32) - (i32.load - (get_local $0) - ) + get_local $0 + i32.load ) (func $Car#set:doors (; 21 ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.store ) (func $exports/vehicles.Car#constructor|trampoline (; 22 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 2) - ) - ) - (call $exports/vehicles.Car#constructor - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2 + set_local $1 + end + get_local $0 + get_local $1 + call $exports/vehicles.Car#constructor ) (func $vehicles.Car#get:doors (; 23 ;) (type $ii) (param $0 i32) (result i32) - (i32.load - (get_local $0) - ) + get_local $0 + i32.load ) (func $vehicles.Car#set:doors (; 24 ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.store ) ) diff --git a/tests/compiler/external.optimized.wat b/tests/compiler/external.optimized.wat index 534c6bda..f369cce1 100644 --- a/tests/compiler/external.optimized.wat +++ b/tests/compiler/external.optimized.wat @@ -1,13 +1,13 @@ (module (type $v (func)) - (memory $0 0) - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "foo" "var" (global $external/var_ i32)) (import "external" "foo" (func $external/foo)) (import "external" "foo.bar" (func $external/foo.bar)) (import "external" "bar" (func $external/two)) (import "foo" "baz" (func $external/three)) + (memory $0 0) + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "foo.bar" (func $external/foo.bar)) @@ -15,7 +15,7 @@ (export "two" (func $external/two)) (export "three" (func $external/three)) (export "var_" (global $external/var_)) - (func $null (; 4 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 4 ;) (type $v) + nop ) ) diff --git a/tests/compiler/external.untouched.wat b/tests/compiler/external.untouched.wat index 6d108a95..245320ee 100644 --- a/tests/compiler/external.untouched.wat +++ b/tests/compiler/external.untouched.wat @@ -1,13 +1,13 @@ (module (type $v (func)) - (memory $0 0) - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "foo" "var" (global $external/var_ i32)) (import "external" "foo" (func $external/foo)) (import "external" "foo.bar" (func $external/foo.bar)) (import "external" "bar" (func $external/two)) (import "foo" "baz" (func $external/three)) + (memory $0 0) + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) (export "table" (table $0)) diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index bfee54e7..75fd9a94 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -1,212 +1,178 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\06\00\00\00f\00o\00r\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $for/i (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 1 ;) (; has Stack IR ;) (type $v) + (func $start (; 1 ;) (type $v) (local $0 i32) (local $1 i32) - (block $break|0 - (set_global $for/i - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_global $for/i) - (i32.const 10) - ) - ) - (set_global $for/i - (i32.add - (get_global $for/i) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.ne - (get_global $for/i) - (i32.const 10) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $break|1 - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $0) - (i32.const 10) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (block $break|2 - (loop $repeat|2 - (br_if $break|2 - (i32.le_s - (get_global $for/i) - (i32.const 0) - ) - ) - (set_global $for/i - (i32.sub - (get_global $for/i) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (get_global $for/i) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $break|3 - (loop $repeat|3 - (br_if $break|3 - (i32.eq - (get_global $for/i) - (i32.const 10) - ) - ) - (set_global $for/i - (i32.add - (get_global $for/i) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (loop $repeat|4 - (set_global $for/i - (i32.sub - (get_global $for/i) - (i32.const 1) - ) - ) - (br_if $repeat|4 - (get_global $for/i) - ) - ) - (block $break|5 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|5 - (br_if $break|5 - (i32.ge_s - (get_local $0) - (i32.const 10) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|5) - ) - ) - (if - (i32.ne - (get_local $0) - (i32.const 10) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $break|6 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|6 - (br_if $break|6 - (i32.ge_s - (get_local $0) - (i32.const 10) - ) - ) - (block $break|7 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|7 - (block $continue|7 - (br_if $break|7 - (i32.ge_s - (get_local $1) - (i32.const 10) - ) - ) - (br_if $continue|7 - (i32.eq - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|7) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|6) - ) - ) + block $break|0 + i32.const 0 + set_global $for/i + loop $repeat|0 + get_global $for/i + i32.const 10 + i32.ge_s + br_if $break|0 + get_global $for/i + i32.const 1 + i32.add + set_global $for/i + br $repeat|0 + unreachable + end + unreachable + end + get_global $for/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $break|1 + loop $repeat|1 + get_local $0 + i32.const 10 + i32.ge_s + br_if $break|1 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + unreachable + end + unreachable + end + block $break|2 + loop $repeat|2 + get_global $for/i + i32.const 0 + i32.le_s + br_if $break|2 + get_global $for/i + i32.const 1 + i32.sub + set_global $for/i + br $repeat|2 + unreachable + end + unreachable + end + get_global $for/i + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $break|3 + loop $repeat|3 + get_global $for/i + i32.const 10 + i32.eq + br_if $break|3 + get_global $for/i + i32.const 1 + i32.add + set_global $for/i + br $repeat|3 + unreachable + end + unreachable + end + loop $repeat|4 + get_global $for/i + i32.const 1 + i32.sub + set_global $for/i + get_global $for/i + br_if $repeat|4 + end + block $break|5 + i32.const 0 + set_local $0 + loop $repeat|5 + get_local $0 + i32.const 10 + i32.ge_s + br_if $break|5 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|5 + unreachable + end + unreachable + end + get_local $0 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $break|6 + i32.const 0 + set_local $0 + loop $repeat|6 + get_local $0 + i32.const 10 + i32.ge_s + br_if $break|6 + block $break|7 + i32.const 0 + set_local $1 + loop $repeat|7 + block $continue|7 + get_local $1 + i32.const 10 + i32.ge_s + br_if $break|7 + get_local $0 + get_local $1 + i32.eq + br_if $continue|7 + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|7 + unreachable + end + unreachable + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|6 + unreachable + end + unreachable + end ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/for.untouched.wat b/tests/compiler/for.untouched.wat index aa0c932d..56f73f68 100644 --- a/tests/compiler/for.untouched.wat +++ b/tests/compiler/for.untouched.wat @@ -1,11 +1,11 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\06\00\00\00f\00o\00r\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $for/i (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 24)) (export "memory" (memory $0)) @@ -16,249 +16,204 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (block $break|0 - (set_global $for/i - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_global $for/i) - (i32.const 10) - ) - ) - ) - (nop) - (set_global $for/i - (i32.add - (get_global $for/i) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $for/i) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $0) - (i32.const 10) - ) - ) - ) - (nop) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (block $break|2 - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.gt_s - (get_global $for/i) - (i32.const 0) - ) - ) - ) - (nop) - (set_global $for/i - (i32.sub - (get_global $for/i) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $for/i) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $break|3 - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.const 1) - ) - ) - (if - (i32.eq - (get_global $for/i) - (i32.const 10) - ) - (br $break|3) - ) - (set_global $for/i - (i32.add - (get_global $for/i) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (block $break|4 - (loop $repeat|4 - (br_if $break|4 - (i32.eqz - (i32.const 1) - ) - ) - (if - (i32.eq - (block (result i32) - (set_global $for/i - (i32.sub - (get_global $for/i) - (i32.const 1) - ) - ) - (get_global $for/i) - ) - (i32.const 0) - ) - (br $break|4) - ) - (br $repeat|4) - ) - ) - (block $break|5 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|5 - (block $continue|5 - (br_if $break|5 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 10) - ) - ) - ) - (br $continue|5) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|5) - ) - ) - (if - (i32.eqz - (i32.eq - (get_local $1) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $break|6 - (set_local $2 - (i32.const 0) - ) - (loop $repeat|6 - (br_if $break|6 - (i32.eqz - (i32.lt_s - (get_local $2) - (i32.const 10) - ) - ) - ) - (block $break|7 - (set_local $3 - (i32.const 0) - ) - (loop $repeat|7 - (block $continue|7 - (br_if $break|7 - (i32.eqz - (i32.lt_s - (get_local $3) - (i32.const 10) - ) - ) - ) - (if - (i32.eq - (get_local $2) - (get_local $3) - ) - (br $continue|7) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|7) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|6) - ) - ) + block $break|0 + i32.const 0 + set_global $for/i + loop $repeat|0 + get_global $for/i + i32.const 10 + i32.lt_s + i32.eqz + br_if $break|0 + nop + get_global $for/i + i32.const 1 + i32.add + set_global $for/i + br $repeat|0 + unreachable + end + unreachable + end + get_global $for/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 10 + i32.lt_s + i32.eqz + br_if $break|1 + nop + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + unreachable + end + unreachable + end + block $break|2 + loop $repeat|2 + get_global $for/i + i32.const 0 + i32.gt_s + i32.eqz + br_if $break|2 + nop + get_global $for/i + i32.const 1 + i32.sub + set_global $for/i + br $repeat|2 + unreachable + end + unreachable + end + get_global $for/i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $break|3 + loop $repeat|3 + i32.const 1 + i32.eqz + br_if $break|3 + get_global $for/i + i32.const 10 + i32.eq + if + br $break|3 + end + get_global $for/i + i32.const 1 + i32.add + set_global $for/i + br $repeat|3 + unreachable + end + unreachable + end + block $break|4 + loop $repeat|4 + i32.const 1 + i32.eqz + br_if $break|4 + block (result i32) + get_global $for/i + i32.const 1 + i32.sub + set_global $for/i + get_global $for/i + end + i32.const 0 + i32.eq + if + br $break|4 + end + br $repeat|4 + unreachable + end + unreachable + end + block $break|5 + i32.const 0 + set_local $1 + loop $repeat|5 + block $continue|5 + get_local $1 + i32.const 10 + i32.lt_s + i32.eqz + br_if $break|5 + br $continue|5 + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|5 + unreachable + end + unreachable + end + get_local $1 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $break|6 + i32.const 0 + set_local $2 + loop $repeat|6 + get_local $2 + i32.const 10 + i32.lt_s + i32.eqz + br_if $break|6 + block $break|7 + i32.const 0 + set_local $3 + loop $repeat|7 + block $continue|7 + get_local $3 + i32.const 10 + i32.lt_s + i32.eqz + br_if $break|7 + get_local $2 + get_local $3 + i32.eq + if + br $continue|7 + end + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|7 + unreachable + end + unreachable + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|6 + unreachable + end + unreachable + end ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index 50469211..eeaa45bc 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -3,11 +3,11 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (type $i (func (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\16\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s") - (table 5 anyfunc) + (table $0 5 anyfunc) (elem (i32.const 0) $start~someName|3 $start~anonymous|1 $start~anonymous|1 $start~someName|3 $start~anonymous|4) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $function-expression/f1 (mut i32) (i32.const 1)) (global $~argc (mut i32) (i32.const 0)) (global $function-expression/f2 (mut i32) (i32.const 2)) @@ -16,83 +16,63 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start~anonymous|1 (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (get_local $0) + (func $start~anonymous|1 (; 1 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 ) - (func $start~someName|3 (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $start~someName|3 (; 2 ;) (type $v) + nop ) - (func $start~anonymous|4 (; 3 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 1) + (func $start~anonymous|4 (; 3 ;) (type $i) (result i32) + i32.const 1 ) - (func $start (; 4 ;) (; has Stack IR ;) (type $v) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.ne - (call_indirect (type $ii) - (i32.const 1) - (get_global $function-expression/f1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.ne - (call_indirect (type $ii) - (i32.const 2) - (get_global $function-expression/f2) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 0) - ) - (call_indirect (type $v) - (get_global $function-expression/f3) - ) - (set_global $~argc - (i32.const 0) - ) - (if - (i32.ne - (call_indirect (type $i) - (get_global $function-expression/f4) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 4 ;) (type $v) + i32.const 1 + set_global $~argc + i32.const 1 + get_global $function-expression/f1 + call_indirect (type $ii) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 2 + get_global $function-expression/f2 + call_indirect (type $ii) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $~argc + get_global $function-expression/f3 + call_indirect (type $v) + i32.const 0 + set_global $~argc + get_global $function-expression/f4 + call_indirect (type $i) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end ) ) diff --git a/tests/compiler/function-expression.untouched.wat b/tests/compiler/function-expression.untouched.wat index cd8cd4fd..43960e0f 100644 --- a/tests/compiler/function-expression.untouched.wat +++ b/tests/compiler/function-expression.untouched.wat @@ -3,11 +3,11 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (type $i (func (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\16\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s\00") - (table 5 anyfunc) + (table $0 5 anyfunc) (elem (i32.const 0) $null $start~anonymous|1 $start~anonymous|2 $start~someName|3 $start~anonymous|4) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $function-expression/f1 (mut i32) (i32.const 1)) (global $~argc (mut i32) (i32.const 0)) (global $function-expression/f2 (mut i32) (i32.const 2)) @@ -18,100 +18,77 @@ (export "table" (table $0)) (start $start) (func $start~anonymous|1 (; 1 ;) (type $ii) (param $0 i32) (result i32) - (get_local $0) + get_local $0 ) (func $start~anonymous|2 (; 2 ;) (type $ii) (param $0 i32) (result i32) - (get_local $0) + get_local $0 ) (func $start~someName|3 (; 3 ;) (type $v) - (nop) + nop ) (func $start~anonymous|4 (; 4 ;) (type $i) (result i32) - (i32.const 1) + i32.const 1 ) (func $start (; 5 ;) (type $v) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call_indirect (type $ii) - (i32.const 1) - (get_global $function-expression/f1) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call_indirect (type $ii) - (i32.const 2) - (get_global $function-expression/f2) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (block - (set_global $~argc - (i32.const 0) - ) - (call_indirect (type $v) - (get_global $function-expression/f3) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 0) - ) - (call_indirect (type $i) - (get_global $function-expression/f4) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) + block (result i32) + i32.const 1 + set_global $~argc + i32.const 1 + get_global $function-expression/f1 + call_indirect (type $ii) + end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 2 + get_global $function-expression/f2 + call_indirect (type $ii) + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + block + i32.const 0 + set_global $~argc + get_global $function-expression/f3 + call_indirect (type $v) + end + block (result i32) + i32.const 0 + set_global $~argc + get_global $function-expression/f4 + call_indirect (type $i) + end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 6 ;) (type $v) ) diff --git a/tests/compiler/function-types.optimized.wat b/tests/compiler/function-types.optimized.wat index e63745f6..50e60832 100644 --- a/tests/compiler/function-types.optimized.wat +++ b/tests/compiler/function-types.optimized.wat @@ -7,253 +7,198 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $v (func)) (type $FUNCSIG$i (func (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\11\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00t\00y\00p\00e\00s\00.\00t\00s") - (table 5 anyfunc) + (table $0 5 anyfunc) (elem (i32.const 0) $null $function-types/makeAdder~anonymous|1 $function-types/makeAdder~anonymous|2 $function-types/makeAdder~anonymous|3 $function-types/makeAdder~anonymous|1) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $function-types/i32Adder (mut i32) (i32.const 0)) (global $~argc (mut i32) (i32.const 0)) (global $function-types/i64Adder (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $function-types/makeAdder~anonymous|1 (; 1 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + (func $function-types/makeAdder~anonymous|1 (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.add ) - (func $function-types/makeAdder (; 2 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 1) + (func $function-types/makeAdder (; 2 ;) (type $i) (result i32) + i32.const 1 ) - (func $function-types/makeAdder~anonymous|2 (; 3 ;) (; has Stack IR ;) (type $III) (param $0 i64) (param $1 i64) (result i64) - (i64.add - (get_local $0) - (get_local $1) - ) + (func $function-types/makeAdder~anonymous|2 (; 3 ;) (type $III) (param $0 i64) (param $1 i64) (result i64) + get_local $0 + get_local $1 + i64.add ) - (func $function-types/makeAdder (; 4 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 2) + (func $function-types/makeAdder (; 4 ;) (type $i) (result i32) + i32.const 2 ) - (func $function-types/makeAdder~anonymous|3 (; 5 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (f64.add - (get_local $0) - (get_local $1) - ) + (func $function-types/makeAdder~anonymous|3 (; 5 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + get_local $0 + get_local $1 + f64.add ) - (func $function-types/makeAdder (; 6 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 3) + (func $function-types/makeAdder (; 6 ;) (type $i) (result i32) + i32.const 3 ) - (func $function-types/doAddWithFn (; 7 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $0) - (get_local $1) - (get_local $2) - ) + (func $function-types/doAddWithFn (; 7 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 2 + set_global $~argc + get_local $0 + get_local $1 + get_local $2 + call_indirect (type $iii) ) - (func $function-types/doAdd (; 8 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (i32.const 3) - (i32.const 4) - (call $function-types/makeAdder) - ) + (func $function-types/doAdd (; 8 ;) (type $FUNCSIG$i) (result i32) + i32.const 2 + set_global $~argc + i32.const 3 + i32.const 4 + call $function-types/makeAdder + call_indirect (type $iii) ) - (func $function-types/makeAndAdd|trampoline (; 9 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $function-types/makeAndAdd|trampoline (; 9 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 2) - ) - ) - ) - (unreachable) - ) - (set_local $0 - (call $function-types/makeAdder) - ) - ) - (call $function-types/doAddWithFn - (i32.const 1) - (i32.const 2) - (get_local $0) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + call $function-types/makeAdder + set_local $0 + end + i32.const 1 + i32.const 2 + get_local $0 + call $function-types/doAddWithFn ) - (func $start (; 10 ;) (; has Stack IR ;) (type $v) - (set_global $function-types/i32Adder - (call $function-types/makeAdder) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.ne - (call_indirect (type $iii) - (i32.const 1) - (i32.const 2) - (get_global $function-types/i32Adder) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $function-types/i64Adder - (call $function-types/makeAdder) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i64.ne - (call_indirect (type $III) - (i64.const 10) - (i64.const 20) - (get_global $function-types/i64Adder) - ) - (i64.const 30) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (f64.ne - (call_indirect (type $FFF) - (f64.const 1.5) - (f64.const 2.5) - (call $function-types/makeAdder) - ) - (f64.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $function-types/doAddWithFn - (i32.const 2) - (i32.const 3) - (get_global $function-types/i32Adder) - ) - (i32.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $function-types/doAdd) - (i32.const 7) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 29) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $function-types/doAddWithFn - (i32.const 4) - (i32.const 5) - (i32.const 4) - ) - (i32.const 9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 35) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.ne - (call $function-types/makeAndAdd|trampoline) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 41) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $function-types/doAddWithFn - (i32.const 1) - (i32.const 2) - (call $function-types/makeAdder) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 42) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 10 ;) (type $v) + call $function-types/makeAdder + set_global $function-types/i32Adder + i32.const 2 + set_global $~argc + i32.const 1 + i32.const 2 + get_global $function-types/i32Adder + call_indirect (type $iii) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $function-types/makeAdder + set_global $function-types/i64Adder + i32.const 2 + set_global $~argc + i64.const 10 + i64.const 20 + get_global $function-types/i64Adder + call_indirect (type $III) + i64.const 30 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + set_global $~argc + f64.const 1.5 + f64.const 2.5 + call $function-types/makeAdder + call_indirect (type $FFF) + f64.const 4 + f64.ne + if + i32.const 0 + i32.const 8 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 3 + get_global $function-types/i32Adder + call $function-types/doAddWithFn + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $function-types/doAdd + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 29 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + i32.const 5 + i32.const 4 + call $function-types/doAddWithFn + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 35 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + set_global $~argc + call $function-types/makeAndAdd|trampoline + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 41 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const 2 + call $function-types/makeAdder + call $function-types/doAddWithFn + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 42 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 11 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 11 ;) (type $v) + nop ) ) diff --git a/tests/compiler/function-types.untouched.wat b/tests/compiler/function-types.untouched.wat index f0702c72..da13a2e1 100644 --- a/tests/compiler/function-types.untouched.wat +++ b/tests/compiler/function-types.untouched.wat @@ -6,11 +6,11 @@ (type $FFF (func (param f64 f64) (result f64))) (type $iiii (func (param i32 i32 i32) (result i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\11\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00t\00y\00p\00e\00s\00.\00t\00s\00") - (table 5 anyfunc) + (table $0 5 anyfunc) (elem (i32.const 0) $null $function-types/makeAdder~anonymous|1 $function-types/makeAdder~anonymous|2 $function-types/makeAdder~anonymous|3 $function-types/addI32) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $function-types/i32Adder (mut i32) (i32.const 0)) (global $~argc (mut i32) (i32.const 0)) (global $function-types/i64Adder (mut i32) (i32.const 0)) @@ -19,286 +19,218 @@ (export "table" (table $0)) (start $start) (func $function-types/makeAdder~anonymous|1 (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $function-types/makeAdder (; 2 ;) (type $i) (result i32) - (i32.const 1) + i32.const 1 ) (func $function-types/makeAdder~anonymous|2 (; 3 ;) (type $III) (param $0 i64) (param $1 i64) (result i64) - (i64.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i64.add ) (func $function-types/makeAdder (; 4 ;) (type $i) (result i32) - (i32.const 2) + i32.const 2 ) (func $function-types/makeAdder~anonymous|3 (; 5 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (f64.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + f64.add ) (func $function-types/makeAdder (; 6 ;) (type $i) (result i32) - (i32.const 3) + i32.const 3 ) (func $function-types/doAddWithFn (; 7 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $0) - (get_local $1) - (get_local $2) - ) + i32.const 2 + set_global $~argc + get_local $0 + get_local $1 + get_local $2 + call_indirect (type $iii) ) (func $function-types/doAdd (; 8 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $0) - (get_local $1) - (call $function-types/makeAdder) - ) + i32.const 2 + set_global $~argc + get_local $0 + get_local $1 + call $function-types/makeAdder + call_indirect (type $iii) ) (func $function-types/addI32 (; 9 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $function-types/makeAndAdd (; 10 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $0) - (get_local $1) - (get_local $2) - ) + i32.const 2 + set_global $~argc + get_local $0 + get_local $1 + get_local $2 + call_indirect (type $iii) ) (func $function-types/makeAndAdd|trampoline (; 11 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 2) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (call $function-types/makeAdder) - ) - ) - (call $function-types/makeAndAdd - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + call $function-types/makeAdder + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $function-types/makeAndAdd ) (func $start (; 12 ;) (type $v) - (nop) - (set_global $function-types/i32Adder - (call $function-types/makeAdder) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (i32.const 1) - (i32.const 2) - (get_global $function-types/i32Adder) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $function-types/i64Adder - (call $function-types/makeAdder) - ) - (if - (i32.eqz - (i64.eq - (block (result i64) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $III) - (i64.const 10) - (i64.const 20) - (get_global $function-types/i64Adder) - ) - ) - (i64.const 30) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (block (result f64) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $FFF) - (f64.const 1.5) - (f64.const 2.5) - (call $function-types/makeAdder) - ) - ) - (f64.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $function-types/doAddWithFn - (i32.const 2) - (i32.const 3) - (get_global $function-types/i32Adder) - ) - (i32.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $function-types/doAdd - (i32.const 3) - (i32.const 4) - ) - (i32.const 7) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 29) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $function-types/doAddWithFn - (i32.const 4) - (i32.const 5) - (i32.const 4) - ) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 35) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call $function-types/makeAndAdd|trampoline - (i32.const 1) - (i32.const 2) - (i32.const 0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 41) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $function-types/makeAndAdd - (i32.const 1) - (i32.const 2) - (call $function-types/makeAdder) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 42) - (i32.const 0) - ) - (unreachable) - ) - ) + nop + call $function-types/makeAdder + set_global $function-types/i32Adder + block (result i32) + i32.const 2 + set_global $~argc + i32.const 1 + i32.const 2 + get_global $function-types/i32Adder + call_indirect (type $iii) + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $function-types/makeAdder + set_global $function-types/i64Adder + block (result i64) + i32.const 2 + set_global $~argc + i64.const 10 + i64.const 20 + get_global $function-types/i64Adder + call_indirect (type $III) + end + i64.const 30 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result f64) + i32.const 2 + set_global $~argc + f64.const 1.5 + f64.const 2.5 + call $function-types/makeAdder + call_indirect (type $FFF) + end + f64.const 4 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 3 + get_global $function-types/i32Adder + call $function-types/doAddWithFn + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + i32.const 4 + call $function-types/doAdd + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 29 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + i32.const 5 + i32.const 4 + call $function-types/doAddWithFn + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 35 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 2 + set_global $~argc + i32.const 1 + i32.const 2 + i32.const 0 + call $function-types/makeAndAdd|trampoline + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 41 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const 2 + call $function-types/makeAdder + call $function-types/makeAndAdd + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 42 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 13 ;) (type $v) ) diff --git a/tests/compiler/function.optimized.wat b/tests/compiler/function.optimized.wat index 983014f5..e582fc89 100644 --- a/tests/compiler/function.optimized.wat +++ b/tests/compiler/function.optimized.wat @@ -10,92 +10,80 @@ (type $FUNCSIG$f (func (result f32))) (type $FUNCSIG$d (func (result f64))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $function/v) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $function/v (; 0 ;) (; has Stack IR ;) (type $v) - (nop) + (func $function/v (; 0 ;) (type $v) + nop ) - (func $function/i (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 0) + (func $function/i (; 1 ;) (type $i) (result i32) + i32.const 0 ) - (func $function/I (; 2 ;) (; has Stack IR ;) (type $I) (result i64) - (i64.const 0) + (func $function/I (; 2 ;) (type $I) (result i64) + i64.const 0 ) - (func $function/f (; 3 ;) (; has Stack IR ;) (type $f) (result f32) - (f32.const 0) + (func $function/f (; 3 ;) (type $f) (result f32) + f32.const 0 ) - (func $function/F (; 4 ;) (; has Stack IR ;) (type $F) (result f64) - (f64.const 0) + (func $function/F (; 4 ;) (type $F) (result f64) + f64.const 0 ) - (func $function/iv (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (nop) + (func $function/iv (; 5 ;) (type $FUNCSIG$v) + nop ) - (func $function/ii (; 6 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const 0) + (func $function/ii (; 6 ;) (type $FUNCSIG$i) (result i32) + i32.const 0 ) - (func $function/II (; 7 ;) (; has Stack IR ;) (type $FUNCSIG$j) (result i64) - (i64.const 0) + (func $function/II (; 7 ;) (type $FUNCSIG$j) (result i64) + i64.const 0 ) - (func $function/ff (; 8 ;) (; has Stack IR ;) (type $FUNCSIG$f) (result f32) - (f32.const 0) + (func $function/ff (; 8 ;) (type $FUNCSIG$f) (result f32) + f32.const 0 ) - (func $function/FF (; 9 ;) (; has Stack IR ;) (type $FUNCSIG$d) (result f64) - (f64.const 0) + (func $function/FF (; 9 ;) (type $FUNCSIG$d) (result f64) + f64.const 0 ) - (func $function/iii (; 10 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const 3) + (func $function/iii (; 10 ;) (type $FUNCSIG$i) (result i32) + i32.const 3 ) - (func $function/III (; 11 ;) (; has Stack IR ;) (type $FUNCSIG$j) (result i64) - (i64.const 3) + (func $function/III (; 11 ;) (type $FUNCSIG$j) (result i64) + i64.const 3 ) - (func $function/fff (; 12 ;) (; has Stack IR ;) (type $FUNCSIG$f) (result f32) - (f32.const 3) + (func $function/fff (; 12 ;) (type $FUNCSIG$f) (result f32) + f32.const 3 ) - (func $function/FFF (; 13 ;) (; has Stack IR ;) (type $FUNCSIG$d) (result f64) - (f64.const 3) + (func $function/FFF (; 13 ;) (type $FUNCSIG$d) (result f64) + f64.const 3 ) - (func $start (; 14 ;) (; has Stack IR ;) (type $v) - (call $function/v) - (drop - (call $function/i) - ) - (drop - (call $function/I) - ) - (drop - (call $function/f) - ) - (drop - (call $function/F) - ) - (call $function/iv) - (drop - (call $function/ii) - ) - (drop - (call $function/II) - ) - (drop - (call $function/ff) - ) - (drop - (call $function/FF) - ) - (call $function/iv) - (drop - (call $function/iii) - ) - (drop - (call $function/III) - ) - (drop - (call $function/fff) - ) - (drop - (call $function/FFF) - ) + (func $start (; 14 ;) (type $v) + call $function/v + call $function/i + drop + call $function/I + drop + call $function/f + drop + call $function/F + drop + call $function/iv + call $function/ii + drop + call $function/II + drop + call $function/ff + drop + call $function/FF + drop + call $function/iv + call $function/iii + drop + call $function/III + drop + call $function/fff + drop + call $function/FFF + drop ) ) diff --git a/tests/compiler/function.untouched.wat b/tests/compiler/function.untouched.wat index 598a89d7..0cb347e5 100644 --- a/tests/compiler/function.untouched.wat +++ b/tests/compiler/function.untouched.wat @@ -15,136 +15,109 @@ (type $fff (func (param f32 f32) (result f32))) (type $FFF (func (param f64 f64) (result f64))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $function/v (; 0 ;) (type $v) - (nop) + nop ) (func $function/i (; 1 ;) (type $i) (result i32) - (i32.const 0) + i32.const 0 ) (func $function/I (; 2 ;) (type $I) (result i64) - (i64.const 0) + i64.const 0 ) (func $function/f (; 3 ;) (type $f) (result f32) - (f32.const 0) + f32.const 0 ) (func $function/F (; 4 ;) (type $F) (result f64) - (f64.const 0) + f64.const 0 ) (func $function/iv (; 5 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $function/ii (; 6 ;) (type $ii) (param $0 i32) (result i32) - (get_local $0) + get_local $0 ) (func $function/II (; 7 ;) (type $II) (param $0 i64) (result i64) - (get_local $0) + get_local $0 ) (func $function/ff (; 8 ;) (type $ff) (param $0 f32) (result f32) - (get_local $0) + get_local $0 ) (func $function/FF (; 9 ;) (type $FF) (param $0 f64) (result f64) - (get_local $0) + get_local $0 ) (func $function/iiv (; 10 ;) (type $iiv) (param $0 i32) (param $1 i32) - (nop) + nop ) (func $function/iii (; 11 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $function/III (; 12 ;) (type $IiI) (param $0 i64) (param $1 i32) (result i64) - (i64.add - (get_local $0) - (i64.extend_s/i32 - (get_local $1) - ) - ) + get_local $0 + get_local $1 + i64.extend_s/i32 + i64.add ) (func $function/fff (; 13 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) - (f32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + f32.add ) (func $function/FFF (; 14 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (f64.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + f64.add ) (func $start (; 15 ;) (type $v) - (call $function/v) - (drop - (call $function/i) - ) - (drop - (call $function/I) - ) - (drop - (call $function/f) - ) - (drop - (call $function/F) - ) - (call $function/iv - (i32.const 0) - ) - (drop - (call $function/ii - (i32.const 0) - ) - ) - (drop - (call $function/II - (i64.const 0) - ) - ) - (drop - (call $function/ff - (f32.const 0) - ) - ) - (drop - (call $function/FF - (f64.const 0) - ) - ) - (call $function/iiv - (i32.const 1) - (i32.const 2) - ) - (drop - (call $function/iii - (i32.const 1) - (i32.const 2) - ) - ) - (drop - (call $function/III - (i64.const 1) - (i32.const 2) - ) - ) - (drop - (call $function/fff - (f32.const 1) - (f32.const 2) - ) - ) - (drop - (call $function/FFF - (f64.const 1) - (f64.const 2) - ) - ) + call $function/v + call $function/i + drop + call $function/I + drop + call $function/f + drop + call $function/F + drop + i32.const 0 + call $function/iv + i32.const 0 + call $function/ii + drop + i64.const 0 + call $function/II + drop + f32.const 0 + call $function/ff + drop + f64.const 0 + call $function/FF + drop + i32.const 1 + i32.const 2 + call $function/iiv + i32.const 1 + i32.const 2 + call $function/iii + drop + i64.const 1 + i32.const 2 + call $function/III + drop + f32.const 1 + f32.const 2 + call $function/fff + drop + f64.const 1 + f64.const 2 + call $function/FFF + drop ) (func $null (; 16 ;) (type $v) ) diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 4f43d719..680e38fb 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -4,7 +4,7 @@ (type $v (func)) (type $FUNCSIG$i (func (result i32))) (memory $0 0) - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $getter-call/C#get:x~anonymous|1) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) @@ -13,123 +13,94 @@ (export "table" (table $0)) (export "test" (func $getter-call/test)) (start $start) - (func $~lib/allocator/arena/__memory_allocate (; 0 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 0 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/memory/memory.allocate (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (i32.const 0) - ) + (func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$i) (result i32) + i32.const 0 + call $~lib/allocator/arena/__memory_allocate ) - (func $getter-call/C#get:x~anonymous|1 (; 2 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 42) + (func $getter-call/C#get:x~anonymous|1 (; 2 ;) (type $i) (result i32) + i32.const 42 ) - (func $getter-call/C#get:x (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const 1) + (func $getter-call/C#get:x (; 3 ;) (type $FUNCSIG$i) (result i32) + i32.const 1 ) - (func $getter-call/test (; 4 ;) (; has Stack IR ;) (type $i) (result i32) + (func $getter-call/test (; 4 ;) (type $i) (result i32) (local $0 i32) - (set_local $0 - (call $~lib/memory/memory.allocate) - ) - (set_global $~argc - (i32.const 0) - ) - (call_indirect (type $i) - (call $getter-call/C#get:x) - ) + call $~lib/memory/memory.allocate + set_local $0 + i32.const 0 + set_global $~argc + call $getter-call/C#get:x + call_indirect (type $i) ) - (func $start (; 5 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.const 8) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) + (func $start (; 5 ;) (type $v) + i32.const 8 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset ) - (func $null (; 6 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 6 ;) (type $v) + nop ) ) diff --git a/tests/compiler/getter-call.untouched.wat b/tests/compiler/getter-call.untouched.wat index 498fa49f..cce1551d 100644 --- a/tests/compiler/getter-call.untouched.wat +++ b/tests/compiler/getter-call.untouched.wat @@ -3,7 +3,7 @@ (type $ii (func (param i32) (result i32))) (type $v (func)) (memory $0 0) - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $getter-call/C#get:x~anonymous|1) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) @@ -24,160 +24,115 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/memory/memory.allocate (; 1 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $getter-call/C#get:x~anonymous|1 (; 2 ;) (type $i) (result i32) - (i32.const 42) + i32.const 42 ) (func $getter-call/C#get:x (; 3 ;) (type $ii) (param $0 i32) (result i32) - (i32.const 1) + i32.const 1 ) (func $getter-call/test (; 4 ;) (type $i) (result i32) (local $0 i32) - (set_local $0 - (block (result i32) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $0) - ) - ) - (set_global $~argc - (i32.const 0) - ) - (call_indirect (type $i) - (call $getter-call/C#get:x - (get_local $0) - ) - ) + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $0 + get_local $0 + end + set_local $0 + i32.const 0 + set_global $~argc + get_local $0 + call $getter-call/C#get:x + call_indirect (type $i) ) (func $start (; 5 ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset ) (func $null (; 6 ;) (type $v) ) diff --git a/tests/compiler/getter-setter.optimized.wat b/tests/compiler/getter-setter.optimized.wat index 51b80f9d..8af94b51 100644 --- a/tests/compiler/getter-setter.optimized.wat +++ b/tests/compiler/getter-setter.optimized.wat @@ -3,74 +3,60 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $iv (func (param i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\10\00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $getter-setter/Foo._bar (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $getter-setter/Foo.get:bar (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - (get_global $getter-setter/Foo._bar) + (func $getter-setter/Foo.get:bar (; 1 ;) (type $i) (result i32) + get_global $getter-setter/Foo._bar ) - (func $getter-setter/Foo.set:bar (; 2 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (set_global $getter-setter/Foo._bar - (get_local $0) - ) + (func $getter-setter/Foo.set:bar (; 2 ;) (type $iv) (param $0 i32) + get_local $0 + set_global $getter-setter/Foo._bar ) - (func $start (; 3 ;) (; has Stack IR ;) (type $v) - (if - (call $getter-setter/Foo.get:bar) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $getter-setter/Foo.set:bar - (i32.const 1) - ) - (if - (i32.ne - (call $getter-setter/Foo.get:bar) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $getter-setter/Foo.set:bar - (i32.const 2) - ) - (if - (i32.ne - (call $getter-setter/Foo.get:bar) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 3 ;) (type $v) + call $getter-setter/Foo.get:bar + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $getter-setter/Foo.set:bar + call $getter-setter/Foo.get:bar + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $getter-setter/Foo.set:bar + call $getter-setter/Foo.get:bar + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 4 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 4 ;) (type $v) + nop ) ) diff --git a/tests/compiler/getter-setter.untouched.wat b/tests/compiler/getter-setter.untouched.wat index 08369dc9..40e33e17 100644 --- a/tests/compiler/getter-setter.untouched.wat +++ b/tests/compiler/getter-setter.untouched.wat @@ -3,84 +3,66 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $iv (func (param i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\10\00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $getter-setter/Foo._bar (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 44)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $getter-setter/Foo.get:bar (; 1 ;) (type $i) (result i32) - (get_global $getter-setter/Foo._bar) + get_global $getter-setter/Foo._bar ) (func $getter-setter/Foo.set:bar (; 2 ;) (type $iv) (param $0 i32) - (set_global $getter-setter/Foo._bar - (get_local $0) - ) + get_local $0 + set_global $getter-setter/Foo._bar ) (func $start (; 3 ;) (type $v) - (if - (i32.eqz - (i32.eq - (call $getter-setter/Foo.get:bar) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $getter-setter/Foo.set:bar - (i32.const 1) - ) - (if - (i32.eqz - (i32.eq - (call $getter-setter/Foo.get:bar) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (call $getter-setter/Foo.set:bar - (i32.const 2) - ) - (call $getter-setter/Foo.get:bar) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) + call $getter-setter/Foo.get:bar + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $getter-setter/Foo.set:bar + call $getter-setter/Foo.get:bar + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 2 + call $getter-setter/Foo.set:bar + call $getter-setter/Foo.get:bar + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 4 ;) (type $v) ) diff --git a/tests/compiler/i64-polyfill.optimized.wat b/tests/compiler/i64-polyfill.optimized.wat index d6f1c432..5f7147a8 100644 --- a/tests/compiler/i64-polyfill.optimized.wat +++ b/tests/compiler/i64-polyfill.optimized.wat @@ -4,7 +4,7 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $../../examples/i64-polyfill/assembly/i64/lo (mut i32) (i32.const 0)) (global $../../examples/i64-polyfill/assembly/i64/hi (mut i32) (i32.const 0)) @@ -41,1024 +41,658 @@ (export "gt_u" (func $../../examples/i64-polyfill/assembly/i64/gt_u)) (export "ge_s" (func $../../examples/i64-polyfill/assembly/i64/ge_s)) (export "ge_u" (func $../../examples/i64-polyfill/assembly/i64/ge_u)) - (func $../../examples/i64-polyfill/assembly/i64/getHi (; 0 ;) (; has Stack IR ;) (type $i) (result i32) - (get_global $../../examples/i64-polyfill/assembly/i64/hi) + (func $../../examples/i64-polyfill/assembly/i64/getHi (; 0 ;) (type $i) (result i32) + get_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/getLo (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - (get_global $../../examples/i64-polyfill/assembly/i64/lo) + (func $../../examples/i64-polyfill/assembly/i64/getLo (; 1 ;) (type $i) (result i32) + get_global $../../examples/i64-polyfill/assembly/i64/lo ) - (func $../../examples/i64-polyfill/assembly/i64/clz (; 2 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (i64.clz - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/clz (; 2 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.clz + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/ctz (; 3 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (i64.ctz - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/ctz (; 3 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ctz + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/popcnt (; 4 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (i64.popcnt - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/popcnt (; 4 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.popcnt + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/eqz (; 5 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.eqz - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/eqz (; 5 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.eqz + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/add (; 6 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/add (; 6 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.add - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.add + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/sub (; 7 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/sub (; 7 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.sub - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.sub + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/mul (; 8 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/mul (; 8 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.mul - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.mul + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/div_s (; 9 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/div_s (; 9 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.div_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.div_s + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/div_u (; 10 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/div_u (; 10 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.div_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.div_u + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/rem_s (; 11 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/rem_s (; 11 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.rem_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rem_s + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/rem_u (; 12 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/rem_u (; 12 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.rem_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rem_u + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/and (; 13 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/and (; 13 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.and - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.and + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/or (; 14 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/or (; 14 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.or - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.or + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/xor (; 15 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/xor (; 15 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.xor - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.xor + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/shl (; 16 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/shl (; 16 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.shl - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shl + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/shr_s (; 17 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/shr_s (; 17 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.shr_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shr_s + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/shr_u (; 18 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/shr_u (; 18 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.shr_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shr_u + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/rotl (; 19 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/rotl (; 19 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.rotl - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rotl + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/rotr (; 20 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/i64-polyfill/assembly/i64/rotr (; 20 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (tee_local $4 - (i64.rotr - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rotr + tee_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/eq (; 21 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.eq - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/eq (; 21 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.eq + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/ne (; 22 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.ne - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/ne (; 22 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ne + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/lt_s (; 23 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.lt_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/lt_s (; 23 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.lt_s + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/lt_u (; 24 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.lt_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/lt_u (; 24 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.lt_u + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/le_s (; 25 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.le_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/le_s (; 25 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.le_s + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/le_u (; 26 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.le_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/le_u (; 26 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.le_u + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/gt_s (; 27 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.gt_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/gt_s (; 27 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.gt_s + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/gt_u (; 28 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.gt_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/gt_u (; 28 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.gt_u + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/ge_s (; 29 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.ge_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/ge_s (; 29 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ge_s + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $../../examples/i64-polyfill/assembly/i64/ge_u (; 30 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i64.ge_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + (func $../../examples/i64-polyfill/assembly/i64/ge_u (; 30 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ge_u + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) - (func $null (; 31 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 31 ;) (type $v) + nop ) ) diff --git a/tests/compiler/i64-polyfill.untouched.wat b/tests/compiler/i64-polyfill.untouched.wat index 232c1f6c..ed4e956b 100644 --- a/tests/compiler/i64-polyfill.untouched.wat +++ b/tests/compiler/i64-polyfill.untouched.wat @@ -4,7 +4,7 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $../../examples/i64-polyfill/assembly/i64/lo (mut i32) (i32.const 0)) (global $../../examples/i64-polyfill/assembly/i64/hi (mut i32) (i32.const 0)) @@ -45,1092 +45,712 @@ (export "ge_s" (func $../../examples/i64-polyfill/assembly/i64/ge_s)) (export "ge_u" (func $../../examples/i64-polyfill/assembly/i64/ge_u)) (func $../../examples/i64-polyfill/assembly/i64/getHi (; 0 ;) (type $i) (result i32) - (get_global $../../examples/i64-polyfill/assembly/i64/hi) + get_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/getLo (; 1 ;) (type $i) (result i32) - (get_global $../../examples/i64-polyfill/assembly/i64/lo) + get_global $../../examples/i64-polyfill/assembly/i64/lo ) (func $../../examples/i64-polyfill/assembly/i64/clz (; 2 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i64) - (set_local $2 - (i64.clz - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.clz + set_local $2 + get_local $2 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/ctz (; 3 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i64) - (set_local $2 - (i64.ctz - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ctz + set_local $2 + get_local $2 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/popcnt (; 4 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i64) - (set_local $2 - (i64.popcnt - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.popcnt + set_local $2 + get_local $2 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/eqz (; 5 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) - (set_local $2 - (i64.eqz - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $2) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.eqz + set_local $2 + get_local $2 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/add (; 6 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.add - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.add + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/sub (; 7 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.sub - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.sub + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/mul (; 8 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.mul - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.mul + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/div_s (; 9 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.div_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.div_s + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/div_u (; 10 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.div_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.div_u + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/rem_s (; 11 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.rem_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rem_s + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/rem_u (; 12 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.rem_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rem_u + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/and (; 13 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.and - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.and + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/or (; 14 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.or - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.or + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/xor (; 15 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.xor - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.xor + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/shl (; 16 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.shl - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shl + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/shr_s (; 17 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.shr_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shr_s + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/shr_u (; 18 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.shr_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.shr_u + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/rotl (; 19 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.rotl - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rotl + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/rotr (; 20 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i64) - (set_local $4 - (i64.rotr - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (i32.wrap/i64 - (get_local $4) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.rotr + set_local $4 + get_local $4 + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/lo + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/eq (; 21 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (set_local $4 - (i64.eq - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $4) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.eq + set_local $4 + get_local $4 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/ne (; 22 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (set_local $4 - (i64.ne - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $4) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ne + set_local $4 + get_local $4 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/lt_s (; 23 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (set_local $4 - (i64.lt_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $4) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.lt_s + set_local $4 + get_local $4 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/lt_u (; 24 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (set_local $4 - (i64.lt_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $4) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.lt_u + set_local $4 + get_local $4 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/le_s (; 25 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (set_local $4 - (i64.le_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $4) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.le_s + set_local $4 + get_local $4 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/le_u (; 26 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (set_local $4 - (i64.le_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $4) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.le_u + set_local $4 + get_local $4 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/gt_s (; 27 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (set_local $4 - (i64.gt_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $4) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.gt_s + set_local $4 + get_local $4 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/gt_u (; 28 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (set_local $4 - (i64.gt_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $4) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.gt_u + set_local $4 + get_local $4 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/ge_s (; 29 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (set_local $4 - (i64.ge_s - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $4) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ge_s + set_local $4 + get_local $4 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $../../examples/i64-polyfill/assembly/i64/ge_u (; 30 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (set_local $4 - (i64.ge_u - (i64.or - (i64.extend_u/i32 - (get_local $0) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $1) - ) - (i64.const 32) - ) - ) - (i64.or - (i64.extend_u/i32 - (get_local $2) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/lo - (get_local $4) - ) - (set_global $../../examples/i64-polyfill/assembly/i64/hi - (i32.const 0) - ) + get_local $0 + i64.extend_u/i32 + get_local $1 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + get_local $2 + i64.extend_u/i32 + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + i64.ge_u + set_local $4 + get_local $4 + set_global $../../examples/i64-polyfill/assembly/i64/lo + i32.const 0 + set_global $../../examples/i64-polyfill/assembly/i64/hi ) (func $null (; 31 ;) (type $v) ) diff --git a/tests/compiler/if.optimized.wat b/tests/compiler/if.optimized.wat index 2004c7ab..400a1ed4 100644 --- a/tests/compiler/if.optimized.wat +++ b/tests/compiler/if.optimized.wat @@ -2,11 +2,11 @@ (type $ii (func (param i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\05\00\00\00i\00f\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (export "memory" (memory $0)) (export "table" (table $0)) (export "ifThenElse" (func $if/ifThenElse)) @@ -14,133 +14,104 @@ (export "ifThenElseBlock" (func $if/ifThenElse)) (export "ifAlwaysReturns" (func $if/ifAlwaysReturns)) (start $start) - (func $if/ifThenElse (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (if (result i32) - (get_local $0) - (i32.const 1) - (i32.const 0) - ) + (func $if/ifThenElse (; 1 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + if (result i32) + i32.const 1 + else + i32.const 0 + end ) - (func $if/ifThen (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (if - (get_local $0) - (return - (i32.const 1) - ) - ) - (i32.const 0) + (func $if/ifThen (; 2 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + if + i32.const 1 + return + end + i32.const 0 ) - (func $if/ifAlwaysReturns (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (if (result i32) - (get_local $0) - (i32.const 1) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 4) - ) - (unreachable) - ) - ) + (func $if/ifAlwaysReturns (; 3 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + if (result i32) + i32.const 1 + else + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 4 + call $~lib/env/abort + unreachable + end ) - (func $start (; 4 ;) (; has Stack IR ;) (type $v) - (if - (call $if/ifThenElse - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $if/ifThenElse - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $if/ifThen - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $if/ifThen - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $if/ifThenElse - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $if/ifThenElse - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 4 ;) (type $v) + i32.const 0 + call $if/ifThenElse + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $if/ifThenElse + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $if/ifThen + if + i32.const 0 + i32.const 8 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $if/ifThen + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $if/ifThenElse + if + i32.const 0 + i32.const 8 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $if/ifThenElse + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 5 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 5 ;) (type $v) + nop ) ) diff --git a/tests/compiler/if.untouched.wat b/tests/compiler/if.untouched.wat index 18559ab4..ec6deea9 100644 --- a/tests/compiler/if.untouched.wat +++ b/tests/compiler/if.untouched.wat @@ -2,11 +2,11 @@ (type $ii (func (param i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\05\00\00\00i\00f\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $HEAP_BASE i32 (i32.const 24)) (export "memory" (memory $0)) (export "table" (table $0)) @@ -16,171 +16,132 @@ (export "ifAlwaysReturns" (func $if/ifAlwaysReturns)) (start $start) (func $if/ifThenElse (; 1 ;) (type $ii) (param $0 i32) (result i32) - (if - (get_local $0) - (return - (i32.const 1) - ) - (return - (i32.const 0) - ) - ) - (unreachable) + get_local $0 + if + i32.const 1 + return + else + i32.const 0 + return + end + unreachable + unreachable ) (func $if/ifThen (; 2 ;) (type $ii) (param $0 i32) (result i32) - (if - (get_local $0) - (return - (i32.const 1) - ) - ) - (i32.const 0) + get_local $0 + if + i32.const 1 + return + end + i32.const 0 ) (func $if/ifThenElseBlock (; 3 ;) (type $ii) (param $0 i32) (result i32) - (if - (get_local $0) - (return - (i32.const 1) - ) - (return - (i32.const 0) - ) - ) - (unreachable) + get_local $0 + if + i32.const 1 + return + else + i32.const 0 + return + end + unreachable + unreachable ) (func $if/ifAlwaysReturns (; 4 ;) (type $ii) (param $0 i32) (result i32) - (if - (get_local $0) - (return - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 4) - ) - (unreachable) - ) - ) - (unreachable) + get_local $0 + if + i32.const 1 + return + else + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable ) (func $start (; 5 ;) (type $v) - (if - (i32.eqz - (i32.eq - (call $if/ifThenElse - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $if/ifThenElse - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $if/ifThen - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $if/ifThen - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $if/ifThenElseBlock - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $if/ifThenElseBlock - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 0 + call $if/ifThenElse + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $if/ifThenElse + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $if/ifThen + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $if/ifThen + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $if/ifThenElseBlock + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $if/ifThenElseBlock + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 6 ;) (type $v) ) diff --git a/tests/compiler/import.optimized.wat b/tests/compiler/import.optimized.wat index 27327ffa..ce4eb673 100644 --- a/tests/compiler/import.optimized.wat +++ b/tests/compiler/import.optimized.wat @@ -2,42 +2,36 @@ (type $v (func)) (type $FUNCSIG$i (func (result i32))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $export/ns.two) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $export/add (; 0 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const 3) + (func $export/add (; 0 ;) (type $FUNCSIG$i) (result i32) + i32.const 3 ) - (func $export/sub (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const -1) + (func $export/sub (; 1 ;) (type $FUNCSIG$i) (result i32) + i32.const -1 ) - (func $export/ns.two (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $export/ns.two (; 2 ;) (type $v) + nop ) - (func $start (; 3 ;) (; has Stack IR ;) (type $v) + (func $start (; 3 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $export/add) - ) - (set_local $1 - (call $export/sub) - ) - (drop - (call $export/add) - ) - (call $export/ns.two) - (set_local $0 - (call $export/add) - ) - (set_local $1 - (call $export/sub) - ) - (drop - (call $export/add) - ) - (call $export/ns.two) + call $export/add + set_local $0 + call $export/sub + set_local $1 + call $export/add + drop + call $export/ns.two + call $export/add + set_local $0 + call $export/sub + set_local $1 + call $export/add + drop + call $export/ns.two ) ) diff --git a/tests/compiler/import.untouched.wat b/tests/compiler/import.untouched.wat index eeb2b777..e91d9c2b 100644 --- a/tests/compiler/import.untouched.wat +++ b/tests/compiler/import.untouched.wat @@ -2,7 +2,7 @@ (type $iii (func (param i32 i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) @@ -12,65 +12,50 @@ (export "table" (table $0)) (start $start) (func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $export/sub (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.sub ) (func $export/mul (; 2 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.mul - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.mul ) (func $export/ns.two (; 3 ;) (type $v) - (nop) + nop ) (func $start (; 4 ;) (type $v) - (drop - (i32.add - (i32.add - (call $export/add - (get_global $export/a) - (get_global $export/b) - ) - (call $export/sub - (get_global $export/b) - (get_global $export/c) - ) - ) - (call $export/mul - (get_global $export/c) - (get_global $export/a) - ) - ) - ) - (call $export/ns.two) - (drop - (i32.add - (i32.add - (call $export/add - (get_global $export/a) - (get_global $export/b) - ) - (call $export/sub - (get_global $export/b) - (get_global $export/c) - ) - ) - (call $export/mul - (get_global $export/c) - (get_global $export/a) - ) - ) - ) - (call $export/ns.two) + get_global $export/a + get_global $export/b + call $export/add + get_global $export/b + get_global $export/c + call $export/sub + i32.add + get_global $export/c + get_global $export/a + call $export/mul + i32.add + drop + call $export/ns.two + get_global $export/a + get_global $export/b + call $export/add + get_global $export/b + get_global $export/c + call $export/sub + i32.add + get_global $export/c + get_global $export/a + call $export/mul + i32.add + drop + call $export/ns.two ) (func $null (; 5 ;) (type $v) ) diff --git a/tests/compiler/infer-type.optimized.wat b/tests/compiler/infer-type.optimized.wat index b1cba23a..d752382e 100644 --- a/tests/compiler/infer-type.optimized.wat +++ b/tests/compiler/infer-type.optimized.wat @@ -6,7 +6,7 @@ (type $F (func (result f64))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00i\00n\00f\00e\00r\00-\00t\00y\00p\00e\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $infer-type/locals) (global $infer-type/ri (mut i32) (i32.const 0)) (global $infer-type/rI (mut i64) (i64.const 0)) @@ -15,52 +15,46 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $infer-type/locals (; 0 ;) (; has Stack IR ;) (type $v) - (nop) + (func $infer-type/locals (; 0 ;) (type $v) + nop ) - (func $infer-type/reti (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 0) + (func $infer-type/reti (; 1 ;) (type $i) (result i32) + i32.const 0 ) - (func $infer-type/retI (; 2 ;) (; has Stack IR ;) (type $I) (result i64) - (i64.const 0) + (func $infer-type/retI (; 2 ;) (type $I) (result i64) + i64.const 0 ) - (func $infer-type/retf (; 3 ;) (; has Stack IR ;) (type $f) (result f32) - (f32.const 0) + (func $infer-type/retf (; 3 ;) (type $f) (result f32) + f32.const 0 ) - (func $infer-type/refF (; 4 ;) (; has Stack IR ;) (type $F) (result f64) - (f64.const 0) + (func $infer-type/refF (; 4 ;) (type $F) (result f64) + f64.const 0 ) - (func $start (; 5 ;) (; has Stack IR ;) (type $v) + (func $start (; 5 ;) (type $v) (local $0 i32) - (call $infer-type/locals) - (set_global $infer-type/ri - (call $infer-type/reti) - ) - (set_global $infer-type/rI - (call $infer-type/retI) - ) - (set_global $infer-type/rf - (call $infer-type/retf) - ) - (set_global $infer-type/rF - (call $infer-type/refF) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.const 10) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + call $infer-type/locals + call $infer-type/reti + set_global $infer-type/ri + call $infer-type/retI + set_global $infer-type/rI + call $infer-type/retf + set_global $infer-type/rf + call $infer-type/refF + set_global $infer-type/rF + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 10 + i32.ge_s + br_if $break|0 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end ) ) diff --git a/tests/compiler/infer-type.untouched.wat b/tests/compiler/infer-type.untouched.wat index 201724e5..207eddab 100644 --- a/tests/compiler/infer-type.untouched.wat +++ b/tests/compiler/infer-type.untouched.wat @@ -5,11 +5,11 @@ (type $f (func (result f32))) (type $F (func (result f64))) (type $iiiiv (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00i\00n\00f\00e\00r\00-\00t\00y\00p\00e\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $infer-type/i i32 (i32.const 10)) (global $infer-type/I i64 (i64.const 4294967296)) (global $infer-type/F f64 (f64.const 1.5)) @@ -30,132 +30,101 @@ (local $3 i32) (local $4 i64) (local $5 f64) - (set_local $0 - (i32.const 10) - ) - (set_local $1 - (i64.const 4294967296) - ) - (set_local $2 - (f64.const 1.5) - ) - (set_local $3 - (get_global $infer-type/i) - ) - (set_local $4 - (get_global $infer-type/I) - ) - (set_local $5 - (get_global $infer-type/F) - ) + i32.const 10 + set_local $0 + i64.const 4294967296 + set_local $1 + f64.const 1.5 + set_local $2 + get_global $infer-type/i + set_local $3 + get_global $infer-type/I + set_local $4 + get_global $infer-type/F + set_local $5 ) (func $infer-type/reti (; 2 ;) (type $i) (result i32) - (i32.const 0) + i32.const 0 ) (func $infer-type/retI (; 3 ;) (type $I) (result i64) - (i64.const 0) + i64.const 0 ) (func $infer-type/retf (; 4 ;) (type $f) (result f32) - (f32.const 0) + f32.const 0 ) (func $infer-type/refF (; 5 ;) (type $F) (result f64) - (f64.const 0) + f64.const 0 ) (func $start (; 6 ;) (type $v) (local $0 i32) (local $1 i32) - (drop - (get_global $infer-type/i) - ) - (drop - (get_global $infer-type/I) - ) - (drop - (get_global $infer-type/F) - ) - (call $infer-type/locals) - (set_global $infer-type/ri - (call $infer-type/reti) - ) - (drop - (get_global $infer-type/ri) - ) - (set_global $infer-type/rI - (call $infer-type/retI) - ) - (drop - (get_global $infer-type/rI) - ) - (set_global $infer-type/rf - (call $infer-type/retf) - ) - (drop - (get_global $infer-type/rf) - ) - (set_global $infer-type/rF - (call $infer-type/refF) - ) - (drop - (get_global $infer-type/rF) - ) - (block $break|0 - (block - (set_local $0 - (i32.const 0) - ) - (set_local $1 - (i32.const 10) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $0) - (get_local $1) - ) - ) - ) - (nop) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 49) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 52) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $infer-type/i + drop + get_global $infer-type/I + drop + get_global $infer-type/F + drop + call $infer-type/locals + call $infer-type/reti + set_global $infer-type/ri + get_global $infer-type/ri + drop + call $infer-type/retI + set_global $infer-type/rI + get_global $infer-type/rI + drop + call $infer-type/retf + set_global $infer-type/rf + get_global $infer-type/rf + drop + call $infer-type/refF + set_global $infer-type/rF + get_global $infer-type/rF + drop + block $break|0 + block + i32.const 0 + set_local $0 + i32.const 10 + set_local $1 + end + loop $repeat|0 + get_local $0 + get_local $1 + i32.lt_s + i32.eqz + br_if $break|0 + nop + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 49 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 52 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 7 ;) (type $v) ) diff --git a/tests/compiler/inlining-recursive.optimized.wat b/tests/compiler/inlining-recursive.optimized.wat index 07323dd0..4a3905e4 100644 --- a/tests/compiler/inlining-recursive.optimized.wat +++ b/tests/compiler/inlining-recursive.optimized.wat @@ -1,23 +1,23 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "foo" (func $inlining-recursive/foo)) (export "bar" (func $inlining-recursive/bar)) (export "baz" (func $inlining-recursive/baz)) - (func $inlining-recursive/foo (; 0 ;) (; has Stack IR ;) (type $v) - (call $inlining-recursive/foo) + (func $inlining-recursive/foo (; 0 ;) (type $v) + call $inlining-recursive/foo ) - (func $inlining-recursive/baz (; 1 ;) (; has Stack IR ;) (type $v) - (call $inlining-recursive/bar) + (func $inlining-recursive/baz (; 1 ;) (type $v) + call $inlining-recursive/bar ) - (func $inlining-recursive/bar (; 2 ;) (; has Stack IR ;) (type $v) - (call $inlining-recursive/baz) + (func $inlining-recursive/bar (; 2 ;) (type $v) + call $inlining-recursive/baz ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/inlining-recursive.untouched.wat b/tests/compiler/inlining-recursive.untouched.wat index d844dec3..074ea84a 100644 --- a/tests/compiler/inlining-recursive.untouched.wat +++ b/tests/compiler/inlining-recursive.untouched.wat @@ -1,7 +1,7 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) @@ -10,19 +10,15 @@ (export "bar" (func $inlining-recursive/bar)) (export "baz" (func $inlining-recursive/baz)) (func $inlining-recursive/foo (; 0 ;) (type $v) - (block $inlining-recursive/foo|inlined.0 - (call $inlining-recursive/foo) - ) + call $inlining-recursive/foo ) (func $inlining-recursive/baz (; 1 ;) (type $v) - (call $inlining-recursive/bar) + call $inlining-recursive/bar ) (func $inlining-recursive/bar (; 2 ;) (type $v) - (block $inlining-recursive/baz|inlined.0 - (block $inlining-recursive/bar|inlined.0 - (call $inlining-recursive/baz) - ) - ) + block $inlining-recursive/bar|inlined.0 + call $inlining-recursive/baz + end ) (func $null (; 3 ;) (type $v) ) diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index a8ce57a6..0a02ffef 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -3,64 +3,54 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (type $ii (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0b\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s") - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $inlining/test_funcs~anonymous|1) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~argc (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (export "test" (func $inlining/test)) (start $start) - (func $inlining/test (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 3) + (func $inlining/test (; 1 ;) (type $i) (result i32) + i32.const 3 ) - (func $inlining/test_funcs~anonymous|1 (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (get_local $0) + (func $inlining/test_funcs~anonymous|1 (; 2 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 ) - (func $inlining/test_funcs (; 3 ;) (; has Stack IR ;) (type $v) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.ne - (call_indirect (type $ii) - (i32.const 2) - (i32.const 1) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 68) - (i32.const 2) - ) - (unreachable) - ) - ) + (func $inlining/test_funcs (; 3 ;) (type $v) + i32.const 1 + set_global $~argc + i32.const 2 + i32.const 1 + call_indirect (type $ii) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 68 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $start (; 4 ;) (; has Stack IR ;) (type $v) - (if - (i32.ne - (call $inlining/test) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $inlining/test_funcs) + (func $start (; 4 ;) (type $v) + call $inlining/test + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $inlining/test_funcs ) - (func $null (; 5 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 5 ;) (type $v) + nop ) ) diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat index 45771c68..67133fb4 100644 --- a/tests/compiler/inlining.untouched.wat +++ b/tests/compiler/inlining.untouched.wat @@ -3,11 +3,11 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (type $ii (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0b\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s\00") - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $inlining/test_funcs~anonymous|1) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $inlining/constantGlobal i32 (i32.const 1)) (global $~argc (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 36)) @@ -16,13 +16,12 @@ (export "test" (func $inlining/test)) (start $start) (func $inlining/test (; 1 ;) (type $i) (result i32) - (i32.add - (get_global $inlining/constantGlobal) - (i32.const 2) - ) + get_global $inlining/constantGlobal + i32.const 2 + i32.add ) (func $inlining/test_funcs~anonymous|1 (; 2 ;) (type $ii) (param $0 i32) (result i32) - (get_local $0) + get_local $0 ) (func $inlining/test_funcs (; 3 ;) (type $v) (local $0 f32) @@ -33,356 +32,267 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $0 - (f32.const -1) - ) - (set_local $1 - (f64.const -2) - ) - (if - (i32.eqz - (i32.eq - (block $inlining/func_ii|inlined.0 (result i32) - (set_local $2 - (i32.const 42) - ) - (if - (i32.eq - (get_local $2) - (i32.const 42) - ) - (br $inlining/func_ii|inlined.0 - (i32.const 1) - ) - ) - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 42) - ) - (i32.const 2) - (i32.const 3) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 60) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $inlining/func_ii|inlined.1 (result i32) - (set_local $2 - (i32.const 41) - ) - (if - (i32.eq - (get_local $2) - (i32.const 42) - ) - (br $inlining/func_ii|inlined.1 - (i32.const 1) - ) - ) - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 42) - ) - (i32.const 2) - (i32.const 3) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 61) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $inlining/func_ii|inlined.2 (result i32) - (set_local $2 - (i32.const 43) - ) - (if - (i32.eq - (get_local $2) - (i32.const 42) - ) - (br $inlining/func_ii|inlined.2 - (i32.const 1) - ) - ) - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 42) - ) - (i32.const 2) - (i32.const 3) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 62) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $inlining/func_ii_opt|inlined.0 (result i32) - (set_local $2 - (i32.const 0) - ) - (get_local $2) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 63) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $inlining/func_ii_opt|inlined.1 (result i32) - (set_local $2 - (i32.const 1) - ) - (get_local $2) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 64) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $inlining/func_ii_loc|inlined.0 (result i32) - (set_local $2 - (i32.const 2) - ) - (set_local $3 - (get_local $2) - ) - (block - (set_local $5 - (get_local $3) - ) - (set_local $6 - (get_local $5) - ) - (set_local $4 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - ) - (get_local $4) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 65) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $inlining/func_ii_loc|inlined.1 (result i32) - (set_local $4 - (i32.const 3) - ) - (set_local $3 - (get_local $4) - ) - (block - (set_local $6 - (get_local $3) - ) - (set_local $5 - (get_local $6) - ) - (set_local $2 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - ) - (get_local $2) - ) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 66) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $inlining/func_iv|inlined.0 - (set_local $2 - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call_indirect (type $ii) - (i32.const 2) - (block $inlining/func_fe|inlined.0 (result i32) - (i32.const 1) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 68) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $inlining/Foo.method_static|inlined.0 (result i32) - (set_local $2 - (i32.const 42) - ) - (set_local $3 - (i32.const 2) - ) - (i32.add - (get_local $2) - (get_local $3) - ) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 69) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $7 - (i32.const 123) - ) - (if - (i32.eqz - (i32.eq - (block $inlining/Foo#method_this|inlined.0 (result i32) - (set_local $3 - (i32.const 43) - ) - (set_local $2 - (i32.const 3) - ) - (get_local $7) - ) - (i32.const 123) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 71) - (i32.const 2) - ) - (unreachable) - ) - ) + f32.const -1 + set_local $0 + f64.const -2 + set_local $1 + block $inlining/func_ii|inlined.0 (result i32) + i32.const 42 + set_local $2 + get_local $2 + i32.const 42 + i32.eq + if + i32.const 1 + br $inlining/func_ii|inlined.0 + end + get_local $2 + i32.const 42 + i32.lt_s + if (result i32) + i32.const 2 + else + i32.const 3 + end + end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 60 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $inlining/func_ii|inlined.1 (result i32) + i32.const 41 + set_local $2 + get_local $2 + i32.const 42 + i32.eq + if + i32.const 1 + br $inlining/func_ii|inlined.1 + end + get_local $2 + i32.const 42 + i32.lt_s + if (result i32) + i32.const 2 + else + i32.const 3 + end + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 61 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $inlining/func_ii|inlined.2 (result i32) + i32.const 43 + set_local $2 + get_local $2 + i32.const 42 + i32.eq + if + i32.const 1 + br $inlining/func_ii|inlined.2 + end + get_local $2 + i32.const 42 + i32.lt_s + if (result i32) + i32.const 2 + else + i32.const 3 + end + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 62 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $inlining/func_ii_opt|inlined.0 (result i32) + i32.const 0 + set_local $2 + get_local $2 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 63 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $inlining/func_ii_opt|inlined.1 (result i32) + i32.const 1 + set_local $2 + get_local $2 + end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 64 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $inlining/func_ii_loc|inlined.0 (result i32) + i32.const 2 + set_local $2 + get_local $2 + set_local $3 + block + get_local $3 + set_local $5 + get_local $5 + set_local $6 + get_local $6 + i32.const 1 + i32.add + set_local $4 + end + get_local $4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 65 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $inlining/func_ii_loc|inlined.1 (result i32) + i32.const 3 + set_local $4 + get_local $4 + set_local $3 + block + get_local $3 + set_local $6 + get_local $6 + set_local $5 + get_local $5 + i32.const 1 + i32.add + set_local $2 + end + get_local $2 + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 66 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $inlining/func_iv|inlined.0 + i32.const 0 + set_local $2 + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 2 + block $inlining/func_fe|inlined.0 (result i32) + i32.const 1 + end + call_indirect (type $ii) + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 68 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $inlining/Foo.method_static|inlined.0 (result i32) + i32.const 42 + set_local $2 + i32.const 2 + set_local $3 + get_local $2 + get_local $3 + i32.add + end + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 69 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 123 + set_local $7 + block $inlining/Foo#method_this|inlined.0 (result i32) + i32.const 43 + set_local $3 + i32.const 3 + set_local $2 + get_local $7 + end + i32.const 123 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 71 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $start (; 4 ;) (type $v) - (if - (i32.eqz - (i32.eq - (call $inlining/test) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $inlining/test_funcs) + call $inlining/test + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $inlining/test_funcs ) (func $null (; 5 ;) (type $v) ) diff --git a/tests/compiler/instanceof.optimized.wat b/tests/compiler/instanceof.optimized.wat index dac7ab60..7b2beb24 100644 --- a/tests/compiler/instanceof.optimized.wat +++ b/tests/compiler/instanceof.optimized.wat @@ -2,91 +2,73 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (type $FUNCSIG$i (func (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $instanceof/an (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $instanceof/isI32 (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const 1) + (func $instanceof/isI32 (; 1 ;) (type $FUNCSIG$i) (result i32) + i32.const 1 ) - (func $instanceof/isI32 (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const 0) + (func $instanceof/isI32 (; 2 ;) (type $FUNCSIG$i) (result i32) + i32.const 0 ) - (func $start (; 3 ;) (; has Stack IR ;) (type $v) - (if - (i32.eqz - (call $instanceof/isI32) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 38) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $instanceof/isI32) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $instanceof/isI32) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (get_global $instanceof/an) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 43) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $instanceof/an - (i32.const 1) - ) - (if - (i32.eqz - (get_global $instanceof/an) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 46) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 3 ;) (type $v) + call $instanceof/isI32 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 38 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $instanceof/isI32 + if + i32.const 0 + i32.const 8 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $instanceof/isI32 + if + i32.const 0 + i32.const 8 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $instanceof/an + if + i32.const 0 + i32.const 8 + i32.const 43 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $instanceof/an + get_global $instanceof/an + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 46 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 4 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 4 ;) (type $v) + nop ) ) diff --git a/tests/compiler/instanceof.untouched.wat b/tests/compiler/instanceof.untouched.wat index 26bb1709..c8a88b5b 100644 --- a/tests/compiler/instanceof.untouched.wat +++ b/tests/compiler/instanceof.untouched.wat @@ -3,11 +3,11 @@ (type $ii (func (param i32) (result i32))) (type $Fi (func (param f64) (result i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $instanceof/a (mut i32) (i32.const 0)) (global $instanceof/b (mut i32) (i32.const 0)) (global $instanceof/i (mut i32) (i32.const 0)) @@ -18,386 +18,271 @@ (export "table" (table $0)) (start $start) (func $instanceof/isI32 (; 1 ;) (type $ii) (param $0 i32) (result i32) - (return - (i32.const 1) - ) + i32.const 1 + return ) (func $instanceof/isI32 (; 2 ;) (type $Fi) (param $0 f64) (result i32) - (return - (i32.const 0) - ) + i32.const 0 + return ) (func $instanceof/isI32 (; 3 ;) (type $ii) (param $0 i32) (result i32) - (return - (i32.const 0) - ) + i32.const 0 + return ) (func $start (; 4 ;) (type $v) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 14) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $instanceof/isI32 - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 38) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $instanceof/isI32 - (f64.const 0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $instanceof/isI32 - (i32.const 0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (i32.ne - (get_global $instanceof/an) - (i32.const 0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 43) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 44) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $instanceof/an - (i32.const 1) - ) - (if - (i32.eqz - (i32.ne - (get_global $instanceof/an) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 46) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 47) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 14 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $instanceof/isI32 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 38 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + call $instanceof/isI32 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $instanceof/isI32 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $instanceof/an + i32.const 0 + i32.ne + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 43 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 44 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $instanceof/an + get_global $instanceof/an + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 46 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 47 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 5 ;) (type $v) ) diff --git a/tests/compiler/limits.optimized.wat b/tests/compiler/limits.optimized.wat index d475aaf8..be03ea1a 100644 --- a/tests/compiler/limits.optimized.wat +++ b/tests/compiler/limits.optimized.wat @@ -1,11 +1,11 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $start) (export "memory" (memory $0)) (export "table" (table $0)) - (func $start (; 0 ;) (; has Stack IR ;) (type $v) - (nop) + (func $start (; 0 ;) (type $v) + nop ) ) diff --git a/tests/compiler/limits.untouched.wat b/tests/compiler/limits.untouched.wat index fb30d25c..861970dc 100644 --- a/tests/compiler/limits.untouched.wat +++ b/tests/compiler/limits.untouched.wat @@ -1,7 +1,7 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128)) (global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127)) @@ -34,84 +34,58 @@ (export "table" (table $0)) (start $start) (func $start (; 0 ;) (type $v) - (drop - (get_global $~lib/builtins/i8.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/i8.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/i16.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/i16.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/i32.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/i32.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/i64.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/i64.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/isize.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/isize.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/u8.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/u8.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/u16.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/u16.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/u32.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/u32.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/u64.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/u64.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/usize.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/usize.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/bool.MIN_VALUE) - ) - (drop - (get_global $~lib/builtins/bool.MAX_VALUE) - ) - (drop - (get_global $~lib/builtins/f32.MIN_SAFE_INTEGER) - ) - (drop - (get_global $~lib/builtins/f32.MAX_SAFE_INTEGER) - ) - (drop - (get_global $~lib/builtins/f64.MIN_SAFE_INTEGER) - ) - (drop - (get_global $~lib/builtins/f64.MAX_SAFE_INTEGER) - ) + get_global $~lib/builtins/i8.MIN_VALUE + drop + get_global $~lib/builtins/i8.MAX_VALUE + drop + get_global $~lib/builtins/i16.MIN_VALUE + drop + get_global $~lib/builtins/i16.MAX_VALUE + drop + get_global $~lib/builtins/i32.MIN_VALUE + drop + get_global $~lib/builtins/i32.MAX_VALUE + drop + get_global $~lib/builtins/i64.MIN_VALUE + drop + get_global $~lib/builtins/i64.MAX_VALUE + drop + get_global $~lib/builtins/isize.MIN_VALUE + drop + get_global $~lib/builtins/isize.MAX_VALUE + drop + get_global $~lib/builtins/u8.MIN_VALUE + drop + get_global $~lib/builtins/u8.MAX_VALUE + drop + get_global $~lib/builtins/u16.MIN_VALUE + drop + get_global $~lib/builtins/u16.MAX_VALUE + drop + get_global $~lib/builtins/u32.MIN_VALUE + drop + get_global $~lib/builtins/u32.MAX_VALUE + drop + get_global $~lib/builtins/u64.MIN_VALUE + drop + get_global $~lib/builtins/u64.MAX_VALUE + drop + get_global $~lib/builtins/usize.MIN_VALUE + drop + get_global $~lib/builtins/usize.MAX_VALUE + drop + get_global $~lib/builtins/bool.MIN_VALUE + drop + get_global $~lib/builtins/bool.MAX_VALUE + drop + get_global $~lib/builtins/f32.MIN_SAFE_INTEGER + drop + get_global $~lib/builtins/f32.MAX_SAFE_INTEGER + drop + get_global $~lib/builtins/f64.MIN_SAFE_INTEGER + drop + get_global $~lib/builtins/f64.MAX_SAFE_INTEGER + drop ) (func $null (; 1 ;) (type $v) ) diff --git a/tests/compiler/literals.optimized.wat b/tests/compiler/literals.optimized.wat index d475aaf8..be03ea1a 100644 --- a/tests/compiler/literals.optimized.wat +++ b/tests/compiler/literals.optimized.wat @@ -1,11 +1,11 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $start) (export "memory" (memory $0)) (export "table" (table $0)) - (func $start (; 0 ;) (; has Stack IR ;) (type $v) - (nop) + (func $start (; 0 ;) (type $v) + nop ) ) diff --git a/tests/compiler/literals.untouched.wat b/tests/compiler/literals.untouched.wat index 4c96434d..a4c7e43f 100644 --- a/tests/compiler/literals.untouched.wat +++ b/tests/compiler/literals.untouched.wat @@ -1,145 +1,101 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $start (; 0 ;) (type $v) - (drop - (i32.const 0) - ) - (drop - (i32.const 1) - ) - (drop - (i32.const 2) - ) - (drop - (i32.const 3) - ) - (drop - (i32.const 4) - ) - (drop - (i32.const 5) - ) - (drop - (i32.const 6) - ) - (drop - (i32.const 7) - ) - (drop - (i32.const 8) - ) - (drop - (i32.const 9) - ) - (drop - (i32.const 0) - ) - (drop - (i32.const 1) - ) - (drop - (i32.const 2) - ) - (drop - (i32.const 3) - ) - (drop - (i32.const 4) - ) - (drop - (i32.const 5) - ) - (drop - (i32.const 6) - ) - (drop - (i32.const 7) - ) - (drop - (i32.const 8) - ) - (drop - (i32.const 9) - ) - (drop - (i32.const 10) - ) - (drop - (i32.const 11) - ) - (drop - (i32.const 12) - ) - (drop - (i32.const 13) - ) - (drop - (i32.const 14) - ) - (drop - (i32.const 15) - ) - (drop - (i32.const 10) - ) - (drop - (i32.const 11) - ) - (drop - (i32.const 12) - ) - (drop - (i32.const 13) - ) - (drop - (i32.const 14) - ) - (drop - (i32.const 15) - ) - (drop - (i32.const 0) - ) - (drop - (i32.const 1) - ) - (drop - (i32.const 2) - ) - (drop - (i32.const 3) - ) - (drop - (i32.const 4) - ) - (drop - (i32.const 5) - ) - (drop - (i32.const 6) - ) - (drop - (i32.const 7) - ) - (drop - (i32.const 0) - ) - (drop - (i32.const 1) - ) - (drop - (i32.const 1) - ) - (drop - (i32.const 0) - ) + i32.const 0 + drop + i32.const 1 + drop + i32.const 2 + drop + i32.const 3 + drop + i32.const 4 + drop + i32.const 5 + drop + i32.const 6 + drop + i32.const 7 + drop + i32.const 8 + drop + i32.const 9 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 2 + drop + i32.const 3 + drop + i32.const 4 + drop + i32.const 5 + drop + i32.const 6 + drop + i32.const 7 + drop + i32.const 8 + drop + i32.const 9 + drop + i32.const 10 + drop + i32.const 11 + drop + i32.const 12 + drop + i32.const 13 + drop + i32.const 14 + drop + i32.const 15 + drop + i32.const 10 + drop + i32.const 11 + drop + i32.const 12 + drop + i32.const 13 + drop + i32.const 14 + drop + i32.const 15 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 2 + drop + i32.const 3 + drop + i32.const 4 + drop + i32.const 5 + drop + i32.const 6 + drop + i32.const 7 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + drop ) (func $null (; 1 ;) (type $v) ) diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index ca1f6e6f..471d6bcf 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -1,11 +1,11 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\n\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $logical/i (mut i32) (i32.const 0)) (global $logical/I (mut i64) (i64.const 0)) (global $logical/f (mut f32) (f32.const 0)) @@ -13,153 +13,113 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 1 ;) (; has Stack IR ;) (type $v) - (set_global $logical/i - (i32.const 2) - ) - (if - (i32.ne - (get_global $logical/i) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/i - (i32.const 1) - ) - (if - (i32.ne - (get_global $logical/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/I - (i64.const 2) - ) - (if - (i64.ne - (get_global $logical/I) - (i64.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/I - (i64.const 1) - ) - (if - (i64.ne - (get_global $logical/I) - (i64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/f - (f32.const 2) - ) - (if - (f32.ne - (get_global $logical/f) - (f32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/f - (f32.const 1) - ) - (if - (f32.ne - (get_global $logical/f) - (f32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/F - (f64.const 2) - ) - (if - (f64.ne - (get_global $logical/F) - (f64.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 36) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/F - (f64.const 1) - ) - (if - (f64.ne - (get_global $logical/F) - (f64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 1 ;) (type $v) + i32.const 2 + set_global $logical/i + get_global $logical/i + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $logical/i + get_global $logical/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 2 + set_global $logical/I + get_global $logical/I + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1 + set_global $logical/I + get_global $logical/I + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + set_global $logical/f + get_global $logical/f + f32.const 2 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + set_global $logical/f + get_global $logical/f + f32.const 1 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + set_global $logical/F + get_global $logical/F + f64.const 2 + f64.ne + if + i32.const 0 + i32.const 8 + i32.const 36 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + set_global $logical/F + get_global $logical/F + f64.const 1 + f64.ne + if + i32.const 0 + i32.const 8 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/logical.untouched.wat b/tests/compiler/logical.untouched.wat index 22afa962..d6c4ab61 100644 --- a/tests/compiler/logical.untouched.wat +++ b/tests/compiler/logical.untouched.wat @@ -1,11 +1,11 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\n\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $logical/i (mut i32) (i32.const 0)) (global $logical/I (mut i64) (i64.const 0)) (global $logical/f (mut f32) (f32.const 0)) @@ -17,282 +17,232 @@ (func $start (; 1 ;) (type $v) (local $0 i32) (local $1 f64) - (drop - (if (result i32) - (i32.const 0) - (unreachable) - (i32.const 0) - ) - ) - (drop - (if (result f64) - (f64.ne - (f64.const 0) - (f64.const 0) - ) - (unreachable) - (f64.const 0) - ) - ) - (drop - (if (result i32) - (i32.const 1) - (i32.const 1) - (unreachable) - ) - ) - (drop - (if (result f64) - (f64.ne - (f64.const 1) - (f64.const 0) - ) - (f64.const 1) - (unreachable) - ) - ) - (drop - (if (result i32) - (tee_local $0 - (if (result i32) - (i32.const 1) - (i32.const 2) - (i32.const 1) - ) - ) - (get_local $0) - (unreachable) - ) - ) - (drop - (if (result f64) - (f64.ne - (tee_local $1 - (if (result f64) - (f64.ne - (f64.const 1) - (f64.const 0) - ) - (f64.const 2) - (f64.const 1) - ) - ) - (f64.const 0) - ) - (get_local $1) - (unreachable) - ) - ) - (set_global $logical/i - (if (result i32) - (i32.const 1) - (i32.const 2) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $logical/i) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/i - (if (result i32) - (i32.const 0) - (i32.const 0) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $logical/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/I - (if (result i64) - (i64.ne - (i64.const 1) - (i64.const 0) - ) - (i64.const 2) - (i64.const 1) - ) - ) - (if - (i32.eqz - (i64.eq - (get_global $logical/I) - (i64.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/I - (if (result i64) - (i64.ne - (i64.const 0) - (i64.const 0) - ) - (i64.const 0) - (i64.const 1) - ) - ) - (if - (i32.eqz - (i64.eq - (get_global $logical/I) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/f - (if (result f32) - (f32.ne - (f32.const 1) - (f32.const 0) - ) - (f32.const 2) - (f32.const 1) - ) - ) - (if - (i32.eqz - (f32.eq - (get_global $logical/f) - (f32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/f - (if (result f32) - (f32.ne - (f32.const 0) - (f32.const 0) - ) - (f32.const 0) - (f32.const 1) - ) - ) - (if - (i32.eqz - (f32.eq - (get_global $logical/f) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/F - (if (result f64) - (f64.ne - (f64.const 1) - (f64.const 0) - ) - (f64.const 2) - (f64.const 1) - ) - ) - (if - (i32.eqz - (f64.eq - (get_global $logical/F) - (f64.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 36) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $logical/F - (if (result f64) - (f64.ne - (f64.const 0) - (f64.const 0) - ) - (f64.const 0) - (f64.const 1) - ) - ) - (if - (i32.eqz - (f64.eq - (get_global $logical/F) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 0 + if (result i32) + unreachable + else + i32.const 0 + end + drop + f64.const 0 + f64.const 0 + f64.ne + if (result f64) + unreachable + else + f64.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 1 + else + unreachable + end + drop + f64.const 1 + f64.const 0 + f64.ne + if (result f64) + f64.const 1 + else + unreachable + end + drop + i32.const 1 + if (result i32) + i32.const 2 + else + i32.const 1 + end + tee_local $0 + if (result i32) + get_local $0 + else + unreachable + end + drop + f64.const 1 + f64.const 0 + f64.ne + if (result f64) + f64.const 2 + else + f64.const 1 + end + tee_local $1 + f64.const 0 + f64.ne + if (result f64) + get_local $1 + else + unreachable + end + drop + i32.const 1 + if (result i32) + i32.const 2 + else + i32.const 1 + end + set_global $logical/i + get_global $logical/i + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 1 + end + set_global $logical/i + get_global $logical/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1 + i64.const 0 + i64.ne + if (result i64) + i64.const 2 + else + i64.const 1 + end + set_global $logical/I + get_global $logical/I + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + i64.const 0 + i64.ne + if (result i64) + i64.const 0 + else + i64.const 1 + end + set_global $logical/I + get_global $logical/I + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.ne + if (result f32) + f32.const 2 + else + f32.const 1 + end + set_global $logical/f + get_global $logical/f + f32.const 2 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.ne + if (result f32) + f32.const 0 + else + f32.const 1 + end + set_global $logical/f + get_global $logical/f + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.ne + if (result f64) + f64.const 2 + else + f64.const 1 + end + set_global $logical/F + get_global $logical/F + f64.const 2 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 36 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.ne + if (result f64) + f64.const 0 + else + f64.const 1 + end + set_global $logical/F + get_global $logical/F + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/main.optimized.wat b/tests/compiler/main.optimized.wat index d98f5305..9975a99e 100644 --- a/tests/compiler/main.optimized.wat +++ b/tests/compiler/main.optimized.wat @@ -2,33 +2,28 @@ (type $iii (func (param i32 i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $main/code (mut i32) (i32.const 0)) (global $~started (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (export "main" (func $main/main)) - (func $main/main (; 0 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (if - (i32.eqz - (get_global $~started) - ) - (block - (call $start) - (set_global $~started - (i32.const 1) - ) - ) - ) - (get_global $main/code) + (func $main/main (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_global $~started + i32.eqz + if + call $start + i32.const 1 + set_global $~started + end + get_global $main/code ) - (func $start (; 1 ;) (; has Stack IR ;) (type $v) - (set_global $main/code - (i32.const 1) - ) + (func $start (; 1 ;) (type $v) + i32.const 1 + set_global $main/code ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/main.untouched.wat b/tests/compiler/main.untouched.wat index e8d78b22..d97b144a 100644 --- a/tests/compiler/main.untouched.wat +++ b/tests/compiler/main.untouched.wat @@ -2,7 +2,7 @@ (type $iii (func (param i32 i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $main/code (mut i32) (i32.const 0)) (global $~started (mut i32) (i32.const 0)) @@ -11,23 +11,18 @@ (export "table" (table $0)) (export "main" (func $main/main)) (func $main/main (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (if - (i32.eqz - (get_global $~started) - ) - (block - (call $start) - (set_global $~started - (i32.const 1) - ) - ) - ) - (get_global $main/code) + get_global $~started + i32.eqz + if + call $start + i32.const 1 + set_global $~started + end + get_global $main/code ) (func $start (; 1 ;) (type $v) - (set_global $main/code - (i32.const 1) - ) + i32.const 1 + set_global $main/code ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/mandelbrot.optimized.wat b/tests/compiler/mandelbrot.optimized.wat index d5ada3f7..aeaeef49 100644 --- a/tests/compiler/mandelbrot.optimized.wat +++ b/tests/compiler/mandelbrot.optimized.wat @@ -5,12 +5,12 @@ (type $v (func)) (type $FUNCSIG$dd (func (param f64) (result f64))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "computeLine" (func $../../examples/mandelbrot/assembly/index/computeLine)) - (func $~lib/math/NativeMath.log (; 0 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 0 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -18,279 +18,191 @@ (local $5 f64) (local $6 f64) (local $7 f64) - (if - (i32.eqz - (tee_local $2 - (i32.lt_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (i32.const 1048576) - ) - ) - ) - (set_local $2 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - ) - (if - (get_local $2) - (block - (if - (i64.eq - (i64.shl - (get_local $4) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $3 - (i32.const -54) - ) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (block - (if - (tee_local $2 - (i32.eq - (get_local $1) - (i32.const 1072693248) - ) - ) - (set_local $2 - (i64.eq - (i64.shl - (get_local $4) - (i64.const 32) - ) - (i64.const 0) - ) - ) - ) - (if - (get_local $2) - (return - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 614242) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $0 - (f64.mul - (tee_local $7 - (f64.mul - (tee_local $6 - (f64.div - (tee_local $5 - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.shl - (i64.extend_u/i32 - (i32.add - (i32.and - (get_local $1) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (i64.const 32) - ) - (i64.and - (get_local $4) - (i64.const 4294967295) - ) - ) - ) - (f64.const 1) - ) - ) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (get_local $6) - ) - ) - (get_local $7) - ) - ) - (f64.add - (f64.add - (f64.sub - (f64.add - (f64.mul - (get_local $6) - (f64.add - (tee_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (f64.add - (f64.mul - (get_local $7) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $0) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $0) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (tee_local $0 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (f64.const 1.9082149292705877e-10) - ) - ) - (get_local $6) - ) - (get_local $5) - ) - (f64.mul - (get_local $0) - (f64.const 0.6931471803691238) - ) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 1048576 + i32.lt_u + tee_local $2 + i32.eqz + if + get_local $1 + i32.const 31 + i32.shr_u + set_local $2 + end + get_local $2 + if + get_local $4 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + i32.const -54 + set_local $3 + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + tee_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + else + get_local $1 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1072693248 + i32.eq + tee_local $2 + if + get_local $4 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + set_local $2 + end + get_local $2 + if + f64.const 0 + return + end + end + end + get_local $3 + get_local $1 + i32.const 614242 + i32.add + tee_local $1 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $3 + get_local $1 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $4 + i64.const 4294967295 + i64.and + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub + tee_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + tee_local $6 + get_local $6 + f64.mul + tee_local $7 + get_local $7 + f64.mul + set_local $0 + get_local $6 + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + tee_local $6 + get_local $7 + f64.const 0.6666666666666735 + get_local $0 + f64.const 0.2857142874366239 + get_local $0 + f64.const 0.1818357216161805 + get_local $0 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $0 + f64.const 0.3999999999940942 + get_local $0 + f64.const 0.22222198432149784 + get_local $0 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + f64.mul + get_local $3 + f64.convert_s/i32 + tee_local $0 + f64.const 1.9082149292705877e-10 + f64.mul + f64.add + get_local $6 + f64.sub + get_local $5 + f64.add + get_local $0 + f64.const 0.6931471803691238 + f64.mul + f64.add ) - (func $~lib/builtins/isFinite (; 1 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (f64.eq - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) + (func $~lib/builtins/isFinite (; 1 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.eq ) - (func $../../examples/mandelbrot/assembly/index/clamp (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) - (f64.min - (f64.max - (get_local $0) - (f64.const 0) - ) - (f64.const 1) - ) + (func $../../examples/mandelbrot/assembly/index/clamp (; 2 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + get_local $0 + f64.const 0 + f64.max + f64.const 1 + f64.min ) - (func $../../examples/mandelbrot/assembly/index/computeLine (; 3 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $../../examples/mandelbrot/assembly/index/computeLine (; 3 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 f64) (local $5 f64) (local $6 f64) @@ -300,269 +212,186 @@ (local $10 f64) (local $11 f64) (local $12 f64) - (set_local $11 - (f64.div - (tee_local $6 - (f64.convert_u/i32 - (get_local $1) - ) - ) - (f64.const 1.6) - ) - ) - (set_local $9 - (f64.mul - (f64.sub - (f64.convert_u/i32 - (get_local $0) - ) - (tee_local $8 - (f64.div - (tee_local $4 - (f64.convert_u/i32 - (get_local $2) - ) - ) - (f64.const 2) - ) - ) - ) - (tee_local $12 - (f64.div - (f64.const 10) - (f64.min - (f64.mul - (f64.const 3) - (get_local $6) - ) - (f64.mul - (f64.const 4) - (get_local $4) - ) - ) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $7) - (get_local $1) - ) - ) - (set_local $10 - (f64.mul - (f64.sub - (f64.convert_u/i32 - (get_local $7) - ) - (get_local $11) - ) - (get_local $12) - ) - ) - (set_local $4 - (f64.const 0) - ) - (set_local $5 - (f64.const 0) - ) - (set_local $2 - (i32.const 0) - ) - (block $break|1 - (loop $continue|1 - (if - (f64.le - (f64.add - (tee_local $6 - (f64.mul - (get_local $4) - (get_local $4) - ) - ) - (tee_local $8 - (f64.mul - (get_local $5) - (get_local $5) - ) - ) - ) - (f64.const 4) - ) - (block - (set_local $5 - (f64.add - (f64.mul - (f64.mul - (f64.const 2) - (get_local $4) - ) - (get_local $5) - ) - (get_local $9) - ) - ) - (set_local $4 - (f64.add - (f64.sub - (get_local $6) - (get_local $8) - ) - (get_local $10) - ) - ) - (br_if $break|1 - (i32.ge_u - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (block $break|2 - (set_local $6 - (f64.min - (f64.const 8) - (f64.convert_u/i32 - (get_local $3) - ) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (f64.lt - (f64.convert_u/i32 - (get_local $2) - ) - (get_local $6) - ) - ) - ) - (set_local $8 - (f64.add - (f64.sub - (f64.mul - (get_local $4) - (get_local $4) - ) - (f64.mul - (get_local $5) - (get_local $5) - ) - ) - (get_local $10) - ) - ) - (set_local $5 - (f64.add - (f64.mul - (f64.mul - (f64.const 2) - (get_local $4) - ) - (get_local $5) - ) - (get_local $9) - ) - ) - (set_local $4 - (get_local $8) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (set_local $2 - (if (result i32) - (call $~lib/builtins/isFinite - (tee_local $6 - (f64.div - (call $~lib/math/NativeMath.log - (call $~lib/math/NativeMath.log - (f64.sqrt - (f64.add - (f64.mul - (get_local $4) - (get_local $4) - ) - (f64.mul - (get_local $5) - (get_local $5) - ) - ) - ) - ) - ) - (f64.const 0.6931471805599453) - ) - ) - ) - (i32.trunc_u/f64 - (f64.mul - (f64.const 2047) - (call $../../examples/mandelbrot/assembly/index/clamp - (f64.div - (f64.sub - (f64.convert_u/i32 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (get_local $6) - ) - (f64.convert_u/i32 - (get_local $3) - ) - ) - ) - ) - ) - (i32.const 2047) - ) - ) - (i32.store16 - (i32.shl - (i32.add - (i32.mul - (get_local $0) - (get_local $1) - ) - (get_local $7) - ) - (i32.const 1) - ) - (get_local $2) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_local $1 + f64.convert_u/i32 + tee_local $6 + f64.const 1.6 + f64.div + set_local $11 + get_local $0 + f64.convert_u/i32 + get_local $2 + f64.convert_u/i32 + tee_local $4 + f64.const 2 + f64.div + tee_local $8 + f64.sub + f64.const 10 + f64.const 3 + get_local $6 + f64.mul + f64.const 4 + get_local $4 + f64.mul + f64.min + f64.div + tee_local $12 + f64.mul + set_local $9 + block $break|0 + loop $repeat|0 + get_local $7 + get_local $1 + i32.ge_u + br_if $break|0 + get_local $7 + f64.convert_u/i32 + get_local $11 + f64.sub + get_local $12 + f64.mul + set_local $10 + f64.const 0 + set_local $4 + f64.const 0 + set_local $5 + i32.const 0 + set_local $2 + block $break|1 + loop $continue|1 + get_local $4 + get_local $4 + f64.mul + tee_local $6 + get_local $5 + get_local $5 + f64.mul + tee_local $8 + f64.add + f64.const 4 + f64.le + if + f64.const 2 + get_local $4 + f64.mul + get_local $5 + f64.mul + get_local $9 + f64.add + set_local $5 + get_local $6 + get_local $8 + f64.sub + get_local $10 + f64.add + set_local $4 + get_local $2 + get_local $3 + i32.ge_u + br_if $break|1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $continue|1 + end + end + end + block $break|2 + f64.const 8 + get_local $3 + f64.convert_u/i32 + f64.min + set_local $6 + loop $repeat|2 + get_local $2 + f64.convert_u/i32 + get_local $6 + f64.lt + i32.eqz + br_if $break|2 + get_local $4 + get_local $4 + f64.mul + get_local $5 + get_local $5 + f64.mul + f64.sub + get_local $10 + f64.add + set_local $8 + f64.const 2 + get_local $4 + f64.mul + get_local $5 + f64.mul + get_local $9 + f64.add + set_local $5 + get_local $8 + set_local $4 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|2 + unreachable + end + unreachable + end + get_local $4 + get_local $4 + f64.mul + get_local $5 + get_local $5 + f64.mul + f64.add + f64.sqrt + call $~lib/math/NativeMath.log + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.div + tee_local $6 + call $~lib/builtins/isFinite + if (result i32) + f64.const 2047 + get_local $2 + i32.const 1 + i32.add + f64.convert_u/i32 + get_local $6 + f64.sub + get_local $3 + f64.convert_u/i32 + f64.div + call $../../examples/mandelbrot/assembly/index/clamp + f64.mul + i32.trunc_u/f64 + else + i32.const 2047 + end + set_local $2 + get_local $0 + get_local $1 + i32.mul + get_local $7 + i32.add + i32.const 1 + i32.shl + get_local $2 + i32.store16 + get_local $7 + i32.const 1 + i32.add + set_local $7 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $null (; 4 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 4 ;) (type $v) + nop ) ) diff --git a/tests/compiler/mandelbrot.untouched.wat b/tests/compiler/mandelbrot.untouched.wat index 5c69e48d..d7bb76e9 100644 --- a/tests/compiler/mandelbrot.untouched.wat +++ b/tests/compiler/mandelbrot.untouched.wat @@ -5,7 +5,7 @@ (type $FFFF (func (param f64 f64 f64) (result f64))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $../../examples/mandelbrot/assembly/index/NUM_COLORS i32 (i32.const 2048)) (global $~lib/math/NativeMath.LN2 f64 (f64.const 0.6931471805599453)) @@ -27,310 +27,218 @@ (local $11 f64) (local $12 f64) (local $13 i32) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.lt_u - (get_local $2) - (i32.const 1048576) - ) - ) - (get_local $4) - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (block - (if - (i64.eq - (i64.shl - (get_local $1) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 54) - ) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eq - (get_local $2) - (i32.const 1072693248) - ) - ) - (i64.eq - (i64.shl - (get_local $1) - (i64.const 32) - ) - (i64.const 0) - ) - (get_local $4) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.const 1072693248) - (i32.const 1072079006) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_s - (get_local $2) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $2 - (i32.add - (i32.and - (get_local $2) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (set_local $1 - (i64.or - (i64.shl - (i64.extend_u/i32 - (get_local $2) - ) - (i64.const 32) - ) - (i64.and - (get_local $1) - (i64.const 4294967295) - ) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $5 - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (set_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (set_local $7 - (f64.div - (get_local $5) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (set_local $9 - (f64.mul - (get_local $8) - (get_local $8) - ) - ) - (set_local $10 - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $9) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - (set_local $11 - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $9) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $12 - (f64.add - (get_local $11) - (get_local $10) - ) - ) - (set_local $13 - (get_local $3) - ) - (f64.add - (f64.add - (f64.sub - (f64.add - (f64.mul - (get_local $7) - (f64.add - (get_local $6) - (get_local $12) - ) - ) - (f64.mul - (f64.convert_s/i32 - (get_local $13) - ) - (f64.const 1.9082149292705877e-10) - ) - ) - (get_local $6) - ) - (get_local $5) - ) - (f64.mul - (f64.convert_s/i32 - (get_local $13) - ) - (f64.const 0.6931471803691238) - ) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + i32.const 0 + set_local $3 + get_local $2 + i32.const 1048576 + i32.lt_u + tee_local $4 + if (result i32) + get_local $4 + else + get_local $2 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $2 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $3 + i32.const 54 + i32.sub + set_local $3 + get_local $0 + f64.const 18014398509481984 + f64.mul + set_local $0 + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + else + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $2 + i32.const 1072693248 + i32.eq + tee_local $4 + if (result i32) + get_local $1 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + else + get_local $4 + end + if + f64.const 0 + return + end + end + end + get_local $2 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + set_local $2 + get_local $3 + get_local $2 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $3 + get_local $2 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + set_local $2 + get_local $2 + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $1 + i64.const 4294967295 + i64.and + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $0 + get_local $0 + f64.const 1 + f64.sub + set_local $5 + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + set_local $6 + get_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + set_local $7 + get_local $7 + get_local $7 + f64.mul + set_local $8 + get_local $8 + get_local $8 + f64.mul + set_local $9 + get_local $9 + f64.const 0.3999999999940942 + get_local $9 + f64.const 0.22222198432149784 + get_local $9 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $10 + get_local $8 + f64.const 0.6666666666666735 + get_local $9 + f64.const 0.2857142874366239 + get_local $9 + f64.const 0.1818357216161805 + get_local $9 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $11 + get_local $11 + get_local $10 + f64.add + set_local $12 + get_local $3 + set_local $13 + get_local $7 + get_local $6 + get_local $12 + f64.add + f64.mul + get_local $13 + f64.convert_s/i32 + f64.const 1.9082149292705877e-10 + f64.mul + f64.add + get_local $6 + f64.sub + get_local $5 + f64.add + get_local $13 + f64.convert_s/i32 + f64.const 0.6931471803691238 + f64.mul + f64.add ) (func $~lib/builtins/isFinite (; 1 ;) (type $Fi) (param $0 f64) (result i32) - (f64.eq - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.eq ) (func $../../examples/mandelbrot/assembly/index/clamp (; 2 ;) (type $FFFF) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) - (f64.min - (f64.max - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) + get_local $0 + get_local $1 + f64.max + get_local $2 + f64.min ) (func $../../examples/mandelbrot/assembly/index/computeLine (; 3 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 f64) @@ -347,300 +255,211 @@ (local $15 f64) (local $16 f64) (local $17 i32) - (set_local $4 - (f64.div - (f64.convert_u/i32 - (get_local $1) - ) - (f64.const 1.6) - ) - ) - (set_local $5 - (f64.div - (f64.convert_u/i32 - (get_local $2) - ) - (f64.const 2) - ) - ) - (set_local $6 - (f64.div - (f64.const 10) - (f64.min - (f64.mul - (f64.const 3) - (f64.convert_u/i32 - (get_local $1) - ) - ) - (f64.mul - (f64.const 4) - (f64.convert_u/i32 - (get_local $2) - ) - ) - ) - ) - ) - (set_local $7 - (f64.mul - (f64.sub - (f64.convert_u/i32 - (get_local $0) - ) - (get_local $5) - ) - (get_local $6) - ) - ) - (block $break|0 - (set_local $8 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_u - (get_local $8) - (get_local $1) - ) - ) - ) - (block - (set_local $9 - (f64.mul - (f64.sub - (f64.convert_u/i32 - (get_local $8) - ) - (get_local $4) - ) - (get_local $6) - ) - ) - (set_local $10 - (f64.const 0) - ) - (set_local $11 - (f64.const 0) - ) - (set_local $14 - (i32.const 0) - ) - (block $break|1 - (loop $continue|1 - (if - (f64.le - (f64.add - (tee_local $12 - (f64.mul - (get_local $10) - (get_local $10) - ) - ) - (tee_local $13 - (f64.mul - (get_local $11) - (get_local $11) - ) - ) - ) - (f64.const 4) - ) - (block - (block - (set_local $15 - (f64.add - (f64.sub - (get_local $12) - (get_local $13) - ) - (get_local $9) - ) - ) - (set_local $11 - (f64.add - (f64.mul - (f64.mul - (f64.const 2) - (get_local $10) - ) - (get_local $11) - ) - (get_local $7) - ) - ) - (set_local $10 - (get_local $15) - ) - (if - (i32.ge_u - (get_local $14) - (get_local $3) - ) - (br $break|1) - ) - (set_local $14 - (i32.add - (get_local $14) - (i32.const 1) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (block $break|2 - (set_local $15 - (f64.min - (f64.const 8) - (f64.convert_u/i32 - (get_local $3) - ) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (f64.lt - (f64.convert_u/i32 - (get_local $14) - ) - (get_local $15) - ) - ) - ) - (block - (set_local $16 - (f64.add - (f64.sub - (f64.mul - (get_local $10) - (get_local $10) - ) - (f64.mul - (get_local $11) - (get_local $11) - ) - ) - (get_local $9) - ) - ) - (set_local $11 - (f64.add - (f64.mul - (f64.mul - (f64.const 2) - (get_local $10) - ) - (get_local $11) - ) - (get_local $7) - ) - ) - (set_local $10 - (get_local $16) - ) - ) - (set_local $14 - (i32.add - (get_local $14) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (set_local $15 - (f64.div - (call $~lib/math/NativeMath.log - (call $~lib/math/NativeMath.log - (block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) - (set_local $15 - (f64.add - (f64.mul - (get_local $10) - (get_local $10) - ) - (f64.mul - (get_local $11) - (get_local $11) - ) - ) - ) - (f64.sqrt - (get_local $15) - ) - ) - ) - ) - (get_global $~lib/math/NativeMath.LN2) - ) - ) - (set_local $17 - (if (result i32) - (call $~lib/builtins/isFinite - (get_local $15) - ) - (i32.trunc_u/f64 - (f64.mul - (f64.convert_s/i32 - (i32.sub - (get_global $../../examples/mandelbrot/assembly/index/NUM_COLORS) - (i32.const 1) - ) - ) - (call $../../examples/mandelbrot/assembly/index/clamp - (f64.div - (f64.sub - (f64.convert_u/i32 - (i32.add - (get_local $14) - (i32.const 1) - ) - ) - (get_local $15) - ) - (f64.convert_u/i32 - (get_local $3) - ) - ) - (f64.const 0) - (f64.const 1) - ) - ) - ) - (i32.sub - (get_global $../../examples/mandelbrot/assembly/index/NUM_COLORS) - (i32.const 1) - ) - ) - ) - (i32.store16 - (i32.shl - (i32.add - (i32.mul - (get_local $0) - (get_local $1) - ) - (get_local $8) - ) - (i32.const 1) - ) - (get_local $17) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_local $1 + f64.convert_u/i32 + f64.const 1.6 + f64.div + set_local $4 + get_local $2 + f64.convert_u/i32 + f64.const 2 + f64.div + set_local $5 + f64.const 10 + f64.const 3 + get_local $1 + f64.convert_u/i32 + f64.mul + f64.const 4 + get_local $2 + f64.convert_u/i32 + f64.mul + f64.min + f64.div + set_local $6 + get_local $0 + f64.convert_u/i32 + get_local $5 + f64.sub + get_local $6 + f64.mul + set_local $7 + block $break|0 + i32.const 0 + set_local $8 + loop $repeat|0 + get_local $8 + get_local $1 + i32.lt_u + i32.eqz + br_if $break|0 + block + get_local $8 + f64.convert_u/i32 + get_local $4 + f64.sub + get_local $6 + f64.mul + set_local $9 + f64.const 0 + set_local $10 + f64.const 0 + set_local $11 + i32.const 0 + set_local $14 + block $break|1 + loop $continue|1 + get_local $10 + get_local $10 + f64.mul + tee_local $12 + get_local $11 + get_local $11 + f64.mul + tee_local $13 + f64.add + f64.const 4 + f64.le + if + block + get_local $12 + get_local $13 + f64.sub + get_local $9 + f64.add + set_local $15 + f64.const 2 + get_local $10 + f64.mul + get_local $11 + f64.mul + get_local $7 + f64.add + set_local $11 + get_local $15 + set_local $10 + get_local $14 + get_local $3 + i32.ge_u + if + br $break|1 + end + get_local $14 + i32.const 1 + i32.add + set_local $14 + end + br $continue|1 + end + end + end + block $break|2 + f64.const 8 + get_local $3 + f64.convert_u/i32 + f64.min + set_local $15 + loop $repeat|2 + get_local $14 + f64.convert_u/i32 + get_local $15 + f64.lt + i32.eqz + br_if $break|2 + block + get_local $10 + get_local $10 + f64.mul + get_local $11 + get_local $11 + f64.mul + f64.sub + get_local $9 + f64.add + set_local $16 + f64.const 2 + get_local $10 + f64.mul + get_local $11 + f64.mul + get_local $7 + f64.add + set_local $11 + get_local $16 + set_local $10 + end + get_local $14 + i32.const 1 + i32.add + set_local $14 + br $repeat|2 + unreachable + end + unreachable + end + block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) + get_local $10 + get_local $10 + f64.mul + get_local $11 + get_local $11 + f64.mul + f64.add + set_local $15 + get_local $15 + f64.sqrt + end + call $~lib/math/NativeMath.log + call $~lib/math/NativeMath.log + get_global $~lib/math/NativeMath.LN2 + f64.div + set_local $15 + get_local $15 + call $~lib/builtins/isFinite + if (result i32) + get_global $../../examples/mandelbrot/assembly/index/NUM_COLORS + i32.const 1 + i32.sub + f64.convert_s/i32 + get_local $14 + i32.const 1 + i32.add + f64.convert_u/i32 + get_local $15 + f64.sub + get_local $3 + f64.convert_u/i32 + f64.div + f64.const 0 + f64.const 1 + call $../../examples/mandelbrot/assembly/index/clamp + f64.mul + i32.trunc_u/f64 + else + get_global $../../examples/mandelbrot/assembly/index/NUM_COLORS + i32.const 1 + i32.sub + end + set_local $17 + get_local $0 + get_local $1 + i32.mul + get_local $8 + i32.add + i32.const 1 + i32.shl + get_local $17 + i32.store16 + end + get_local $8 + i32.const 1 + i32.add + set_local $8 + br $repeat|0 + unreachable + end + unreachable + end ) (func $null (; 4 ;) (type $v) ) diff --git a/tests/compiler/many-locals.optimized.wat b/tests/compiler/many-locals.optimized.wat index c22ec7c8..ece48cf1 100644 --- a/tests/compiler/many-locals.optimized.wat +++ b/tests/compiler/many-locals.optimized.wat @@ -2,65 +2,53 @@ (type $ii (func (param i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0e\00\00\00m\00a\00n\00y\00-\00l\00o\00c\00a\00l\00s\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (export "memory" (memory $0)) (export "table" (table $0)) (export "testI32" (func $many-locals/testI32)) (export "testI8" (func $many-locals/testI8)) (start $start) - (func $many-locals/testI32 (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (get_local $0) + (func $many-locals/testI32 (; 1 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 ) - (func $many-locals/testI8 (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) + (func $many-locals/testI8 (; 2 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s ) - (func $start (; 3 ;) (; has Stack IR ;) (type $v) - (if - (i32.ne - (call $many-locals/testI32 - (i32.const 42) - ) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $many-locals/testI8 - (i32.const 42) - ) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 267) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 3 ;) (type $v) + i32.const 42 + call $many-locals/testI32 + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 133 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 42 + call $many-locals/testI8 + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 267 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 4 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 4 ;) (type $v) + nop ) ) diff --git a/tests/compiler/many-locals.untouched.wat b/tests/compiler/many-locals.untouched.wat index c006b218..2b419607 100644 --- a/tests/compiler/many-locals.untouched.wat +++ b/tests/compiler/many-locals.untouched.wat @@ -2,11 +2,11 @@ (type $ii (func (param i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0e\00\00\00m\00a\00n\00y\00-\00l\00o\00c\00a\00l\00s\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $HEAP_BASE i32 (i32.const 40)) (export "memory" (memory $0)) (export "table" (table $0)) @@ -142,391 +142,263 @@ (local $126 i32) (local $127 i32) (local $128 i32) - (set_local $1 - (get_local $0) - ) - (set_local $2 - (get_local $1) - ) - (set_local $3 - (get_local $2) - ) - (set_local $4 - (get_local $3) - ) - (set_local $5 - (get_local $4) - ) - (set_local $6 - (get_local $5) - ) - (set_local $7 - (get_local $6) - ) - (set_local $8 - (get_local $7) - ) - (set_local $9 - (get_local $8) - ) - (set_local $10 - (get_local $9) - ) - (set_local $11 - (get_local $10) - ) - (set_local $12 - (get_local $11) - ) - (set_local $13 - (get_local $12) - ) - (set_local $14 - (get_local $13) - ) - (set_local $15 - (get_local $14) - ) - (set_local $16 - (get_local $15) - ) - (set_local $17 - (get_local $16) - ) - (set_local $18 - (get_local $17) - ) - (set_local $19 - (get_local $18) - ) - (set_local $20 - (get_local $19) - ) - (set_local $21 - (get_local $20) - ) - (set_local $22 - (get_local $21) - ) - (set_local $23 - (get_local $22) - ) - (set_local $24 - (get_local $23) - ) - (set_local $25 - (get_local $24) - ) - (set_local $26 - (get_local $25) - ) - (set_local $27 - (get_local $26) - ) - (set_local $28 - (get_local $27) - ) - (set_local $29 - (get_local $28) - ) - (set_local $30 - (get_local $29) - ) - (set_local $31 - (get_local $30) - ) - (set_local $32 - (get_local $31) - ) - (set_local $33 - (get_local $32) - ) - (set_local $34 - (get_local $33) - ) - (set_local $35 - (get_local $34) - ) - (set_local $36 - (get_local $35) - ) - (set_local $37 - (get_local $36) - ) - (set_local $38 - (get_local $37) - ) - (set_local $39 - (get_local $38) - ) - (set_local $40 - (get_local $39) - ) - (set_local $41 - (get_local $40) - ) - (set_local $42 - (get_local $41) - ) - (set_local $43 - (get_local $42) - ) - (set_local $44 - (get_local $43) - ) - (set_local $45 - (get_local $44) - ) - (set_local $46 - (get_local $45) - ) - (set_local $47 - (get_local $46) - ) - (set_local $48 - (get_local $47) - ) - (set_local $49 - (get_local $48) - ) - (set_local $50 - (get_local $49) - ) - (set_local $51 - (get_local $50) - ) - (set_local $52 - (get_local $51) - ) - (set_local $53 - (get_local $52) - ) - (set_local $54 - (get_local $53) - ) - (set_local $55 - (get_local $54) - ) - (set_local $56 - (get_local $55) - ) - (set_local $57 - (get_local $56) - ) - (set_local $58 - (get_local $57) - ) - (set_local $59 - (get_local $58) - ) - (set_local $60 - (get_local $59) - ) - (set_local $61 - (get_local $60) - ) - (set_local $62 - (get_local $61) - ) - (set_local $63 - (get_local $62) - ) - (set_local $64 - (get_local $63) - ) - (set_local $65 - (get_local $64) - ) - (set_local $66 - (get_local $65) - ) - (set_local $67 - (get_local $66) - ) - (set_local $68 - (get_local $67) - ) - (set_local $69 - (get_local $68) - ) - (set_local $70 - (get_local $69) - ) - (set_local $71 - (get_local $70) - ) - (set_local $72 - (get_local $71) - ) - (set_local $73 - (get_local $72) - ) - (set_local $74 - (get_local $73) - ) - (set_local $75 - (get_local $74) - ) - (set_local $76 - (get_local $75) - ) - (set_local $77 - (get_local $76) - ) - (set_local $78 - (get_local $77) - ) - (set_local $79 - (get_local $78) - ) - (set_local $80 - (get_local $79) - ) - (set_local $81 - (get_local $80) - ) - (set_local $82 - (get_local $81) - ) - (set_local $83 - (get_local $82) - ) - (set_local $84 - (get_local $83) - ) - (set_local $85 - (get_local $84) - ) - (set_local $86 - (get_local $85) - ) - (set_local $87 - (get_local $86) - ) - (set_local $88 - (get_local $87) - ) - (set_local $89 - (get_local $88) - ) - (set_local $90 - (get_local $89) - ) - (set_local $91 - (get_local $90) - ) - (set_local $92 - (get_local $91) - ) - (set_local $93 - (get_local $92) - ) - (set_local $94 - (get_local $93) - ) - (set_local $95 - (get_local $94) - ) - (set_local $96 - (get_local $95) - ) - (set_local $97 - (get_local $96) - ) - (set_local $98 - (get_local $97) - ) - (set_local $99 - (get_local $98) - ) - (set_local $100 - (get_local $99) - ) - (set_local $101 - (get_local $100) - ) - (set_local $102 - (get_local $101) - ) - (set_local $103 - (get_local $102) - ) - (set_local $104 - (get_local $103) - ) - (set_local $105 - (get_local $104) - ) - (set_local $106 - (get_local $105) - ) - (set_local $107 - (get_local $106) - ) - (set_local $108 - (get_local $107) - ) - (set_local $109 - (get_local $108) - ) - (set_local $110 - (get_local $109) - ) - (set_local $111 - (get_local $110) - ) - (set_local $112 - (get_local $111) - ) - (set_local $113 - (get_local $112) - ) - (set_local $114 - (get_local $113) - ) - (set_local $115 - (get_local $114) - ) - (set_local $116 - (get_local $115) - ) - (set_local $117 - (get_local $116) - ) - (set_local $118 - (get_local $117) - ) - (set_local $119 - (get_local $118) - ) - (set_local $120 - (get_local $119) - ) - (set_local $121 - (get_local $120) - ) - (set_local $122 - (get_local $121) - ) - (set_local $123 - (get_local $122) - ) - (set_local $124 - (get_local $123) - ) - (set_local $125 - (get_local $124) - ) - (set_local $126 - (get_local $125) - ) - (set_local $127 - (get_local $126) - ) - (set_local $128 - (get_local $127) - ) - (get_local $128) + get_local $0 + set_local $1 + get_local $1 + set_local $2 + get_local $2 + set_local $3 + get_local $3 + set_local $4 + get_local $4 + set_local $5 + get_local $5 + set_local $6 + get_local $6 + set_local $7 + get_local $7 + set_local $8 + get_local $8 + set_local $9 + get_local $9 + set_local $10 + get_local $10 + set_local $11 + get_local $11 + set_local $12 + get_local $12 + set_local $13 + get_local $13 + set_local $14 + get_local $14 + set_local $15 + get_local $15 + set_local $16 + get_local $16 + set_local $17 + get_local $17 + set_local $18 + get_local $18 + set_local $19 + get_local $19 + set_local $20 + get_local $20 + set_local $21 + get_local $21 + set_local $22 + get_local $22 + set_local $23 + get_local $23 + set_local $24 + get_local $24 + set_local $25 + get_local $25 + set_local $26 + get_local $26 + set_local $27 + get_local $27 + set_local $28 + get_local $28 + set_local $29 + get_local $29 + set_local $30 + get_local $30 + set_local $31 + get_local $31 + set_local $32 + get_local $32 + set_local $33 + get_local $33 + set_local $34 + get_local $34 + set_local $35 + get_local $35 + set_local $36 + get_local $36 + set_local $37 + get_local $37 + set_local $38 + get_local $38 + set_local $39 + get_local $39 + set_local $40 + get_local $40 + set_local $41 + get_local $41 + set_local $42 + get_local $42 + set_local $43 + get_local $43 + set_local $44 + get_local $44 + set_local $45 + get_local $45 + set_local $46 + get_local $46 + set_local $47 + get_local $47 + set_local $48 + get_local $48 + set_local $49 + get_local $49 + set_local $50 + get_local $50 + set_local $51 + get_local $51 + set_local $52 + get_local $52 + set_local $53 + get_local $53 + set_local $54 + get_local $54 + set_local $55 + get_local $55 + set_local $56 + get_local $56 + set_local $57 + get_local $57 + set_local $58 + get_local $58 + set_local $59 + get_local $59 + set_local $60 + get_local $60 + set_local $61 + get_local $61 + set_local $62 + get_local $62 + set_local $63 + get_local $63 + set_local $64 + get_local $64 + set_local $65 + get_local $65 + set_local $66 + get_local $66 + set_local $67 + get_local $67 + set_local $68 + get_local $68 + set_local $69 + get_local $69 + set_local $70 + get_local $70 + set_local $71 + get_local $71 + set_local $72 + get_local $72 + set_local $73 + get_local $73 + set_local $74 + get_local $74 + set_local $75 + get_local $75 + set_local $76 + get_local $76 + set_local $77 + get_local $77 + set_local $78 + get_local $78 + set_local $79 + get_local $79 + set_local $80 + get_local $80 + set_local $81 + get_local $81 + set_local $82 + get_local $82 + set_local $83 + get_local $83 + set_local $84 + get_local $84 + set_local $85 + get_local $85 + set_local $86 + get_local $86 + set_local $87 + get_local $87 + set_local $88 + get_local $88 + set_local $89 + get_local $89 + set_local $90 + get_local $90 + set_local $91 + get_local $91 + set_local $92 + get_local $92 + set_local $93 + get_local $93 + set_local $94 + get_local $94 + set_local $95 + get_local $95 + set_local $96 + get_local $96 + set_local $97 + get_local $97 + set_local $98 + get_local $98 + set_local $99 + get_local $99 + set_local $100 + get_local $100 + set_local $101 + get_local $101 + set_local $102 + get_local $102 + set_local $103 + get_local $103 + set_local $104 + get_local $104 + set_local $105 + get_local $105 + set_local $106 + get_local $106 + set_local $107 + get_local $107 + set_local $108 + get_local $108 + set_local $109 + get_local $109 + set_local $110 + get_local $110 + set_local $111 + get_local $111 + set_local $112 + get_local $112 + set_local $113 + get_local $113 + set_local $114 + get_local $114 + set_local $115 + get_local $115 + set_local $116 + get_local $116 + set_local $117 + get_local $117 + set_local $118 + get_local $118 + set_local $119 + get_local $119 + set_local $120 + get_local $120 + set_local $121 + get_local $121 + set_local $122 + get_local $122 + set_local $123 + get_local $123 + set_local $124 + get_local $124 + set_local $125 + get_local $125 + set_local $126 + get_local $126 + set_local $127 + get_local $127 + set_local $128 + get_local $128 ) (func $many-locals/testI8 (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -657,437 +529,295 @@ (local $126 i32) (local $127 i32) (local $128 i32) - (set_local $1 - (get_local $0) - ) - (set_local $2 - (get_local $1) - ) - (set_local $3 - (get_local $2) - ) - (set_local $4 - (get_local $3) - ) - (set_local $5 - (get_local $4) - ) - (set_local $6 - (get_local $5) - ) - (set_local $7 - (get_local $6) - ) - (set_local $8 - (get_local $7) - ) - (set_local $9 - (get_local $8) - ) - (set_local $10 - (get_local $9) - ) - (set_local $11 - (get_local $10) - ) - (set_local $12 - (get_local $11) - ) - (set_local $13 - (get_local $12) - ) - (set_local $14 - (get_local $13) - ) - (set_local $15 - (get_local $14) - ) - (set_local $16 - (get_local $15) - ) - (set_local $17 - (get_local $16) - ) - (set_local $18 - (get_local $17) - ) - (set_local $19 - (get_local $18) - ) - (set_local $20 - (get_local $19) - ) - (set_local $21 - (get_local $20) - ) - (set_local $22 - (get_local $21) - ) - (set_local $23 - (get_local $22) - ) - (set_local $24 - (get_local $23) - ) - (set_local $25 - (get_local $24) - ) - (set_local $26 - (get_local $25) - ) - (set_local $27 - (get_local $26) - ) - (set_local $28 - (get_local $27) - ) - (set_local $29 - (get_local $28) - ) - (set_local $30 - (get_local $29) - ) - (set_local $31 - (get_local $30) - ) - (set_local $32 - (get_local $31) - ) - (set_local $33 - (get_local $32) - ) - (set_local $34 - (get_local $33) - ) - (set_local $35 - (get_local $34) - ) - (set_local $36 - (get_local $35) - ) - (set_local $37 - (get_local $36) - ) - (set_local $38 - (get_local $37) - ) - (set_local $39 - (get_local $38) - ) - (set_local $40 - (get_local $39) - ) - (set_local $41 - (get_local $40) - ) - (set_local $42 - (get_local $41) - ) - (set_local $43 - (get_local $42) - ) - (set_local $44 - (get_local $43) - ) - (set_local $45 - (get_local $44) - ) - (set_local $46 - (get_local $45) - ) - (set_local $47 - (get_local $46) - ) - (set_local $48 - (get_local $47) - ) - (set_local $49 - (get_local $48) - ) - (set_local $50 - (get_local $49) - ) - (set_local $51 - (get_local $50) - ) - (set_local $52 - (get_local $51) - ) - (set_local $53 - (get_local $52) - ) - (set_local $54 - (get_local $53) - ) - (set_local $55 - (get_local $54) - ) - (set_local $56 - (get_local $55) - ) - (set_local $57 - (get_local $56) - ) - (set_local $58 - (get_local $57) - ) - (set_local $59 - (get_local $58) - ) - (set_local $60 - (get_local $59) - ) - (set_local $61 - (get_local $60) - ) - (set_local $62 - (get_local $61) - ) - (set_local $63 - (get_local $62) - ) - (set_local $64 - (get_local $63) - ) - (set_local $65 - (get_local $64) - ) - (set_local $66 - (get_local $65) - ) - (set_local $67 - (get_local $66) - ) - (set_local $68 - (get_local $67) - ) - (set_local $69 - (get_local $68) - ) - (set_local $70 - (get_local $69) - ) - (set_local $71 - (get_local $70) - ) - (set_local $72 - (get_local $71) - ) - (set_local $73 - (get_local $72) - ) - (set_local $74 - (get_local $73) - ) - (set_local $75 - (get_local $74) - ) - (set_local $76 - (get_local $75) - ) - (set_local $77 - (get_local $76) - ) - (set_local $78 - (get_local $77) - ) - (set_local $79 - (get_local $78) - ) - (set_local $80 - (get_local $79) - ) - (set_local $81 - (get_local $80) - ) - (set_local $82 - (get_local $81) - ) - (set_local $83 - (get_local $82) - ) - (set_local $84 - (get_local $83) - ) - (set_local $85 - (get_local $84) - ) - (set_local $86 - (get_local $85) - ) - (set_local $87 - (get_local $86) - ) - (set_local $88 - (get_local $87) - ) - (set_local $89 - (get_local $88) - ) - (set_local $90 - (get_local $89) - ) - (set_local $91 - (get_local $90) - ) - (set_local $92 - (get_local $91) - ) - (set_local $93 - (get_local $92) - ) - (set_local $94 - (get_local $93) - ) - (set_local $95 - (get_local $94) - ) - (set_local $96 - (get_local $95) - ) - (set_local $97 - (get_local $96) - ) - (set_local $98 - (get_local $97) - ) - (set_local $99 - (get_local $98) - ) - (set_local $100 - (get_local $99) - ) - (set_local $101 - (get_local $100) - ) - (set_local $102 - (get_local $101) - ) - (set_local $103 - (get_local $102) - ) - (set_local $104 - (get_local $103) - ) - (set_local $105 - (get_local $104) - ) - (set_local $106 - (get_local $105) - ) - (set_local $107 - (get_local $106) - ) - (set_local $108 - (get_local $107) - ) - (set_local $109 - (get_local $108) - ) - (set_local $110 - (get_local $109) - ) - (set_local $111 - (get_local $110) - ) - (set_local $112 - (get_local $111) - ) - (set_local $113 - (get_local $112) - ) - (set_local $114 - (get_local $113) - ) - (set_local $115 - (get_local $114) - ) - (set_local $116 - (get_local $115) - ) - (set_local $117 - (get_local $116) - ) - (set_local $118 - (get_local $117) - ) - (set_local $119 - (get_local $118) - ) - (set_local $120 - (get_local $119) - ) - (set_local $121 - (get_local $120) - ) - (set_local $122 - (get_local $121) - ) - (set_local $123 - (get_local $122) - ) - (set_local $124 - (get_local $123) - ) - (set_local $125 - (get_local $124) - ) - (set_local $126 - (get_local $125) - ) - (set_local $127 - (get_local $126) - ) - (set_local $128 - (get_local $127) - ) - (i32.shr_s - (i32.shl - (get_local $128) - (i32.const 24) - ) - (i32.const 24) - ) + get_local $0 + set_local $1 + get_local $1 + set_local $2 + get_local $2 + set_local $3 + get_local $3 + set_local $4 + get_local $4 + set_local $5 + get_local $5 + set_local $6 + get_local $6 + set_local $7 + get_local $7 + set_local $8 + get_local $8 + set_local $9 + get_local $9 + set_local $10 + get_local $10 + set_local $11 + get_local $11 + set_local $12 + get_local $12 + set_local $13 + get_local $13 + set_local $14 + get_local $14 + set_local $15 + get_local $15 + set_local $16 + get_local $16 + set_local $17 + get_local $17 + set_local $18 + get_local $18 + set_local $19 + get_local $19 + set_local $20 + get_local $20 + set_local $21 + get_local $21 + set_local $22 + get_local $22 + set_local $23 + get_local $23 + set_local $24 + get_local $24 + set_local $25 + get_local $25 + set_local $26 + get_local $26 + set_local $27 + get_local $27 + set_local $28 + get_local $28 + set_local $29 + get_local $29 + set_local $30 + get_local $30 + set_local $31 + get_local $31 + set_local $32 + get_local $32 + set_local $33 + get_local $33 + set_local $34 + get_local $34 + set_local $35 + get_local $35 + set_local $36 + get_local $36 + set_local $37 + get_local $37 + set_local $38 + get_local $38 + set_local $39 + get_local $39 + set_local $40 + get_local $40 + set_local $41 + get_local $41 + set_local $42 + get_local $42 + set_local $43 + get_local $43 + set_local $44 + get_local $44 + set_local $45 + get_local $45 + set_local $46 + get_local $46 + set_local $47 + get_local $47 + set_local $48 + get_local $48 + set_local $49 + get_local $49 + set_local $50 + get_local $50 + set_local $51 + get_local $51 + set_local $52 + get_local $52 + set_local $53 + get_local $53 + set_local $54 + get_local $54 + set_local $55 + get_local $55 + set_local $56 + get_local $56 + set_local $57 + get_local $57 + set_local $58 + get_local $58 + set_local $59 + get_local $59 + set_local $60 + get_local $60 + set_local $61 + get_local $61 + set_local $62 + get_local $62 + set_local $63 + get_local $63 + set_local $64 + get_local $64 + set_local $65 + get_local $65 + set_local $66 + get_local $66 + set_local $67 + get_local $67 + set_local $68 + get_local $68 + set_local $69 + get_local $69 + set_local $70 + get_local $70 + set_local $71 + get_local $71 + set_local $72 + get_local $72 + set_local $73 + get_local $73 + set_local $74 + get_local $74 + set_local $75 + get_local $75 + set_local $76 + get_local $76 + set_local $77 + get_local $77 + set_local $78 + get_local $78 + set_local $79 + get_local $79 + set_local $80 + get_local $80 + set_local $81 + get_local $81 + set_local $82 + get_local $82 + set_local $83 + get_local $83 + set_local $84 + get_local $84 + set_local $85 + get_local $85 + set_local $86 + get_local $86 + set_local $87 + get_local $87 + set_local $88 + get_local $88 + set_local $89 + get_local $89 + set_local $90 + get_local $90 + set_local $91 + get_local $91 + set_local $92 + get_local $92 + set_local $93 + get_local $93 + set_local $94 + get_local $94 + set_local $95 + get_local $95 + set_local $96 + get_local $96 + set_local $97 + get_local $97 + set_local $98 + get_local $98 + set_local $99 + get_local $99 + set_local $100 + get_local $100 + set_local $101 + get_local $101 + set_local $102 + get_local $102 + set_local $103 + get_local $103 + set_local $104 + get_local $104 + set_local $105 + get_local $105 + set_local $106 + get_local $106 + set_local $107 + get_local $107 + set_local $108 + get_local $108 + set_local $109 + get_local $109 + set_local $110 + get_local $110 + set_local $111 + get_local $111 + set_local $112 + get_local $112 + set_local $113 + get_local $113 + set_local $114 + get_local $114 + set_local $115 + get_local $115 + set_local $116 + get_local $116 + set_local $117 + get_local $117 + set_local $118 + get_local $118 + set_local $119 + get_local $119 + set_local $120 + get_local $120 + set_local $121 + get_local $121 + set_local $122 + get_local $122 + set_local $123 + get_local $123 + set_local $124 + get_local $124 + set_local $125 + get_local $125 + set_local $126 + get_local $126 + set_local $127 + get_local $127 + set_local $128 + get_local $128 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s ) (func $start (; 3 ;) (type $v) - (if - (i32.eqz - (i32.eq - (call $many-locals/testI32 - (i32.const 42) - ) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $many-locals/testI8 - (i32.const 42) - ) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 267) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 42 + call $many-locals/testI32 + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 133 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 42 + call $many-locals/testI8 + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 267 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 4 ;) (type $v) ) diff --git a/tests/compiler/memcpy.optimized.wat b/tests/compiler/memcpy.optimized.wat index 7ffeaeb4..75400dc0 100644 --- a/tests/compiler/memcpy.optimized.wat +++ b/tests/compiler/memcpy.optimized.wat @@ -2,1656 +2,1102 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\t\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $memcpy/dest (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (export "memcpy" (func $memcpy/memcpy)) (start $start) - (func $memcpy/memcpy (; 1 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $memcpy/memcpy (; 1 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $6 - (get_local $0) - ) - (loop $continue|0 - (if - (tee_local $3 - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - ) - (block - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (block - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (return - (get_local $6) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (if - (i32.ne - (tee_local $3 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 1) - ) - (block - (br_if $case1|2 - (i32.eq - (get_local $3) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $3) - (i32.const 3) - ) - ) - (br $break|2) - ) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|3) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|4) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (get_local $6) + get_local $0 + set_local $6 + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + tee_local $3 + if + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|0 + end + end + get_local $0 + i32.const 3 + i32.and + i32.eqz + if + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|1 + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end + get_local $6 + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + get_local $0 + i32.const 3 + i32.and + tee_local $3 + i32.const 1 + i32.ne + if + get_local $3 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $3 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 1 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 5 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 9 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 13 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|3 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 2 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 6 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 10 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 14 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|4 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 3 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 7 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 11 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 15 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|5 + end + end + end + end + get_local $2 + i32.const 16 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end + get_local $6 ) - (func $start (; 2 ;) (; has Stack IR ;) (type $v) - (i64.store - (i32.const 8) - (i64.const 1229782938247303441) - ) - (i64.store - (i32.const 16) - (i64.const 2459565876494606882) - ) - (i64.store - (i32.const 24) - (i64.const 3689348814741910323) - ) - (i64.store - (i32.const 32) - (i64.const 4919131752989213764) - ) - (set_global $memcpy/dest - (call $memcpy/memcpy - (i32.const 9) - (i32.const 24) - (i32.const 4) - ) - ) - (if - (i32.ne - (get_global $memcpy/dest) - (i32.const 9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 151) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 8) - ) - (i64.const 1229783084848853777) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 152) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memcpy/dest - (call $memcpy/memcpy - (i32.const 8) - (i32.const 8) - (i32.const 32) - ) - ) - (if - (i32.ne - (get_global $memcpy/dest) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 8) - ) - (i64.const 1229783084848853777) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 156) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 16) - ) - (i64.const 2459565876494606882) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 157) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 24) - ) - (i64.const 3689348814741910323) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 158) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 32) - ) - (i64.const 4919131752989213764) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memcpy/dest - (call $memcpy/memcpy - (i32.const 13) - (i32.const 36) - (i32.const 3) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 8) - ) - (i64.const 4919131679688438545) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 162) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memcpy/dest - (call $memcpy/memcpy - (i32.const 16) - (i32.const 24) - (i32.const 15) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 8) - ) - (i64.const 4919131679688438545) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 16) - ) - (i64.const 3689348814741910323) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 166) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 24) - ) - (i64.const 3694152654344438852) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 167) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 32) - ) - (i64.const 4919131752989213764) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 168) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 2 ;) (type $v) + i32.const 8 + i64.const 1229782938247303441 + i64.store + i32.const 16 + i64.const 2459565876494606882 + i64.store + i32.const 24 + i64.const 3689348814741910323 + i64.store + i32.const 32 + i64.const 4919131752989213764 + i64.store + i32.const 9 + i32.const 24 + i32.const 4 + call $memcpy/memcpy + set_global $memcpy/dest + get_global $memcpy/dest + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 151 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i64.load + i64.const 1229783084848853777 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 152 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i32.const 8 + i32.const 32 + call $memcpy/memcpy + set_global $memcpy/dest + get_global $memcpy/dest + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i64.load + i64.const 1229783084848853777 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 156 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 16 + i64.load + i64.const 2459565876494606882 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 157 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 24 + i64.load + i64.const 3689348814741910323 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 158 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 32 + i64.load + i64.const 4919131752989213764 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 13 + i32.const 36 + i32.const 3 + call $memcpy/memcpy + set_global $memcpy/dest + i32.const 8 + i64.load + i64.const 4919131679688438545 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 162 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 16 + i32.const 24 + i32.const 15 + call $memcpy/memcpy + set_global $memcpy/dest + i32.const 8 + i64.load + i64.const 4919131679688438545 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 16 + i64.load + i64.const 3689348814741910323 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 166 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 24 + i64.load + i64.const 3694152654344438852 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 167 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 32 + i64.load + i64.const 4919131752989213764 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 168 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/memcpy.untouched.wat b/tests/compiler/memcpy.untouched.wat index dc900941..6d55210a 100644 --- a/tests/compiler/memcpy.untouched.wat +++ b/tests/compiler/memcpy.untouched.wat @@ -2,11 +2,11 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\t\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $memcpy/base i32 (i32.const 8)) (global $memcpy/dest (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 32)) @@ -19,2043 +19,1414 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (get_local $0) - ) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $2) - (i32.rem_u - (get_local $1) - (i32.const 4) - ) - (get_local $2) - ) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eq - (i32.rem_u - (get_local $0) - (i32.const 4) - ) - (i32.const 0) - ) - (block - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - ) - (return - (get_local $3) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $6 - (i32.rem_u - (get_local $0) - (i32.const 4) - ) - ) - (br_if $case0|2 - (i32.eq - (get_local $6) - (i32.const 1) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $6) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $6) - (i32.const 3) - ) - ) - (br $break|2) - ) - (set_local $4 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (block - (set_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $5) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $5) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (br $break|2) - ) - (set_local $4 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (block - (set_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (br $break|2) - ) - (set_local $4 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (block - (set_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $5) - (i32.const 24) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $5) - (i32.const 24) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - (br $break|2) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $6 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - ) - (get_local $3) + get_local $0 + set_local $3 + block $break|0 + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 4 + i32.rem_u + else + get_local $2 + end + if + block + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|0 + end + end + end + get_local $0 + i32.const 4 + i32.rem_u + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + block + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|1 + end + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + end + get_local $3 + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $0 + i32.const 4 + i32.rem_u + set_local $6 + get_local $6 + i32.const 1 + i32.eq + br_if $case0|2 + get_local $6 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $6 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + get_local $1 + i32.load + set_local $4 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + block $break|3 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + block + get_local $1 + i32.const 1 + i32.add + i32.load + set_local $5 + get_local $0 + get_local $4 + i32.const 24 + i32.shr_u + get_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 5 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 4 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 9 + i32.add + i32.load + set_local $5 + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 13 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 12 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|3 + end + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $4 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $break|4 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + block + get_local $1 + i32.const 2 + i32.add + i32.load + set_local $5 + get_local $0 + get_local $4 + i32.const 16 + i32.shr_u + get_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 6 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 4 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 10 + i32.add + i32.load + set_local $5 + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 14 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 12 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|4 + end + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $4 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block $break|5 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + block + get_local $1 + i32.const 3 + i32.add + i32.load + set_local $5 + get_local $0 + get_local $4 + i32.const 8 + i32.shr_u + get_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 7 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 4 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 11 + i32.add + i32.load + set_local $5 + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 15 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 12 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|5 + end + end + end + br $break|2 + end + end + get_local $2 + i32.const 16 + i32.and + if + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $6 + i32.const 1 + i32.add + set_local $0 + get_local $6 + end + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.add + set_local $1 + get_local $6 + end + i32.load8_u + i32.store8 + end + get_local $3 ) (func $start (; 2 ;) (type $v) - (i64.store - (get_global $memcpy/base) - (i64.const 1229782938247303441) - ) - (i64.store - (i32.add - (get_global $memcpy/base) - (i32.const 8) - ) - (i64.const 2459565876494606882) - ) - (i64.store - (i32.add - (get_global $memcpy/base) - (i32.const 16) - ) - (i64.const 3689348814741910323) - ) - (i64.store - (i32.add - (get_global $memcpy/base) - (i32.const 24) - ) - (i64.const 4919131752989213764) - ) - (set_global $memcpy/dest - (call $memcpy/memcpy - (i32.add - (get_global $memcpy/base) - (i32.const 1) - ) - (i32.add - (get_global $memcpy/base) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $memcpy/dest) - (i32.add - (get_global $memcpy/base) - (i32.const 1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 151) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (get_global $memcpy/base) - ) - (i64.const 1229783084848853777) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 152) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memcpy/dest - (call $memcpy/memcpy - (get_global $memcpy/base) - (get_global $memcpy/base) - (i32.const 32) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $memcpy/dest) - (get_global $memcpy/base) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (get_global $memcpy/base) - ) - (i64.const 1229783084848853777) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 156) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memcpy/base) - (i32.const 8) - ) - ) - (i64.const 2459565876494606882) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 157) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memcpy/base) - (i32.const 16) - ) - ) - (i64.const 3689348814741910323) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 158) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memcpy/base) - (i32.const 24) - ) - ) - (i64.const 4919131752989213764) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memcpy/dest - (call $memcpy/memcpy - (i32.add - (get_global $memcpy/base) - (i32.const 5) - ) - (i32.add - (get_global $memcpy/base) - (i32.const 28) - ) - (i32.const 3) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (get_global $memcpy/base) - ) - (i64.const 4919131679688438545) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 162) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memcpy/dest - (call $memcpy/memcpy - (i32.add - (get_global $memcpy/base) - (i32.const 8) - ) - (i32.add - (get_global $memcpy/base) - (i32.const 16) - ) - (i32.const 15) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (get_global $memcpy/base) - ) - (i64.const 4919131679688438545) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memcpy/base) - (i32.const 8) - ) - ) - (i64.const 3689348814741910323) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 166) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memcpy/base) - (i32.const 16) - ) - ) - (i64.const 3694152654344438852) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 167) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memcpy/base) - (i32.const 24) - ) - ) - (i64.const 4919131752989213764) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 168) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $memcpy/base + i64.const 1229782938247303441 + i64.store + get_global $memcpy/base + i32.const 8 + i32.add + i64.const 2459565876494606882 + i64.store + get_global $memcpy/base + i32.const 16 + i32.add + i64.const 3689348814741910323 + i64.store + get_global $memcpy/base + i32.const 24 + i32.add + i64.const 4919131752989213764 + i64.store + get_global $memcpy/base + i32.const 1 + i32.add + get_global $memcpy/base + i32.const 16 + i32.add + i32.const 4 + call $memcpy/memcpy + set_global $memcpy/dest + get_global $memcpy/dest + get_global $memcpy/base + i32.const 1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 151 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + i64.load + i64.const 1229783084848853777 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 152 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + get_global $memcpy/base + i32.const 32 + call $memcpy/memcpy + set_global $memcpy/dest + get_global $memcpy/dest + get_global $memcpy/base + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + i64.load + i64.const 1229783084848853777 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 156 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + i32.const 8 + i32.add + i64.load + i64.const 2459565876494606882 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 157 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + i32.const 16 + i32.add + i64.load + i64.const 3689348814741910323 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 158 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + i32.const 24 + i32.add + i64.load + i64.const 4919131752989213764 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + i32.const 5 + i32.add + get_global $memcpy/base + i32.const 28 + i32.add + i32.const 3 + call $memcpy/memcpy + set_global $memcpy/dest + get_global $memcpy/base + i64.load + i64.const 4919131679688438545 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 162 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + i32.const 8 + i32.add + get_global $memcpy/base + i32.const 16 + i32.add + i32.const 15 + call $memcpy/memcpy + set_global $memcpy/dest + get_global $memcpy/base + i64.load + i64.const 4919131679688438545 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + i32.const 8 + i32.add + i64.load + i64.const 3689348814741910323 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 166 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + i32.const 16 + i32.add + i64.load + i64.const 3694152654344438852 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 167 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memcpy/base + i32.const 24 + i32.add + i64.load + i64.const 4919131752989213764 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 168 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 3 ;) (type $v) ) diff --git a/tests/compiler/memmove.optimized.wat b/tests/compiler/memmove.optimized.wat index 6bceeaa0..bc616a41 100644 --- a/tests/compiler/memmove.optimized.wat +++ b/tests/compiler/memmove.optimized.wat @@ -2,532 +2,376 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\n\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $memmove/dest (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $memmove/memmove (; 1 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $memmove/memmove (; 1 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $4 - (get_local $0) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (get_local $4) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return - (get_local $4) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $5 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $5) - (i32.load8_u - (get_local $3) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (get_local $2) - (block - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $5 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $5) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return - (get_local $4) - ) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - (get_local $4) + get_local $0 + set_local $4 + get_local $0 + get_local $1 + i32.eq + if + get_local $4 + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + get_local $4 + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + tee_local $5 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $5 + get_local $3 + i32.load8_u + i32.store8 + br $continue|0 + end + end + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + br $continue|1 + end + end + end + loop $continue|2 + get_local $2 + if + get_local $0 + tee_local $5 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $5 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|2 + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + get_local $4 + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|3 + end + end + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 8 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + br $continue|4 + end + end + end + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + get_local $4 ) - (func $start (; 2 ;) (; has Stack IR ;) (type $v) - (i64.store - (i32.const 8) - (i64.const 1229782938247303441) - ) - (i64.store - (i32.const 16) - (i64.const 2459565876494606882) - ) - (i64.store - (i32.const 24) - (i64.const 3689348814741910323) - ) - (i64.store - (i32.const 32) - (i64.const 4919131752989213764) - ) - (set_global $memmove/dest - (call $memmove/memmove - (i32.const 9) - (i32.const 24) - (i32.const 4) - ) - ) - (if - (i32.ne - (get_global $memmove/dest) - (i32.const 9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 55) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 8) - ) - (i64.const 1229783084848853777) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 56) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memmove/dest - (call $memmove/memmove - (i32.const 8) - (i32.const 8) - (i32.const 32) - ) - ) - (if - (i32.ne - (get_global $memmove/dest) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 59) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 8) - ) - (i64.const 1229783084848853777) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 60) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 16) - ) - (i64.const 2459565876494606882) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 61) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 24) - ) - (i64.const 3689348814741910323) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 62) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 32) - ) - (i64.const 4919131752989213764) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 63) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memmove/dest - (call $memmove/memmove - (i32.const 13) - (i32.const 36) - (i32.const 3) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 8) - ) - (i64.const 4919131679688438545) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 66) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memmove/dest - (call $memmove/memmove - (i32.const 16) - (i32.const 24) - (i32.const 15) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 8) - ) - (i64.const 4919131679688438545) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 69) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 16) - ) - (i64.const 3689348814741910323) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 70) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 24) - ) - (i64.const 3694152654344438852) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 71) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (i64.load - (i32.const 32) - ) - (i64.const 4919131752989213764) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 72) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 2 ;) (type $v) + i32.const 8 + i64.const 1229782938247303441 + i64.store + i32.const 16 + i64.const 2459565876494606882 + i64.store + i32.const 24 + i64.const 3689348814741910323 + i64.store + i32.const 32 + i64.const 4919131752989213764 + i64.store + i32.const 9 + i32.const 24 + i32.const 4 + call $memmove/memmove + set_global $memmove/dest + get_global $memmove/dest + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 55 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i64.load + i64.const 1229783084848853777 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 56 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i32.const 8 + i32.const 32 + call $memmove/memmove + set_global $memmove/dest + get_global $memmove/dest + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 59 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i64.load + i64.const 1229783084848853777 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 60 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 16 + i64.load + i64.const 2459565876494606882 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 61 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 24 + i64.load + i64.const 3689348814741910323 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 62 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 32 + i64.load + i64.const 4919131752989213764 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 63 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 13 + i32.const 36 + i32.const 3 + call $memmove/memmove + set_global $memmove/dest + i32.const 8 + i64.load + i64.const 4919131679688438545 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 66 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 16 + i32.const 24 + i32.const 15 + call $memmove/memmove + set_global $memmove/dest + i32.const 8 + i64.load + i64.const 4919131679688438545 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 69 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 16 + i64.load + i64.const 3689348814741910323 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 70 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 24 + i64.load + i64.const 3694152654344438852 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 71 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 32 + i64.load + i64.const 4919131752989213764 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 72 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/memmove.untouched.wat b/tests/compiler/memmove.untouched.wat index 982ea09d..45ca5b6f 100644 --- a/tests/compiler/memmove.untouched.wat +++ b/tests/compiler/memmove.untouched.wat @@ -2,11 +2,11 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\n\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $memmove/base i32 (i32.const 8)) (global $memmove/dest (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 32)) @@ -16,616 +16,434 @@ (func $memmove/memmove (; 1 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (get_local $0) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (get_local $3) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.rem_u - (get_local $1) - (i32.const 8) - ) - (i32.rem_u - (get_local $0) - (i32.const 8) - ) - ) - (block - (block $break|0 - (loop $continue|0 - (if - (i32.rem_u - (get_local $0) - (i32.const 8) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $4) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $4 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $4) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (get_local $2) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $4) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $4 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $4) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.rem_u - (get_local $1) - (i32.const 8) - ) - (i32.rem_u - (get_local $0) - (i32.const 8) - ) - ) - (block - (block $break|3 - (loop $continue|3 - (if - (i32.rem_u - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return - (get_local $3) - ) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (i64.store - (i32.add - (get_local $0) - (get_local $2) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - ) - (get_local $3) + get_local $0 + set_local $3 + get_local $0 + get_local $1 + i32.eq + if + get_local $3 + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 8 + i32.rem_u + get_local $0 + i32.const 8 + i32.rem_u + i32.eq + if + block $break|0 + loop $continue|0 + get_local $0 + i32.const 8 + i32.rem_u + if + block + get_local $2 + i32.eqz + if + get_local $3 + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block (result i32) + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $4 + end + block (result i32) + get_local $1 + tee_local $4 + i32.const 1 + i32.add + set_local $1 + get_local $4 + end + i32.load8_u + i32.store8 + end + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + get_local $2 + if + block + block (result i32) + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $4 + end + block (result i32) + get_local $1 + tee_local $4 + i32.const 1 + i32.add + set_local $1 + get_local $4 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|2 + end + end + end + else + get_local $1 + i32.const 8 + i32.rem_u + get_local $0 + i32.const 8 + i32.rem_u + i32.eq + if + block $break|3 + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.rem_u + if + block + get_local $2 + i32.eqz + if + get_local $3 + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + end + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + end + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end + get_local $3 ) (func $start (; 2 ;) (type $v) - (i64.store - (get_global $memmove/base) - (i64.const 1229782938247303441) - ) - (i64.store - (i32.add - (get_global $memmove/base) - (i32.const 8) - ) - (i64.const 2459565876494606882) - ) - (i64.store - (i32.add - (get_global $memmove/base) - (i32.const 16) - ) - (i64.const 3689348814741910323) - ) - (i64.store - (i32.add - (get_global $memmove/base) - (i32.const 24) - ) - (i64.const 4919131752989213764) - ) - (set_global $memmove/dest - (call $memmove/memmove - (i32.add - (get_global $memmove/base) - (i32.const 1) - ) - (i32.add - (get_global $memmove/base) - (i32.const 16) - ) - (i32.const 4) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $memmove/dest) - (i32.add - (get_global $memmove/base) - (i32.const 1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 55) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (get_global $memmove/base) - ) - (i64.const 1229783084848853777) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 56) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memmove/dest - (call $memmove/memmove - (get_global $memmove/base) - (get_global $memmove/base) - (i32.const 32) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $memmove/dest) - (get_global $memmove/base) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 59) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (get_global $memmove/base) - ) - (i64.const 1229783084848853777) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 60) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memmove/base) - (i32.const 8) - ) - ) - (i64.const 2459565876494606882) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 61) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memmove/base) - (i32.const 16) - ) - ) - (i64.const 3689348814741910323) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 62) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memmove/base) - (i32.const 24) - ) - ) - (i64.const 4919131752989213764) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 63) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memmove/dest - (call $memmove/memmove - (i32.add - (get_global $memmove/base) - (i32.const 5) - ) - (i32.add - (get_global $memmove/base) - (i32.const 28) - ) - (i32.const 3) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (get_global $memmove/base) - ) - (i64.const 4919131679688438545) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 66) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $memmove/dest - (call $memmove/memmove - (i32.add - (get_global $memmove/base) - (i32.const 8) - ) - (i32.add - (get_global $memmove/base) - (i32.const 16) - ) - (i32.const 15) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (get_global $memmove/base) - ) - (i64.const 4919131679688438545) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 69) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memmove/base) - (i32.const 8) - ) - ) - (i64.const 3689348814741910323) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 70) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memmove/base) - (i32.const 16) - ) - ) - (i64.const 3694152654344438852) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 71) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.load - (i32.add - (get_global $memmove/base) - (i32.const 24) - ) - ) - (i64.const 4919131752989213764) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 72) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $memmove/base + i64.const 1229782938247303441 + i64.store + get_global $memmove/base + i32.const 8 + i32.add + i64.const 2459565876494606882 + i64.store + get_global $memmove/base + i32.const 16 + i32.add + i64.const 3689348814741910323 + i64.store + get_global $memmove/base + i32.const 24 + i32.add + i64.const 4919131752989213764 + i64.store + get_global $memmove/base + i32.const 1 + i32.add + get_global $memmove/base + i32.const 16 + i32.add + i32.const 4 + call $memmove/memmove + set_global $memmove/dest + get_global $memmove/dest + get_global $memmove/base + i32.const 1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 55 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + i64.load + i64.const 1229783084848853777 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 56 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + get_global $memmove/base + i32.const 32 + call $memmove/memmove + set_global $memmove/dest + get_global $memmove/dest + get_global $memmove/base + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 59 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + i64.load + i64.const 1229783084848853777 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 60 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + i32.const 8 + i32.add + i64.load + i64.const 2459565876494606882 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 61 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + i32.const 16 + i32.add + i64.load + i64.const 3689348814741910323 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 62 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + i32.const 24 + i32.add + i64.load + i64.const 4919131752989213764 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 63 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + i32.const 5 + i32.add + get_global $memmove/base + i32.const 28 + i32.add + i32.const 3 + call $memmove/memmove + set_global $memmove/dest + get_global $memmove/base + i64.load + i64.const 4919131679688438545 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 66 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + i32.const 8 + i32.add + get_global $memmove/base + i32.const 16 + i32.add + i32.const 15 + call $memmove/memmove + set_global $memmove/dest + get_global $memmove/base + i64.load + i64.const 4919131679688438545 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 69 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + i32.const 8 + i32.add + i64.load + i64.const 3689348814741910323 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 70 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + i32.const 16 + i32.add + i64.load + i64.const 3694152654344438852 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 71 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memmove/base + i32.const 24 + i32.add + i64.load + i64.const 4919131752989213764 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 72 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 3 ;) (type $v) ) diff --git a/tests/compiler/memset.optimized.wat b/tests/compiler/memset.optimized.wat index 21f5a1cc..11af9173 100644 --- a/tests/compiler/memset.optimized.wat +++ b/tests/compiler/memset.optimized.wat @@ -2,486 +2,343 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\t\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $memset/dest (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $memset/memset (; 1 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $memset/memset (; 1 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i64) - (block $folding-inner0 - (set_local $3 - (get_local $0) - ) - (br_if $folding-inner0 - (i32.eqz - (get_local $2) - ) - ) - (i32.store8 - (get_local $3) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $3) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (br_if $folding-inner0 - (i32.le_u - (get_local $2) - (i32.const 2) - ) - ) - (i32.store8 - (i32.add - (get_local $3) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $3) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (tee_local $0 - (i32.add - (get_local $3) - (get_local $2) - ) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (br_if $folding-inner0 - (i32.le_u - (get_local $2) - (i32.const 6) - ) - ) - (i32.store8 - (i32.add - (get_local $3) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $3) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (br_if $folding-inner0 - (i32.le_u - (get_local $2) - (i32.const 8) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (tee_local $4 - (i32.and - (i32.sub - (i32.const 0) - (get_local $3) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $3) - (get_local $4) - ) - ) - (tee_local $1 - (i32.mul - (i32.and - (get_local $1) - (i32.const 255) - ) - (i32.const 16843009) - ) - ) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (get_local $1) - ) - (br_if $folding-inner0 - (i32.le_u - (get_local $2) - (i32.const 8) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (tee_local $4 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 12) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $4) - (i32.const 8) - ) - (get_local $1) - ) - (br_if $folding-inner0 - (i32.le_u - (get_local $2) - (i32.const 24) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (tee_local $4 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 28) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $4) - (i32.const 24) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $4) - (i32.const 20) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $4) - (i32.const 16) - ) - (get_local $1) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $4 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $4) - ) - ) - (set_local $5 - (i64.or - (tee_local $5 - (i64.extend_u/i32 - (get_local $1) - ) - ) - (i64.shl - (get_local $5) - (i64.const 32) - ) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) - (return - (get_local $3) - ) - ) - (get_local $3) + block $folding-inner0 + get_local $0 + set_local $3 + get_local $2 + i32.eqz + br_if $folding-inner0 + get_local $3 + get_local $1 + i32.store8 + get_local $3 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + br_if $folding-inner0 + get_local $3 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $3 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $3 + get_local $2 + i32.add + tee_local $0 + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + br_if $folding-inner0 + get_local $3 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $3 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + br_if $folding-inner0 + get_local $2 + i32.const 0 + get_local $3 + i32.sub + i32.const 3 + i32.and + tee_local $4 + i32.sub + set_local $2 + get_local $3 + get_local $4 + i32.add + tee_local $0 + get_local $1 + i32.const 255 + i32.and + i32.const 16843009 + i32.mul + tee_local $1 + i32.store + get_local $0 + get_local $2 + i32.const -4 + i32.and + tee_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store + get_local $2 + i32.const 8 + i32.le_u + br_if $folding-inner0 + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.store + get_local $0 + get_local $2 + i32.add + tee_local $4 + i32.const 12 + i32.sub + get_local $1 + i32.store + get_local $4 + i32.const 8 + i32.sub + get_local $1 + i32.store + get_local $2 + i32.const 24 + i32.le_u + br_if $folding-inner0 + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $1 + i32.store + get_local $0 + get_local $2 + i32.add + tee_local $4 + i32.const 28 + i32.sub + get_local $1 + i32.store + get_local $4 + i32.const 24 + i32.sub + get_local $1 + i32.store + get_local $4 + i32.const 20 + i32.sub + get_local $1 + i32.store + get_local $4 + i32.const 16 + i32.sub + get_local $1 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $4 + i32.add + set_local $0 + get_local $2 + get_local $4 + i32.sub + set_local $2 + get_local $1 + i64.extend_u/i32 + tee_local $5 + get_local $5 + i64.const 32 + i64.shl + i64.or + set_local $5 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end + get_local $3 + return + end + get_local $3 ) - (func $start (; 2 ;) (; has Stack IR ;) (type $v) - (set_global $memset/dest - (i32.const 32) - ) - (drop - (call $memset/memset - (get_global $memset/dest) - (i32.const 1) - (i32.const 16) - ) - ) - (if - (i32.ne - (i32.load8_u - (get_global $memset/dest) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 72) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u - (i32.add - (get_global $memset/dest) - (i32.const 15) - ) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 73) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $memset/memset - (i32.add - (get_global $memset/dest) - (i32.const 1) - ) - (i32.const 2) - (i32.const 14) - ) - ) - (if - (i32.ne - (i32.load8_u - (get_global $memset/dest) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 77) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u - (i32.add - (get_global $memset/dest) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 78) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u - (i32.add - (get_global $memset/dest) - (i32.const 14) - ) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 79) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u - (i32.add - (get_global $memset/dest) - (i32.const 15) - ) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 80) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 2 ;) (type $v) + i32.const 32 + set_global $memset/dest + get_global $memset/dest + i32.const 1 + i32.const 16 + call $memset/memset + drop + get_global $memset/dest + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 72 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memset/dest + i32.const 15 + i32.add + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 73 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memset/dest + i32.const 1 + i32.add + i32.const 2 + i32.const 14 + call $memset/memset + drop + get_global $memset/dest + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 77 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memset/dest + i32.const 1 + i32.add + i32.load8_u + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 78 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memset/dest + i32.const 14 + i32.add + i32.load8_u + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 79 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memset/dest + i32.const 15 + i32.add + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 80 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/memset.untouched.wat b/tests/compiler/memset.untouched.wat index 615943ea..4d6df259 100644 --- a/tests/compiler/memset.untouched.wat +++ b/tests/compiler/memset.untouched.wat @@ -2,11 +2,11 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\t\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $memset/dest (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 32)) (export "memory" (memory $0)) @@ -17,517 +17,366 @@ (local $4 i32) (local $5 i32) (local $6 i64) - (set_local $3 - (get_local $0) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (get_local $3) - ) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return - (get_local $3) - ) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return - (get_local $3) - ) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return - (get_local $3) - ) - ) - (set_local $4 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $4) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $4) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $5 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $5) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return - (get_local $3) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $5) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $5) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $5) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return - (get_local $3) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $5) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $5) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $5) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $5) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $5) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $5) - ) - (set_local $4 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $4) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $4) - ) - ) - (set_local $6 - (i64.or - (i64.extend_u/i32 - (get_local $5) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $5) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $6) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $6) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $6) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $6) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (get_local $3) + get_local $0 + set_local $3 + get_local $2 + i32.eqz + if + get_local $3 + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + get_local $3 + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + get_local $3 + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + get_local $3 + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $4 + get_local $0 + get_local $4 + i32.add + set_local $0 + get_local $2 + get_local $4 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $5 + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $5 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + get_local $3 + return + end + get_local $0 + i32.const 4 + i32.add + get_local $5 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $5 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $5 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + get_local $3 + return + end + get_local $0 + i32.const 12 + i32.add + get_local $5 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $5 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $5 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $5 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $5 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $5 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $4 + get_local $0 + get_local $4 + i32.add + set_local $0 + get_local $2 + get_local $4 + i32.sub + set_local $2 + get_local $5 + i64.extend_u/i32 + get_local $5 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $6 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $6 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $6 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $6 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $6 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end + get_local $3 ) (func $start (; 2 ;) (type $v) - (set_global $memset/dest - (get_global $HEAP_BASE) - ) - (drop - (call $memset/memset - (get_global $memset/dest) - (i32.const 1) - (i32.const 16) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u - (get_global $memset/dest) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 72) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u - (i32.add - (get_global $memset/dest) - (i32.const 15) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 73) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $memset/memset - (i32.add - (get_global $memset/dest) - (i32.const 1) - ) - (i32.const 2) - (i32.const 14) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u - (get_global $memset/dest) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 77) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u - (i32.add - (get_global $memset/dest) - (i32.const 1) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 78) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u - (i32.add - (get_global $memset/dest) - (i32.const 14) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 79) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u - (i32.add - (get_global $memset/dest) - (i32.const 15) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 80) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $HEAP_BASE + set_global $memset/dest + get_global $memset/dest + i32.const 1 + i32.const 16 + call $memset/memset + drop + get_global $memset/dest + i32.load8_u + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 72 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memset/dest + i32.const 15 + i32.add + i32.load8_u + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 73 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memset/dest + i32.const 1 + i32.add + i32.const 2 + i32.const 14 + call $memset/memset + drop + get_global $memset/dest + i32.load8_u + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 77 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memset/dest + i32.const 1 + i32.add + i32.load8_u + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 78 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memset/dest + i32.const 14 + i32.add + i32.load8_u + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 79 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $memset/dest + i32.const 15 + i32.add + i32.load8_u + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 80 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 3 ;) (type $v) ) diff --git a/tests/compiler/named-export-default.optimized.wat b/tests/compiler/named-export-default.optimized.wat index 4713e582..0187b396 100644 --- a/tests/compiler/named-export-default.optimized.wat +++ b/tests/compiler/named-export-default.optimized.wat @@ -2,15 +2,15 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "default" (func $named-export-default/get3)) - (func $named-export-default/get3 (; 0 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 3) + (func $named-export-default/get3 (; 0 ;) (type $i) (result i32) + i32.const 3 ) - (func $null (; 1 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 1 ;) (type $v) + nop ) ) diff --git a/tests/compiler/named-export-default.untouched.wat b/tests/compiler/named-export-default.untouched.wat index 0bb518db..a29c233a 100644 --- a/tests/compiler/named-export-default.untouched.wat +++ b/tests/compiler/named-export-default.untouched.wat @@ -2,14 +2,14 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) (export "table" (table $0)) (export "default" (func $named-export-default/get3)) (func $named-export-default/get3 (; 0 ;) (type $i) (result i32) - (i32.const 3) + i32.const 3 ) (func $null (; 1 ;) (type $v) ) diff --git a/tests/compiler/named-import-default.optimized.wat b/tests/compiler/named-import-default.optimized.wat index e1d2c8ae..708e1939 100644 --- a/tests/compiler/named-import-default.optimized.wat +++ b/tests/compiler/named-import-default.optimized.wat @@ -2,18 +2,18 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "getValue" (func $named-import-default/getValue)) - (func $named-export-default/get3 (; 0 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 3) + (func $named-export-default/get3 (; 0 ;) (type $i) (result i32) + i32.const 3 ) - (func $named-import-default/getValue (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - (call $named-export-default/get3) + (func $named-import-default/getValue (; 1 ;) (type $i) (result i32) + call $named-export-default/get3 ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/named-import-default.untouched.wat b/tests/compiler/named-import-default.untouched.wat index 2193b8a8..38555cdb 100644 --- a/tests/compiler/named-import-default.untouched.wat +++ b/tests/compiler/named-import-default.untouched.wat @@ -2,17 +2,17 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) (export "table" (table $0)) (export "getValue" (func $named-import-default/getValue)) (func $named-export-default/get3 (; 0 ;) (type $i) (result i32) - (i32.const 3) + i32.const 3 ) (func $named-import-default/getValue (; 1 ;) (type $i) (result i32) - (call $named-export-default/get3) + call $named-export-default/get3 ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/namespace.optimized.wat b/tests/compiler/namespace.optimized.wat index 89e0ef16..eb0e992a 100644 --- a/tests/compiler/namespace.optimized.wat +++ b/tests/compiler/namespace.optimized.wat @@ -2,27 +2,25 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $namespace/Outer.Inner.aVar (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $namespace/Outer.Inner.aFunc (; 0 ;) (; has Stack IR ;) (type $i) (result i32) - (get_global $namespace/Outer.Inner.aVar) + (func $namespace/Outer.Inner.aFunc (; 0 ;) (type $i) (result i32) + get_global $namespace/Outer.Inner.aVar ) - (func $namespace/Joined.anotherFunc (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 3) + (func $namespace/Joined.anotherFunc (; 1 ;) (type $i) (result i32) + i32.const 3 ) - (func $start (; 2 ;) (; has Stack IR ;) (type $v) - (drop - (call $namespace/Outer.Inner.aFunc) - ) - (drop - (call $namespace/Joined.anotherFunc) - ) + (func $start (; 2 ;) (type $v) + call $namespace/Outer.Inner.aFunc + drop + call $namespace/Joined.anotherFunc + drop ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/namespace.untouched.wat b/tests/compiler/namespace.untouched.wat index da9501f5..efa06983 100644 --- a/tests/compiler/namespace.untouched.wat +++ b/tests/compiler/namespace.untouched.wat @@ -2,7 +2,7 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $namespace/Outer.Inner.aVar (mut i32) (i32.const 0)) (global $namespace/Outer.Inner.anEnum.ONE i32 (i32.const 1)) @@ -13,24 +13,20 @@ (export "table" (table $0)) (start $start) (func $namespace/Outer.Inner.aFunc (; 0 ;) (type $i) (result i32) - (get_global $namespace/Outer.Inner.aVar) + get_global $namespace/Outer.Inner.aVar ) (func $namespace/Joined.anotherFunc (; 1 ;) (type $i) (result i32) - (get_global $namespace/Joined.THREE) + get_global $namespace/Joined.THREE ) (func $start (; 2 ;) (type $v) - (drop - (get_global $namespace/Outer.Inner.aVar) - ) - (drop - (call $namespace/Outer.Inner.aFunc) - ) - (drop - (get_global $namespace/Outer.Inner.anEnum.ONE) - ) - (drop - (call $namespace/Joined.anotherFunc) - ) + get_global $namespace/Outer.Inner.aVar + drop + call $namespace/Outer.Inner.aFunc + drop + get_global $namespace/Outer.Inner.anEnum.ONE + drop + call $namespace/Joined.anotherFunc + drop ) (func $null (; 3 ;) (type $v) ) diff --git a/tests/compiler/new-without-allocator.optimized.wat b/tests/compiler/new-without-allocator.optimized.wat index f50152b9..eca558f9 100644 --- a/tests/compiler/new-without-allocator.optimized.wat +++ b/tests/compiler/new-without-allocator.optimized.wat @@ -3,21 +3,20 @@ (type $v (func)) (type $FUNCSIG$i (func (result i32))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "test" (func $new-without-allocator/test)) - (func $~lib/memory/memory.allocate (; 0 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (unreachable) + (func $~lib/memory/memory.allocate (; 0 ;) (type $FUNCSIG$i) (result i32) + unreachable ) - (func $new-without-allocator/test (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - (drop - (call $~lib/memory/memory.allocate) - ) - (i32.const 3) + (func $new-without-allocator/test (; 1 ;) (type $i) (result i32) + call $~lib/memory/memory.allocate + drop + i32.const 3 ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/new-without-allocator.untouched.wat b/tests/compiler/new-without-allocator.untouched.wat index 4ef88a02..88b0d55d 100644 --- a/tests/compiler/new-without-allocator.untouched.wat +++ b/tests/compiler/new-without-allocator.untouched.wat @@ -3,29 +3,26 @@ (type $ii (func (param i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) (export "table" (table $0)) (export "test" (func $new-without-allocator/test)) (func $~lib/memory/memory.allocate (; 0 ;) (type $ii) (param $0 i32) (result i32) - (unreachable) + unreachable ) (func $new-without-allocator/test (; 1 ;) (type $i) (result i32) (local $0 i32) (local $1 i32) - (set_local $1 - (block (result i32) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $0) - ) - ) - (i32.const 3) + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $0 + get_local $0 + end + set_local $1 + i32.const 3 ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 33e19ce5..69529d27 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -5,332 +5,244 @@ (type $v (func)) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0b\00\00\00h\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d") (data (i32.const 40) "\11\00\00\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/memory/memory.allocate (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) + (func $~lib/memory/memory.allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + call $~lib/allocator/arena/__memory_allocate ) - (func $~lib/internal/string/compareUnsafe (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/string/compareUnsafe (; 3 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (get_local $0) - ) - (loop $continue|0 - (if - (tee_local $0 - (if (result i32) - (get_local $2) - (i32.eqz - (tee_local $4 - (i32.sub - (i32.load16_u offset=4 - (get_local $3) - ) - (i32.load16_u offset=4 - (get_local $1) - ) - ) - ) - ) - (get_local $2) - ) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (get_local $4) + get_local $0 + set_local $3 + loop $continue|0 + get_local $2 + if (result i32) + get_local $3 + i32.load16_u offset=4 + get_local $1 + i32.load16_u offset=4 + i32.sub + tee_local $4 + i32.eqz + else + get_local $2 + end + tee_local $0 + if + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $3 + i32.const 1 + i32.add + set_local $3 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $continue|0 + end + end + get_local $4 ) - (func $~lib/string/String.__eq (; 4 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String.__eq (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eq - (get_local $0) - (i32.const 8) - ) - (return - (i32.const 1) - ) - ) - (if - (i32.eqz - (tee_local $1 - (i32.eqz - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.const 0) - ) - ) - (if - (get_local $1) - (return - (i32.const 0) - ) - ) - (if - (i32.ne - (tee_local $1 - (i32.load - (get_local $0) - ) - ) - (i32.load - (i32.const 8) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 8) - (get_local $1) - ) - ) + get_local $0 + i32.const 8 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.eqz + tee_local $1 + i32.eqz + if + i32.const 0 + set_local $1 + end + get_local $1 + if + i32.const 0 + return + end + get_local $0 + i32.load + tee_local $1 + i32.const 8 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + i32.const 8 + get_local $1 + call $~lib/internal/string/compareUnsafe + i32.eqz ) - (func $object-literal/bar (; 5 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (if - (i32.ne - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 9) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 10) - (i32.const 2) - ) - (unreachable) - ) - ) + (func $object-literal/bar (; 5 ;) (type $iv) (param $0 i32) + get_local $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 40 + i32.const 9 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 10 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $object-literal/bar2 (; 6 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (if - (i32.ne - (i32.load - (get_local $0) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 26) - (i32.const 2) - ) - (unreachable) - ) - ) + (func $object-literal/bar2 (; 6 ;) (type $iv) (param $0 i32) + get_local $0 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 40 + i32.const 26 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $object-literal/Foo2#test (; 7 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (if - (i32.ne - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) + (func $object-literal/Foo2#test (; 7 ;) (type $iv) (param $0 i32) + get_local $0 + i32.load + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 40 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end ) - (func $start (; 8 ;) (; has Stack IR ;) (type $v) + (func $start (; 8 ;) (type $v) (local $0 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 80) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.const 1) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 8) - ) - (call $object-literal/bar - (get_local $0) - ) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.const 2) - ) - (call $object-literal/bar2 - (get_local $0) - ) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.const 3) - ) - (call $object-literal/Foo2#test - (get_local $0) - ) + i32.const 80 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 8 + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 1 + i32.store + get_local $0 + i32.const 8 + i32.store offset=4 + get_local $0 + call $object-literal/bar + i32.const 4 + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 2 + i32.store + get_local $0 + call $object-literal/bar2 + i32.const 4 + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 3 + i32.store + get_local $0 + call $object-literal/Foo2#test ) - (func $null (; 9 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 9 ;) (type $v) + nop ) ) diff --git a/tests/compiler/object-literal.untouched.wat b/tests/compiler/object-literal.untouched.wat index b7696b87..f4792729 100644 --- a/tests/compiler/object-literal.untouched.wat +++ b/tests/compiler/object-literal.untouched.wat @@ -5,12 +5,12 @@ (type $iii (func (param i32 i32) (result i32))) (type $iiiiii (func (param i32 i32 i32 i32 i32) (result i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0b\00\00\00h\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00") (data (i32.const 40) "\11\00\00\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -29,392 +29,285 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/memory/memory.allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $~lib/internal/string/compareUnsafe (; 3 ;) (type $iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $5 - (i32.const 0) - ) - (set_local $6 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $4) - (i32.eqz - (tee_local $5 - (i32.sub - (i32.load16_u offset=4 - (get_local $6) - ) - (i32.load16_u offset=4 - (get_local $7) - ) - ) - ) - ) - (get_local $4) - ) - (block - (block - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (get_local $5) + i32.const 0 + set_local $5 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $6 + get_local $2 + get_local $3 + i32.const 1 + i32.shl + i32.add + set_local $7 + block $break|0 + loop $continue|0 + get_local $4 + if (result i32) + get_local $6 + i32.load16_u offset=4 + get_local $7 + i32.load16_u offset=4 + i32.sub + tee_local $5 + i32.eqz + else + get_local $4 + end + if + block + get_local $4 + i32.const 1 + i32.sub + set_local $4 + get_local $6 + i32.const 1 + i32.add + set_local $6 + get_local $7 + i32.const 1 + i32.add + set_local $7 + end + br $continue|0 + end + end + end + get_local $5 ) (func $~lib/string/String.__eq (; 4 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.ne - (get_local $3) - (i32.load - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $3) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.const 0 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $3 + call $~lib/internal/string/compareUnsafe + i32.eqz ) (func $object-literal/bar (; 5 ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (i32.eq - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 9) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (i32.load offset=4 - (get_local $0) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 10) - (i32.const 2) - ) - (unreachable) - ) - ) + get_local $0 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 9 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + i32.const 8 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 10 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $object-literal/bar2 (; 6 ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (i32.eq - (i32.load - (get_local $0) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 26) - (i32.const 2) - ) - (unreachable) - ) - ) + get_local $0 + i32.load + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 26 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $object-literal/Foo2#test (; 7 ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (i32.eq - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) + get_local $0 + i32.load + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end ) (func $start (; 8 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (call $object-literal/bar - (block (result i32) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $0) - (i32.const 1) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 8) - ) - (get_local $0) - ) - ) - (call $object-literal/bar2 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.store - (get_local $1) - (i32.const 2) - ) - (get_local $1) - ) - ) - (call $object-literal/Foo2#test - (block (result i32) - (set_local $2 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.store - (get_local $2) - (i32.const 3) - ) - (get_local $2) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $0 + get_local $0 + i32.const 1 + i32.store + get_local $0 + i32.const 8 + i32.store offset=4 + get_local $0 + end + call $object-literal/bar + block (result i32) + i32.const 4 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 2 + i32.store + get_local $1 + end + call $object-literal/bar2 + block (result i32) + i32.const 4 + call $~lib/memory/memory.allocate + set_local $2 + get_local $2 + i32.const 3 + i32.store + get_local $2 + end + call $object-literal/Foo2#test ) (func $null (; 9 ;) (type $v) ) diff --git a/tests/compiler/overflow.optimized.wat b/tests/compiler/overflow.optimized.wat index cf816ca8..350d5a5f 100644 --- a/tests/compiler/overflow.optimized.wat +++ b/tests/compiler/overflow.optimized.wat @@ -2,11 +2,11 @@ (type $v (func)) (memory $0 1) (data (i32.const 8) "\0b\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $start) (export "memory" (memory $0)) (export "table" (table $0)) - (func $start (; 0 ;) (; has Stack IR ;) (type $v) - (nop) + (func $start (; 0 ;) (type $v) + nop ) ) diff --git a/tests/compiler/overflow.untouched.wat b/tests/compiler/overflow.untouched.wat index 50ba4b1c..b29d6eae 100644 --- a/tests/compiler/overflow.untouched.wat +++ b/tests/compiler/overflow.untouched.wat @@ -1,11 +1,11 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0b\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $HEAP_BASE i32 (i32.const 36)) (export "memory" (memory $0)) (export "table" (table $0)) @@ -14,1076 +14,746 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (block - (set_local $0 - (i32.const 127) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const -128) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 127) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $2 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $2) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const -128) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block (result i32) - (set_local $0 - (i32.sub - (tee_local $2 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $2) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 127) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 19) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const -128) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 22) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 127) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const -128) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (tee_local $0 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 127) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 31) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const -128) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 33) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (block - (set_local $1 - (i32.const 32767) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const -32768) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 32767) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 45) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (block (result i32) - (set_local $1 - (i32.add - (tee_local $2 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $2) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const -32768) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 48) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (block (result i32) - (set_local $1 - (i32.sub - (tee_local $2 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $2) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 32767) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 51) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const -32768) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 54) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 32767) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 57) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const -32768) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 60) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 32767) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 63) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const -32768) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 65) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (block - (set_local $0 - (i32.const 0) - ) - (set_local $0 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 255) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 74) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 77) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block (result i32) - (set_local $0 - (i32.sub - (tee_local $2 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $2) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 255) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 80) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $2 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $2) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 83) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 255) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 86) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 89) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (tee_local $0 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 255) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 92) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 95) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (i32.sub - (get_local $0) - (i32.const 1) - ) - (i32.const 255) - ) - (i32.const 255) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 97) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (block - (set_local $1 - (i32.const 0) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $1) - (i32.const 65535) - ) - (i32.const 65535) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 106) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $1) - (i32.const 65535) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 109) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (block (result i32) - (set_local $1 - (i32.sub - (tee_local $2 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $2) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $1) - (i32.const 65535) - ) - (i32.const 65535) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 112) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (block (result i32) - (set_local $1 - (i32.add - (tee_local $2 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $2) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $1) - (i32.const 65535) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 115) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $1) - (i32.const 65535) - ) - (i32.const 65535) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 118) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $1) - (i32.const 65535) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 121) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $1) - (i32.const 65535) - ) - (i32.const 65535) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 124) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (get_local $1) - (i32.const 65535) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 127) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (i32.sub - (get_local $1) - (i32.const 1) - ) - (i32.const 65535) - ) - (i32.const 65535) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 129) - (i32.const 2) - ) - (unreachable) - ) - ) - ) + block + i32.const 127 + set_local $0 + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.sub + set_local $0 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 127 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block (result i32) + get_local $0 + tee_local $2 + i32.const 1 + i32.add + set_local $0 + get_local $2 + end + set_local $1 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 2 + call $~lib/env/abort + unreachable + end + block (result i32) + get_local $0 + tee_local $2 + i32.const 1 + i32.sub + set_local $0 + get_local $2 + end + set_local $1 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 127 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 19 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 22 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.sub + set_local $0 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 127 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.add + tee_local $0 + set_local $1 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.sub + tee_local $0 + set_local $1 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 127 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 31 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.add + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 33 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + block + i32.const 32767 + set_local $1 + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.sub + set_local $1 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 32767 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 45 + i32.const 2 + call $~lib/env/abort + unreachable + end + block (result i32) + get_local $1 + tee_local $2 + i32.const 1 + i32.add + set_local $1 + get_local $2 + end + set_local $0 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 48 + i32.const 2 + call $~lib/env/abort + unreachable + end + block (result i32) + get_local $1 + tee_local $2 + i32.const 1 + i32.sub + set_local $1 + get_local $2 + end + set_local $0 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 32767 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 51 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 54 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.sub + set_local $1 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 32767 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 57 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 60 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.sub + tee_local $1 + set_local $0 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 32767 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 63 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.add + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 65 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + block + i32.const 0 + set_local $0 + get_local $0 + i32.const 1 + i32.sub + set_local $0 + get_local $0 + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 74 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 77 + i32.const 2 + call $~lib/env/abort + unreachable + end + block (result i32) + get_local $0 + tee_local $2 + i32.const 1 + i32.sub + set_local $0 + get_local $2 + end + set_local $1 + get_local $0 + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 80 + i32.const 2 + call $~lib/env/abort + unreachable + end + block (result i32) + get_local $0 + tee_local $2 + i32.const 1 + i32.add + set_local $0 + get_local $2 + end + set_local $1 + get_local $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 83 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.sub + set_local $0 + get_local $0 + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 86 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 89 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.sub + tee_local $0 + set_local $1 + get_local $0 + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 92 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.add + tee_local $0 + set_local $1 + get_local $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 95 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.sub + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 97 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + block + i32.const 0 + set_local $1 + get_local $1 + i32.const 1 + i32.sub + set_local $1 + get_local $1 + i32.const 65535 + i32.and + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 106 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $1 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 109 + i32.const 2 + call $~lib/env/abort + unreachable + end + block (result i32) + get_local $1 + tee_local $2 + i32.const 1 + i32.sub + set_local $1 + get_local $2 + end + set_local $0 + get_local $1 + i32.const 65535 + i32.and + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 112 + i32.const 2 + call $~lib/env/abort + unreachable + end + block (result i32) + get_local $1 + tee_local $2 + i32.const 1 + i32.add + set_local $1 + get_local $2 + end + set_local $0 + get_local $1 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 115 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.sub + set_local $1 + get_local $1 + i32.const 65535 + i32.and + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 118 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $1 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 121 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.sub + tee_local $1 + set_local $0 + get_local $1 + i32.const 65535 + i32.and + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 124 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 127 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.sub + i32.const 65535 + i32.and + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 129 + i32.const 2 + call $~lib/env/abort + unreachable + end + end ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/portable-conversions.optimized.wat b/tests/compiler/portable-conversions.optimized.wat index 7cbf5122..5f429131 100644 --- a/tests/compiler/portable-conversions.optimized.wat +++ b/tests/compiler/portable-conversions.optimized.wat @@ -1,126 +1,82 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $portable-conversions/f (mut f32) (f32.const 0)) (global $portable-conversions/F (mut f64) (f64.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 0 ;) (; has Stack IR ;) (type $v) - (drop - (i32.trunc_s/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_s/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i32.trunc_s/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_s/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i32.trunc_s/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_s/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i64.trunc_s/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i64.trunc_s/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i32.trunc_s/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_s/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i32.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i32.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i32.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i64.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i64.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i32.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i32.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) + (func $start (; 0 ;) (type $v) + get_global $portable-conversions/f + i32.trunc_s/f32 + drop + get_global $portable-conversions/F + i32.trunc_s/f64 + drop + get_global $portable-conversions/f + i32.trunc_s/f32 + drop + get_global $portable-conversions/F + i32.trunc_s/f64 + drop + get_global $portable-conversions/f + i32.trunc_s/f32 + drop + get_global $portable-conversions/F + i32.trunc_s/f64 + drop + get_global $portable-conversions/f + i64.trunc_s/f32 + drop + get_global $portable-conversions/F + i64.trunc_s/f64 + drop + get_global $portable-conversions/f + i32.trunc_s/f32 + drop + get_global $portable-conversions/F + i32.trunc_s/f64 + drop + get_global $portable-conversions/f + i32.trunc_u/f32 + drop + get_global $portable-conversions/F + i32.trunc_u/f64 + drop + get_global $portable-conversions/f + i32.trunc_u/f32 + drop + get_global $portable-conversions/F + i32.trunc_u/f64 + drop + get_global $portable-conversions/f + i32.trunc_u/f32 + drop + get_global $portable-conversions/F + i32.trunc_u/f64 + drop + get_global $portable-conversions/f + i64.trunc_u/f32 + drop + get_global $portable-conversions/F + i64.trunc_u/f64 + drop + get_global $portable-conversions/f + i32.trunc_u/f32 + drop + get_global $portable-conversions/F + i32.trunc_u/f64 + drop + get_global $portable-conversions/f + i32.trunc_u/f32 + drop + get_global $portable-conversions/F + i32.trunc_u/f64 + drop ) - (func $null (; 1 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 1 ;) (type $v) + nop ) ) diff --git a/tests/compiler/portable-conversions.untouched.wat b/tests/compiler/portable-conversions.untouched.wat index aa4a58c7..1058dc8d 100644 --- a/tests/compiler/portable-conversions.untouched.wat +++ b/tests/compiler/portable-conversions.untouched.wat @@ -1,7 +1,7 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $portable-conversions/i (mut i32) (i32.const 0)) (global $portable-conversions/I (mut i64) (i64.const 0)) @@ -12,240 +12,149 @@ (export "table" (table $0)) (start $start) (func $start (; 0 ;) (type $v) - (drop - (get_global $portable-conversions/i) - ) - (drop - (i32.wrap/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (i32.trunc_s/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_s/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (get_global $portable-conversions/i) - ) - (drop - (i32.wrap/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (i32.trunc_s/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_s/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (get_global $portable-conversions/i) - ) - (drop - (i32.wrap/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (i32.trunc_s/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_s/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i64.extend_s/i32 - (get_global $portable-conversions/i) - ) - ) - (drop - (get_global $portable-conversions/I) - ) - (drop - (i64.trunc_s/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i64.trunc_s/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (get_global $portable-conversions/i) - ) - (drop - (i32.wrap/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (i32.trunc_s/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_s/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (get_global $portable-conversions/i) - ) - (drop - (i32.wrap/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (i32.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (get_global $portable-conversions/i) - ) - (drop - (i32.wrap/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (i32.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (get_global $portable-conversions/i) - ) - (drop - (i32.wrap/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (i32.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (i64.extend_s/i32 - (get_global $portable-conversions/i) - ) - ) - (drop - (get_global $portable-conversions/I) - ) - (drop - (i64.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i64.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (get_global $portable-conversions/i) - ) - (drop - (i32.wrap/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (i32.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (get_global $portable-conversions/i) - ) - (drop - (i32.wrap/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (i32.trunc_u/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (i32.trunc_u/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (f32.convert_s/i32 - (get_global $portable-conversions/i) - ) - ) - (drop - (f32.convert_s/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (get_global $portable-conversions/f) - ) - (drop - (f32.demote/f64 - (get_global $portable-conversions/F) - ) - ) - (drop - (f64.convert_s/i32 - (get_global $portable-conversions/i) - ) - ) - (drop - (f64.convert_s/i64 - (get_global $portable-conversions/I) - ) - ) - (drop - (f64.promote/f32 - (get_global $portable-conversions/f) - ) - ) - (drop - (get_global $portable-conversions/F) - ) + get_global $portable-conversions/i + drop + get_global $portable-conversions/I + i32.wrap/i64 + drop + get_global $portable-conversions/f + i32.trunc_s/f32 + drop + get_global $portable-conversions/F + i32.trunc_s/f64 + drop + get_global $portable-conversions/i + drop + get_global $portable-conversions/I + i32.wrap/i64 + drop + get_global $portable-conversions/f + i32.trunc_s/f32 + drop + get_global $portable-conversions/F + i32.trunc_s/f64 + drop + get_global $portable-conversions/i + drop + get_global $portable-conversions/I + i32.wrap/i64 + drop + get_global $portable-conversions/f + i32.trunc_s/f32 + drop + get_global $portable-conversions/F + i32.trunc_s/f64 + drop + get_global $portable-conversions/i + i64.extend_s/i32 + drop + get_global $portable-conversions/I + drop + get_global $portable-conversions/f + i64.trunc_s/f32 + drop + get_global $portable-conversions/F + i64.trunc_s/f64 + drop + get_global $portable-conversions/i + drop + get_global $portable-conversions/I + i32.wrap/i64 + drop + get_global $portable-conversions/f + i32.trunc_s/f32 + drop + get_global $portable-conversions/F + i32.trunc_s/f64 + drop + get_global $portable-conversions/i + drop + get_global $portable-conversions/I + i32.wrap/i64 + drop + get_global $portable-conversions/f + i32.trunc_u/f32 + drop + get_global $portable-conversions/F + i32.trunc_u/f64 + drop + get_global $portable-conversions/i + drop + get_global $portable-conversions/I + i32.wrap/i64 + drop + get_global $portable-conversions/f + i32.trunc_u/f32 + drop + get_global $portable-conversions/F + i32.trunc_u/f64 + drop + get_global $portable-conversions/i + drop + get_global $portable-conversions/I + i32.wrap/i64 + drop + get_global $portable-conversions/f + i32.trunc_u/f32 + drop + get_global $portable-conversions/F + i32.trunc_u/f64 + drop + get_global $portable-conversions/i + i64.extend_s/i32 + drop + get_global $portable-conversions/I + drop + get_global $portable-conversions/f + i64.trunc_u/f32 + drop + get_global $portable-conversions/F + i64.trunc_u/f64 + drop + get_global $portable-conversions/i + drop + get_global $portable-conversions/I + i32.wrap/i64 + drop + get_global $portable-conversions/f + i32.trunc_u/f32 + drop + get_global $portable-conversions/F + i32.trunc_u/f64 + drop + get_global $portable-conversions/i + drop + get_global $portable-conversions/I + i32.wrap/i64 + drop + get_global $portable-conversions/f + i32.trunc_u/f32 + drop + get_global $portable-conversions/F + i32.trunc_u/f64 + drop + get_global $portable-conversions/i + f32.convert_s/i32 + drop + get_global $portable-conversions/I + f32.convert_s/i64 + drop + get_global $portable-conversions/f + drop + get_global $portable-conversions/F + f32.demote/f64 + drop + get_global $portable-conversions/i + f64.convert_s/i32 + drop + get_global $portable-conversions/I + f64.convert_s/i64 + drop + get_global $portable-conversions/f + f64.promote/f32 + drop + get_global $portable-conversions/F + drop ) (func $null (; 1 ;) (type $v) ) diff --git a/tests/compiler/recursive.optimized.wat b/tests/compiler/recursive.optimized.wat index 5d3f5457..12543f84 100644 --- a/tests/compiler/recursive.optimized.wat +++ b/tests/compiler/recursive.optimized.wat @@ -2,44 +2,35 @@ (type $ii (func (param i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "fib" (func $recursive/fib)) - (func $recursive/fib (; 0 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $recursive/fib (; 0 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.le_s - (get_local $0) - (i32.const 1) - ) - (return - (i32.const 1) - ) - ) - (set_local $1 - (call $recursive/fib - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - ) - (set_local $0 - (call $recursive/fib - (i32.sub - (get_local $0) - (i32.const 2) - ) - ) - ) - (i32.add - (get_local $1) - (get_local $0) - ) + get_local $0 + i32.const 1 + i32.le_s + if + i32.const 1 + return + end + get_local $0 + i32.const 1 + i32.sub + call $recursive/fib + set_local $1 + get_local $0 + i32.const 2 + i32.sub + call $recursive/fib + set_local $0 + get_local $1 + get_local $0 + i32.add ) - (func $null (; 1 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 1 ;) (type $v) + nop ) ) diff --git a/tests/compiler/recursive.untouched.wat b/tests/compiler/recursive.untouched.wat index becf4a9c..272b6ce2 100644 --- a/tests/compiler/recursive.untouched.wat +++ b/tests/compiler/recursive.untouched.wat @@ -2,36 +2,29 @@ (type $ii (func (param i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) (export "table" (table $0)) (export "fib" (func $recursive/fib)) (func $recursive/fib (; 0 ;) (type $ii) (param $0 i32) (result i32) - (if - (i32.le_s - (get_local $0) - (i32.const 1) - ) - (return - (i32.const 1) - ) - ) - (i32.add - (call $recursive/fib - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - (call $recursive/fib - (i32.sub - (get_local $0) - (i32.const 2) - ) - ) - ) + get_local $0 + i32.const 1 + i32.le_s + if + i32.const 1 + return + end + get_local $0 + i32.const 1 + i32.sub + call $recursive/fib + get_local $0 + i32.const 2 + i32.sub + call $recursive/fib + i32.add ) (func $null (; 1 ;) (type $v) ) diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index c1343525..991f6674 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -2,7 +2,7 @@ (type $iii (func (param i32 i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $export/ns.two) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) @@ -21,39 +21,32 @@ (export "rerenamed_sub" (func $export/mul)) (export "renamed_ns.two" (func $export/ns.two)) (start $start) - (func $export/add (; 0 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + (func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.add ) - (func $export/sub (; 1 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + (func $export/sub (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.sub ) - (func $export/mul (; 2 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.mul - (get_local $0) - (get_local $1) - ) + (func $export/mul (; 2 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.mul ) - (func $export/ns.two (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $export/ns.two (; 3 ;) (type $v) + nop ) - (func $start (; 4 ;) (; has Stack IR ;) (type $v) - (drop - (call $export/add - (i32.const 1) - (i32.const 2) - ) - ) - (drop - (call $export/mul - (i32.const 3) - (i32.const 4) - ) - ) + (func $start (; 4 ;) (type $v) + i32.const 1 + i32.const 2 + call $export/add + drop + i32.const 3 + i32.const 4 + call $export/mul + drop ) ) diff --git a/tests/compiler/reexport.untouched.wat b/tests/compiler/reexport.untouched.wat index 39609ada..eee052d9 100644 --- a/tests/compiler/reexport.untouched.wat +++ b/tests/compiler/reexport.untouched.wat @@ -2,7 +2,7 @@ (type $iii (func (param i32 i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) @@ -23,39 +23,32 @@ (export "renamed_ns.two" (func $export/ns.two)) (start $start) (func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $export/sub (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.sub ) (func $export/mul (; 2 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.mul - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.mul ) (func $export/ns.two (; 3 ;) (type $v) - (nop) + nop ) (func $start (; 4 ;) (type $v) - (drop - (i32.add - (call $export/add - (i32.const 1) - (i32.const 2) - ) - (call $export/mul - (i32.const 3) - (i32.const 4) - ) - ) - ) + i32.const 1 + i32.const 2 + call $export/add + i32.const 3 + i32.const 4 + call $export/mul + i32.add + drop ) (func $null (; 5 ;) (type $v) ) diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index 19ec319b..51ad6a42 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -2,7 +2,7 @@ (type $v (func)) (type $FUNCSIG$i (func (result i32))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) @@ -13,21 +13,19 @@ (export "renamed_b" (global $export/b)) (export "renamed_renamed_b" (global $export/b)) (start $start) - (func $export/add (; 0 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const 3) + (func $export/add (; 0 ;) (type $FUNCSIG$i) (result i32) + i32.const 3 ) - (func $export/mul (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const 12) + (func $export/mul (; 1 ;) (type $FUNCSIG$i) (result i32) + i32.const 12 ) - (func $start (; 2 ;) (; has Stack IR ;) (type $v) - (drop - (call $export/add) - ) - (drop - (call $export/mul) - ) + (func $start (; 2 ;) (type $v) + call $export/add + drop + call $export/mul + drop ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/rereexport.untouched.wat b/tests/compiler/rereexport.untouched.wat index 1218096f..a4cbeeec 100644 --- a/tests/compiler/rereexport.untouched.wat +++ b/tests/compiler/rereexport.untouched.wat @@ -2,7 +2,7 @@ (type $iii (func (param i32 i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) @@ -16,30 +16,24 @@ (export "renamed_renamed_b" (global $export/b)) (start $start) (func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $export/mul (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.mul - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.mul ) (func $start (; 2 ;) (type $v) - (drop - (i32.add - (call $export/add - (i32.const 1) - (i32.const 2) - ) - (call $export/mul - (i32.const 3) - (i32.const 4) - ) - ) - ) + i32.const 1 + i32.const 2 + call $export/add + i32.const 3 + i32.const 4 + call $export/mul + i32.add + drop ) (func $null (; 3 ;) (type $v) ) diff --git a/tests/compiler/retain-i32.optimized.wat b/tests/compiler/retain-i32.optimized.wat index 60c84255..43e6992f 100644 --- a/tests/compiler/retain-i32.optimized.wat +++ b/tests/compiler/retain-i32.optimized.wat @@ -2,396 +2,305 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (type $FUNCSIG$v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $retain-i32/si (mut i32) (i32.const 0)) (global $retain-i32/ui (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $retain-i32/test (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (nop) + (func $retain-i32/test (; 1 ;) (type $FUNCSIG$v) + nop ) - (func $start (; 2 ;) (; has Stack IR ;) (type $v) + (func $start (; 2 ;) (type $v) (local $0 i32) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (block $break|0 - (set_local $0 - (i32.const -128) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.gt_s - (get_local $0) - (i32.const 255) - ) - ) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (call $retain-i32/test) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_global $retain-i32/si - (i32.const -1) - ) - (if - (i32.ne - (get_global $retain-i32/si) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 78) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.const -1) - ) - (if - (i32.ne - (get_global $retain-i32/si) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 81) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.const -2) - ) - (if - (i32.ne - (get_global $retain-i32/si) - (i32.const -2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 84) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.const -128) - ) - (if - (i32.ne - (get_global $retain-i32/si) - (i32.const -128) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 87) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.const -128) - ) - (if - (i32.ne - (get_global $retain-i32/si) - (i32.const -128) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 90) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.const -127) - ) - (if - (i32.ne - (get_global $retain-i32/si) - (i32.const -127) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 93) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.const -128) - ) - (if - (i32.ne - (get_global $retain-i32/si) - (i32.const -128) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 96) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.const 1) - ) - (if - (i32.ne - (get_global $retain-i32/si) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 99) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.const 1) - ) - (if - (i32.ne - (get_global $retain-i32/si) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.const 0) - ) - (if - (get_global $retain-i32/si) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 105) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.const 1) - ) - (if - (i32.ne - (get_global $retain-i32/si) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 108) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.const 255) - ) - (if - (i32.ne - (get_global $retain-i32/ui) - (i32.const 255) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 113) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.const 255) - ) - (if - (i32.ne - (get_global $retain-i32/ui) - (i32.const 255) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 116) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.const 254) - ) - (if - (i32.ne - (get_global $retain-i32/ui) - (i32.const 254) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 119) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.const 1) - ) - (if - (i32.ne - (get_global $retain-i32/ui) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 122) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.const 1) - ) - (if - (i32.ne - (get_global $retain-i32/ui) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 125) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.const 1) - ) - (if - (i32.ne - (get_global $retain-i32/ui) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.const 0) - ) - (if - (get_global $retain-i32/ui) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + block $break|0 + i32.const -128 + set_local $0 + loop $repeat|0 + get_local $0 + i32.const 255 + i32.gt_s + br_if $break|0 + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + call $retain-i32/test + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + i32.const -1 + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 78 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1 + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 81 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -2 + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 84 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -128 + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -128 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 87 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -128 + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -128 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 90 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -127 + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -127 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 93 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -128 + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -128 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 96 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $retain-i32/si + get_global $retain-i32/si + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 99 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $retain-i32/si + get_global $retain-i32/si + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 102 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $retain-i32/si + get_global $retain-i32/si + if + i32.const 0 + i32.const 8 + i32.const 105 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $retain-i32/si + get_global $retain-i32/si + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 108 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 113 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 116 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 254 + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 254 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 119 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 122 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 125 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $retain-i32/ui + get_global $retain-i32/ui + if + i32.const 0 + i32.const 8 + i32.const 131 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/retain-i32.untouched.wat b/tests/compiler/retain-i32.untouched.wat index 2d63677f..2c1e153d 100644 --- a/tests/compiler/retain-i32.untouched.wat +++ b/tests/compiler/retain-i32.untouched.wat @@ -2,11 +2,11 @@ (type $iiv (func (param i32 i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127)) (global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128)) (global $~lib/builtins/u8.MAX_VALUE i32 (i32.const 255)) @@ -23,1101 +23,774 @@ (export "table" (table $0)) (start $start) (func $retain-i32/test (; 1 ;) (type $iiv) (param $0 i32) (param $1 i32) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 4) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (i32.sub - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (i32.sub - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (i32.mul - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (i32.mul - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 6) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (i32.and - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (i32.and - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 7) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (i32.or - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (i32.or - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (i32.xor - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (i32.xor - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (i32.shl - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (i32.shl - (get_local $0) - (get_local $1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - (i32.and - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (i32.sub - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - (i32.and - (i32.sub - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 14) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (i32.mul - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - (i32.and - (i32.mul - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 15) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (i32.and - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - (i32.and - (i32.and - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (i32.or - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - (i32.and - (i32.or - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 17) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (i32.xor - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - (i32.and - (i32.xor - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 18) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (i32.shl - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - (i32.and - (i32.shl - (get_local $0) - (get_local $1) - ) - (i32.const 255) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 19) - (i32.const 2) - ) - (unreachable) - ) - ) + get_local $0 + get_local $1 + i32.add + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $0 + get_local $1 + i32.add + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 4 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.sub + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $0 + get_local $1 + i32.sub + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.mul + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $0 + get_local $1 + i32.mul + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 6 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.and + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $0 + get_local $1 + i32.and + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 7 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.or + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $0 + get_local $1 + i32.or + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.xor + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $0 + get_local $1 + i32.xor + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.shl + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $0 + get_local $1 + i32.shl + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.add + i32.const 255 + i32.and + get_local $0 + get_local $1 + i32.add + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.sub + i32.const 255 + i32.and + get_local $0 + get_local $1 + i32.sub + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 14 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.mul + i32.const 255 + i32.and + get_local $0 + get_local $1 + i32.mul + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 15 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.and + i32.const 255 + i32.and + get_local $0 + get_local $1 + i32.and + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.or + i32.const 255 + i32.and + get_local $0 + get_local $1 + i32.or + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 17 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.xor + i32.const 255 + i32.and + get_local $0 + get_local $1 + i32.xor + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 18 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.shl + i32.const 255 + i32.and + get_local $0 + get_local $1 + i32.shl + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 19 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $start (; 2 ;) (type $v) (local $0 i32) - (call $retain-i32/test - (i32.const 0) - (get_global $~lib/builtins/i8.MAX_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MAX_VALUE) - (i32.const 0) - ) - (call $retain-i32/test - (i32.const 1) - (get_global $~lib/builtins/i8.MAX_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MAX_VALUE) - (i32.const 1) - ) - (call $retain-i32/test - (i32.const -1) - (get_global $~lib/builtins/i8.MAX_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MAX_VALUE) - (i32.const -1) - ) - (call $retain-i32/test - (i32.const 0) - (get_global $~lib/builtins/i8.MIN_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MIN_VALUE) - (i32.const 0) - ) - (call $retain-i32/test - (i32.const 1) - (get_global $~lib/builtins/i8.MIN_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MIN_VALUE) - (i32.const 1) - ) - (call $retain-i32/test - (i32.const -1) - (get_global $~lib/builtins/i8.MIN_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MIN_VALUE) - (i32.const -1) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MAX_VALUE) - (get_global $~lib/builtins/i8.MAX_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MIN_VALUE) - (get_global $~lib/builtins/i8.MIN_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MAX_VALUE) - (get_global $~lib/builtins/i8.MIN_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MIN_VALUE) - (get_global $~lib/builtins/i8.MAX_VALUE) - ) - (call $retain-i32/test - (i32.const 0) - (get_global $~lib/builtins/u8.MAX_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/u8.MAX_VALUE) - (i32.const 0) - ) - (call $retain-i32/test - (i32.const 1) - (get_global $~lib/builtins/u8.MAX_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/u8.MAX_VALUE) - (i32.const 1) - ) - (call $retain-i32/test - (i32.const -1) - (get_global $~lib/builtins/u8.MAX_VALUE) - ) - (call $retain-i32/test - (get_global $~lib/builtins/u8.MAX_VALUE) - (i32.const -1) - ) - (call $retain-i32/test - (get_global $~lib/builtins/u8.MAX_VALUE) - (get_global $~lib/builtins/u8.MAX_VALUE) - ) - (block $break|0 - (set_local $0 - (get_global $~lib/builtins/i8.MIN_VALUE) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.le_s - (get_local $0) - (get_global $~lib/builtins/u8.MAX_VALUE) - ) - ) - ) - (block - (call $retain-i32/test - (i32.const 0) - (get_local $0) - ) - (call $retain-i32/test - (i32.const 1) - (get_local $0) - ) - (call $retain-i32/test - (i32.const -1) - (get_local $0) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MIN_VALUE) - (get_local $0) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i8.MAX_VALUE) - (get_local $0) - ) - (call $retain-i32/test - (get_global $~lib/builtins/u8.MAX_VALUE) - (get_local $0) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i16.MIN_VALUE) - (get_local $0) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i16.MAX_VALUE) - (get_local $0) - ) - (call $retain-i32/test - (get_global $~lib/builtins/u16.MAX_VALUE) - (get_local $0) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i32.MAX_VALUE) - (get_local $0) - ) - (call $retain-i32/test - (get_global $~lib/builtins/i32.MIN_VALUE) - (get_local $0) - ) - (call $retain-i32/test - (get_global $~lib/builtins/u32.MAX_VALUE) - (get_local $0) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_global $retain-i32/si - (i32.shr_s - (i32.shl - (i32.add - (i32.add - (i32.const 127) - (i32.const 127) - ) - (i32.const 1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 78) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.shr_s - (i32.shl - (i32.sub - (i32.sub - (i32.const 127) - (i32.const 1) - ) - (i32.const 127) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 81) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.shr_s - (i32.shl - (i32.mul - (i32.const 127) - (i32.const 2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const -2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 84) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.shr_s - (i32.shl - (i32.sub - (i32.const 0) - (i32.const -128) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const -128) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 87) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.shr_s - (i32.shl - (i32.mul - (i32.const -128) - (i32.const -1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const -128) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 90) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.shr_s - (i32.shl - (i32.div_s - (i32.const 127) - (i32.const -1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const -127) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 93) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.shr_s - (i32.shl - (i32.div_s - (i32.const -128) - (i32.const -1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const -128) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 96) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.rem_s - (i32.const 127) - (i32.const 2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 99) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.rem_s - (i32.const 1) - (i32.const 127) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.rem_s - (i32.const -128) - (i32.const 2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 105) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/si - (i32.rem_s - (i32.const 1) - (i32.const -128) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/si) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 108) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.and - (i32.add - (i32.add - (i32.const 255) - (i32.const 255) - ) - (i32.const 1) - ) - (i32.const 255) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/ui) - (i32.const 255) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 113) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.and - (i32.sub - (i32.sub - (i32.const 255) - (i32.const 1) - ) - (i32.const 255) - ) - (i32.const 255) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/ui) - (i32.const 255) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 116) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.and - (i32.mul - (i32.const 255) - (i32.const 2) - ) - (i32.const 255) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/ui) - (i32.const 254) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 119) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.and - (i32.mul - (i32.const 255) - (i32.const 255) - ) - (i32.const 255) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/ui) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 122) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.div_u - (i32.const 255) - (i32.const 255) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/ui) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 125) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.rem_u - (i32.const 255) - (i32.const 2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/ui) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $retain-i32/ui - (i32.rem_u - (i32.const 255) - (i32.const 255) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $retain-i32/ui) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 0 + get_global $~lib/builtins/i8.MAX_VALUE + call $retain-i32/test + get_global $~lib/builtins/i8.MAX_VALUE + i32.const 0 + call $retain-i32/test + i32.const 1 + get_global $~lib/builtins/i8.MAX_VALUE + call $retain-i32/test + get_global $~lib/builtins/i8.MAX_VALUE + i32.const 1 + call $retain-i32/test + i32.const -1 + get_global $~lib/builtins/i8.MAX_VALUE + call $retain-i32/test + get_global $~lib/builtins/i8.MAX_VALUE + i32.const -1 + call $retain-i32/test + i32.const 0 + get_global $~lib/builtins/i8.MIN_VALUE + call $retain-i32/test + get_global $~lib/builtins/i8.MIN_VALUE + i32.const 0 + call $retain-i32/test + i32.const 1 + get_global $~lib/builtins/i8.MIN_VALUE + call $retain-i32/test + get_global $~lib/builtins/i8.MIN_VALUE + i32.const 1 + call $retain-i32/test + i32.const -1 + get_global $~lib/builtins/i8.MIN_VALUE + call $retain-i32/test + get_global $~lib/builtins/i8.MIN_VALUE + i32.const -1 + call $retain-i32/test + get_global $~lib/builtins/i8.MAX_VALUE + get_global $~lib/builtins/i8.MAX_VALUE + call $retain-i32/test + get_global $~lib/builtins/i8.MIN_VALUE + get_global $~lib/builtins/i8.MIN_VALUE + call $retain-i32/test + get_global $~lib/builtins/i8.MAX_VALUE + get_global $~lib/builtins/i8.MIN_VALUE + call $retain-i32/test + get_global $~lib/builtins/i8.MIN_VALUE + get_global $~lib/builtins/i8.MAX_VALUE + call $retain-i32/test + i32.const 0 + get_global $~lib/builtins/u8.MAX_VALUE + call $retain-i32/test + get_global $~lib/builtins/u8.MAX_VALUE + i32.const 0 + call $retain-i32/test + i32.const 1 + get_global $~lib/builtins/u8.MAX_VALUE + call $retain-i32/test + get_global $~lib/builtins/u8.MAX_VALUE + i32.const 1 + call $retain-i32/test + i32.const -1 + get_global $~lib/builtins/u8.MAX_VALUE + call $retain-i32/test + get_global $~lib/builtins/u8.MAX_VALUE + i32.const -1 + call $retain-i32/test + get_global $~lib/builtins/u8.MAX_VALUE + get_global $~lib/builtins/u8.MAX_VALUE + call $retain-i32/test + block $break|0 + get_global $~lib/builtins/i8.MIN_VALUE + set_local $0 + loop $repeat|0 + get_local $0 + get_global $~lib/builtins/u8.MAX_VALUE + i32.le_s + i32.eqz + br_if $break|0 + block + i32.const 0 + get_local $0 + call $retain-i32/test + i32.const 1 + get_local $0 + call $retain-i32/test + i32.const -1 + get_local $0 + call $retain-i32/test + get_global $~lib/builtins/i8.MIN_VALUE + get_local $0 + call $retain-i32/test + get_global $~lib/builtins/i8.MAX_VALUE + get_local $0 + call $retain-i32/test + get_global $~lib/builtins/u8.MAX_VALUE + get_local $0 + call $retain-i32/test + get_global $~lib/builtins/i16.MIN_VALUE + get_local $0 + call $retain-i32/test + get_global $~lib/builtins/i16.MAX_VALUE + get_local $0 + call $retain-i32/test + get_global $~lib/builtins/u16.MAX_VALUE + get_local $0 + call $retain-i32/test + get_global $~lib/builtins/i32.MAX_VALUE + get_local $0 + call $retain-i32/test + get_global $~lib/builtins/i32.MIN_VALUE + get_local $0 + call $retain-i32/test + get_global $~lib/builtins/u32.MAX_VALUE + get_local $0 + call $retain-i32/test + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 127 + i32.const 127 + i32.add + i32.const 1 + i32.add + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 78 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 127 + i32.const 1 + i32.sub + i32.const 127 + i32.sub + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 81 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 127 + i32.const 2 + i32.mul + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 84 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const -128 + i32.sub + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 87 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -128 + i32.const -1 + i32.mul + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 90 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 127 + i32.const -1 + i32.div_s + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -127 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 93 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -128 + i32.const -1 + i32.div_s + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 96 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 127 + i32.const 2 + i32.rem_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 99 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const 127 + i32.rem_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 102 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -128 + i32.const 2 + i32.rem_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 105 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const -128 + i32.rem_s + set_global $retain-i32/si + get_global $retain-i32/si + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 108 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + i32.const 255 + i32.add + i32.const 1 + i32.add + i32.const 255 + i32.and + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 113 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + i32.const 1 + i32.sub + i32.const 255 + i32.sub + i32.const 255 + i32.and + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 116 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + i32.const 2 + i32.mul + i32.const 255 + i32.and + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 254 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 119 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + i32.const 255 + i32.mul + i32.const 255 + i32.and + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 122 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + i32.const 255 + i32.div_u + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 125 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + i32.const 2 + i32.rem_u + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + i32.const 255 + i32.rem_u + set_global $retain-i32/ui + get_global $retain-i32/ui + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 131 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 3 ;) (type $v) ) diff --git a/tests/compiler/scoped.optimized.wat b/tests/compiler/scoped.optimized.wat index 30288148..beebb6d6 100644 --- a/tests/compiler/scoped.optimized.wat +++ b/tests/compiler/scoped.optimized.wat @@ -2,56 +2,51 @@ (type $v (func)) (type $FUNCSIG$v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $scoped/fn (; 0 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (nop) + (func $scoped/fn (; 0 ;) (type $FUNCSIG$v) + nop ) - (func $start (; 1 ;) (; has Stack IR ;) (type $v) + (func $start (; 1 ;) (type $v) (local $0 i32) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $0) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (call $scoped/fn) + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 1 + i32.ge_s + br_if $break|0 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 1 + i32.ge_s + br_if $break|1 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + unreachable + end + unreachable + end + call $scoped/fn ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/scoped.untouched.wat b/tests/compiler/scoped.untouched.wat index ded5ffbb..39b66b3b 100644 --- a/tests/compiler/scoped.untouched.wat +++ b/tests/compiler/scoped.untouched.wat @@ -2,7 +2,7 @@ (type $iv (func (param i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $scoped/aGlobal (mut i32) (i32.const 1)) (global $scoped/aConstant i32 (i32.const 3)) @@ -13,77 +13,63 @@ (start $start) (func $scoped/fn (; 0 ;) (type $iv) (param $0 i32) (local $1 i32) - (set_local $1 - (i32.const 0) - ) - (set_local $1 - (get_local $0) - ) + i32.const 0 + set_local $1 + get_local $0 + set_local $1 ) (func $start (; 1 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i64) (local $3 f32) - (block $break|0 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $0) - (i32.const 1) - ) - ) - ) - (nop) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 1) - ) - ) - ) - (drop - (get_local $1) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (block - (set_local $2 - (i64.const 5) - ) - (set_local $3 - (f32.const 10) - ) - ) - (call $scoped/fn - (i32.const 42) - ) + block $break|0 + i32.const 0 + set_local $0 + loop $repeat|0 + get_local $0 + i32.const 1 + i32.lt_s + i32.eqz + br_if $break|0 + nop + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + block $break|1 + i32.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 1 + i32.lt_s + i32.eqz + br_if $break|1 + get_local $1 + drop + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + block + i64.const 5 + set_local $2 + f32.const 10 + set_local $3 + end + i32.const 42 + call $scoped/fn ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/static-this.optimized.wat b/tests/compiler/static-this.optimized.wat index be72d76f..55f15a88 100644 --- a/tests/compiler/static-this.optimized.wat +++ b/tests/compiler/static-this.optimized.wat @@ -2,36 +2,32 @@ (type $i (func (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0e\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $static-this/Foo.bar (mut i32) (i32.const 42)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $static-this/Foo.getBar (; 1 ;) (; has Stack IR ;) (type $i) (result i32) - (get_global $static-this/Foo.bar) + (func $static-this/Foo.getBar (; 1 ;) (type $i) (result i32) + get_global $static-this/Foo.bar ) - (func $start (; 2 ;) (; has Stack IR ;) (type $v) - (if - (i32.ne - (call $static-this/Foo.getBar) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 2 ;) (type $v) + call $static-this/Foo.getBar + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/static-this.untouched.wat b/tests/compiler/static-this.untouched.wat index 5e8158a1..c7683ef3 100644 --- a/tests/compiler/static-this.untouched.wat +++ b/tests/compiler/static-this.untouched.wat @@ -2,37 +2,32 @@ (type $i (func (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0e\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $static-this/Foo.bar (mut i32) (i32.const 42)) (global $HEAP_BASE i32 (i32.const 40)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $static-this/Foo.getBar (; 1 ;) (type $i) (result i32) - (get_global $static-this/Foo.bar) + get_global $static-this/Foo.bar ) (func $start (; 2 ;) (type $v) - (if - (i32.eqz - (i32.eq - (call $static-this/Foo.getBar) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) + call $static-this/Foo.getBar + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 3 ;) (type $v) ) diff --git a/tests/compiler/std/allocator_arena.optimized.wat b/tests/compiler/std/allocator_arena.optimized.wat index dc5b3938..f48ba883 100644 --- a/tests/compiler/std/allocator_arena.optimized.wat +++ b/tests/compiler/std/allocator_arena.optimized.wat @@ -7,11 +7,11 @@ (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\16\00\00\00s\00t\00d\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00_\00a\00r\00e\00n\00a\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/allocator_arena/ptr1 (mut i32) (i32.const 0)) @@ -20,2269 +20,1537 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (tee_local $1 - (i32.and - (i32.add - (tee_local $0 - (get_global $~lib/allocator/arena/offset) - ) - (i32.const 49) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $2 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $2) - (tee_local $3 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $1) - (get_local $0) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $1) - ) - (get_local $0) + get_global $~lib/allocator/arena/offset + tee_local $0 + i32.const 49 + i32.add + i32.const -8 + i32.and + tee_local $1 + current_memory + tee_local $2 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $2 + get_local $1 + get_local $0 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $3 + get_local $2 + get_local $3 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $1 + set_global $~lib/allocator/arena/offset + get_local $0 ) - (func $~lib/internal/memory/memset (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/internal/memory/memset (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) - (i32.store8 - (get_local $0) - (i32.const 18) - ) - (i32.store8 - (i32.sub - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 42) - ) - ) - (i32.const 1) - ) - (i32.const 18) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 18) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 18) - ) - (i32.store8 - (i32.sub - (get_local $1) - (i32.const 2) - ) - (i32.const 18) - ) - (i32.store8 - (i32.sub - (get_local $1) - (i32.const 3) - ) - (i32.const 18) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 18) - ) - (i32.store8 - (i32.sub - (get_local $1) - (i32.const 4) - ) - (i32.const 18) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (tee_local $1 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.const 303174162) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (i32.sub - (i32.const 42) - (get_local $1) - ) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (i32.const 303174162) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.const 303174162) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.const 303174162) - ) - (i32.store - (i32.sub - (tee_local $1 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 12) - ) - (i32.const 303174162) - ) - (i32.store - (i32.sub - (get_local $1) - (i32.const 8) - ) - (i32.const 303174162) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.const 303174162) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.const 303174162) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (i32.const 303174162) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i32.const 303174162) - ) - (i32.store - (i32.sub - (tee_local $1 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 28) - ) - (i32.const 303174162) - ) - (i32.store - (i32.sub - (get_local $1) - (i32.const 24) - ) - (i32.const 303174162) - ) - (i32.store - (i32.sub - (get_local $1) - (i32.const 20) - ) - (i32.const 303174162) - ) - (i32.store - (i32.sub - (get_local $1) - (i32.const 16) - ) - (i32.const 303174162) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $1 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $1) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (i64.const 1302123111085380114) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i64.const 1302123111085380114) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i64.const 1302123111085380114) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i64.const 1302123111085380114) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $0 + i32.const 18 + i32.store8 + get_local $0 + i32.const 42 + i32.add + tee_local $1 + i32.const 1 + i32.sub + i32.const 18 + i32.store8 + get_local $0 + i32.const 1 + i32.add + i32.const 18 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 18 + i32.store8 + get_local $1 + i32.const 2 + i32.sub + i32.const 18 + i32.store8 + get_local $1 + i32.const 3 + i32.sub + i32.const 18 + i32.store8 + get_local $0 + i32.const 3 + i32.add + i32.const 18 + i32.store8 + get_local $1 + i32.const 4 + i32.sub + i32.const 18 + i32.store8 + get_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $1 + i32.add + tee_local $0 + i32.const 303174162 + i32.store + get_local $0 + i32.const 42 + get_local $1 + i32.sub + i32.const -4 + i32.and + tee_local $2 + i32.add + i32.const 4 + i32.sub + i32.const 303174162 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + i32.const 303174162 + i32.store + get_local $0 + i32.const 8 + i32.add + i32.const 303174162 + i32.store + get_local $0 + get_local $2 + i32.add + tee_local $1 + i32.const 12 + i32.sub + i32.const 303174162 + i32.store + get_local $1 + i32.const 8 + i32.sub + i32.const 303174162 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + i32.const 303174162 + i32.store + get_local $0 + i32.const 16 + i32.add + i32.const 303174162 + i32.store + get_local $0 + i32.const 20 + i32.add + i32.const 303174162 + i32.store + get_local $0 + i32.const 24 + i32.add + i32.const 303174162 + i32.store + get_local $0 + get_local $2 + i32.add + tee_local $1 + i32.const 28 + i32.sub + i32.const 303174162 + i32.store + get_local $1 + i32.const 24 + i32.sub + i32.const 303174162 + i32.store + get_local $1 + i32.const 20 + i32.sub + i32.const 303174162 + i32.store + get_local $1 + i32.const 16 + i32.sub + i32.const 303174162 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $1 + i32.add + set_local $0 + get_local $2 + get_local $1 + i32.sub + set_local $2 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + get_local $0 + i64.const 1302123111085380114 + i64.store + get_local $0 + i32.const 8 + i32.add + i64.const 1302123111085380114 + i64.store + get_local $0 + i32.const 16 + i32.add + i64.const 1302123111085380114 + i64.store + get_local $0 + i32.const 24 + i32.add + i64.const 1302123111085380114 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/internal/memory/memcpy (; 3 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memcpy (; 3 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (loop $continue|0 - (if - (tee_local $3 - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - ) - (block - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (block - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (if - (i32.ne - (tee_local $3 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 1) - ) - (block - (br_if $case1|2 - (i32.eq - (get_local $3) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $3) - (i32.const 3) - ) - ) - (br $break|2) - ) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|3) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|4) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + tee_local $3 + if + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|0 + end + end + get_local $0 + i32.const 3 + i32.and + i32.eqz + if + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|1 + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + get_local $0 + i32.const 3 + i32.and + tee_local $3 + i32.const 1 + i32.ne + if + get_local $3 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $3 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 1 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 5 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 9 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 13 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|3 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 2 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 6 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 10 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 14 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|4 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 3 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 7 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 11 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 15 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|5 + end + end + end + end + get_local $2 + i32.const 16 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end ) - (func $~lib/internal/memory/memmove (; 4 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memmove (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $2 - (i32.const 42) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (i32.eqz - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (i32.const 42) - ) - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.le_u - (i32.add - (get_local $0) - (i32.const 42) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $3) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (i32.const 42) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (get_local $2) - (block - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) + i32.const 42 + set_local $2 + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + i32.const 42 + i32.add + get_local $0 + i32.le_u + tee_local $3 + i32.eqz + if + get_local $0 + i32.const 42 + i32.add + get_local $1 + i32.le_u + set_local $3 + end + get_local $3 + if + get_local $0 + get_local $1 + i32.const 42 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + br $continue|0 + end + end + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + br $continue|1 + end + end + end + loop $continue|2 + get_local $2 + if + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|2 + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|3 + end + end + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 8 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + br $continue|4 + end + end + end + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end ) - (func $~lib/internal/memory/memcmp (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/memory/memcmp (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (set_local $2 - (i32.const 42) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 0) - ) - ) - (loop $continue|0 - (if - (tee_local $3 - (i32.ne - (get_local $2) - (i32.const 0) - ) - ) - (set_local $3 - (i32.eq - (i32.load8_u - (get_local $0) - ) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (if - (get_local $3) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (tee_local $0 - (if (result i32) - (get_local $2) - (i32.sub - (i32.load8_u - (get_local $0) - ) - (i32.load8_u - (get_local $1) - ) - ) - (i32.const 0) - ) - ) + i32.const 42 + set_local $2 + get_local $0 + get_local $1 + i32.eq + if + i32.const 0 + return + end + loop $continue|0 + get_local $2 + i32.const 0 + i32.ne + tee_local $3 + if + get_local $0 + i32.load8_u + get_local $1 + i32.load8_u + i32.eq + set_local $3 + end + get_local $3 + if + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $continue|0 + end + end + get_local $2 + if (result i32) + get_local $0 + i32.load8_u + get_local $1 + i32.load8_u + i32.sub + else + i32.const 0 + end + tee_local $0 ) - (func $~lib/allocator/arena/__memory_free (; 6 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (nop) + (func $~lib/allocator/arena/__memory_free (; 6 ;) (type $FUNCSIG$v) + nop ) - (func $~lib/allocator/arena/__memory_reset (; 7 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) + (func $~lib/allocator/arena/__memory_reset (; 7 ;) (type $v) + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset ) - (func $start (; 8 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.const 56) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/allocator_arena/ptr1 - (call $~lib/allocator/arena/__memory_allocate) - ) - (set_global $std/allocator_arena/ptr2 - (call $~lib/allocator/arena/__memory_allocate) - ) - (if - (i32.eq - (get_global $std/allocator_arena/ptr1) - (get_global $std/allocator_arena/ptr2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/internal/memory/memset - (get_global $std/allocator_arena/ptr1) - ) - (block $break|0 - (set_global $std/allocator_arena/i - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_global $std/allocator_arena/i) - (i32.const 42) - ) - ) - (if - (i32.ne - (i32.load8_u - (i32.add - (get_global $std/allocator_arena/ptr1) - (get_global $std/allocator_arena/i) - ) - ) - (i32.const 18) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 27) - ) - (unreachable) - ) - (block - (set_global $std/allocator_arena/i - (i32.add - (get_global $std/allocator_arena/i) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (call $~lib/internal/memory/memmove - (get_global $std/allocator_arena/ptr2) - (get_global $std/allocator_arena/ptr1) - ) - (block $break|1 - (set_global $std/allocator_arena/i - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_u - (get_global $std/allocator_arena/i) - (i32.const 42) - ) - ) - (if - (i32.ne - (i32.load8_u - (i32.add - (get_global $std/allocator_arena/ptr2) - (get_global $std/allocator_arena/i) - ) - ) - (i32.const 18) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 27) - ) - (unreachable) - ) - (block - (set_global $std/allocator_arena/i - (i32.add - (get_global $std/allocator_arena/i) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (call $~lib/internal/memory/memcmp - (get_global $std/allocator_arena/ptr1) - (get_global $std/allocator_arena/ptr2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - (call $~lib/allocator/arena/__memory_free) - (call $~lib/allocator/arena/__memory_reset) - (set_global $std/allocator_arena/ptr1 - (call $~lib/allocator/arena/__memory_allocate) - ) - (if - (i32.ne - (get_global $std/allocator_arena/ptr1) - (i32.const 56) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 8 ;) (type $v) + i32.const 56 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + call $~lib/allocator/arena/__memory_allocate + set_global $std/allocator_arena/ptr1 + call $~lib/allocator/arena/__memory_allocate + set_global $std/allocator_arena/ptr2 + get_global $std/allocator_arena/ptr1 + get_global $std/allocator_arena/ptr2 + i32.eq + if + i32.const 0 + i32.const 8 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/allocator_arena/ptr1 + call $~lib/internal/memory/memset + block $break|0 + i32.const 0 + set_global $std/allocator_arena/i + loop $repeat|0 + get_global $std/allocator_arena/i + i32.const 42 + i32.ge_u + br_if $break|0 + get_global $std/allocator_arena/ptr1 + get_global $std/allocator_arena/i + i32.add + i32.load8_u + i32.const 18 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 27 + call $~lib/env/abort + unreachable + else + get_global $std/allocator_arena/i + i32.const 1 + i32.add + set_global $std/allocator_arena/i + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_global $std/allocator_arena/ptr2 + get_global $std/allocator_arena/ptr1 + call $~lib/internal/memory/memmove + block $break|1 + i32.const 0 + set_global $std/allocator_arena/i + loop $repeat|1 + get_global $std/allocator_arena/i + i32.const 42 + i32.ge_u + br_if $break|1 + get_global $std/allocator_arena/ptr2 + get_global $std/allocator_arena/i + i32.add + i32.load8_u + i32.const 18 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 27 + call $~lib/env/abort + unreachable + else + get_global $std/allocator_arena/i + i32.const 1 + i32.add + set_global $std/allocator_arena/i + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_global $std/allocator_arena/ptr1 + get_global $std/allocator_arena/ptr2 + call $~lib/internal/memory/memcmp + if + i32.const 0 + i32.const 8 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + call $~lib/allocator/arena/__memory_free + call $~lib/allocator/arena/__memory_reset + call $~lib/allocator/arena/__memory_allocate + set_global $std/allocator_arena/ptr1 + get_global $std/allocator_arena/ptr1 + i32.const 56 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 9 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 9 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/allocator_arena.untouched.wat b/tests/compiler/std/allocator_arena.untouched.wat index d5816a3e..c883c9aa 100644 --- a/tests/compiler/std/allocator_arena.untouched.wat +++ b/tests/compiler/std/allocator_arena.untouched.wat @@ -5,11 +5,11 @@ (type $iiii (func (param i32 i32 i32) (result i32))) (type $iv (func (param i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\16\00\00\00s\00t\00d\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00_\00a\00r\00e\00n\00a\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -31,2856 +31,2032 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/internal/memory/memset (; 2 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/internal/memory/memcpy (; 3 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (block - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $5 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (br_if $case0|2 - (i32.eq - (get_local $5) - (i32.const 1) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $5) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $5) - (i32.const 3) - ) - ) - (br $break|2) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - (br $break|2) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) + block $break|0 + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + if + block + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|0 + end + end + end + get_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + block + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|1 + end + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $0 + i32.const 3 + i32.and + set_local $5 + get_local $5 + i32.const 1 + i32.eq + br_if $case0|2 + get_local $5 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + block $break|3 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + block + get_local $1 + i32.const 1 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 5 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 9 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 13 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|3 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $break|4 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + block + get_local $1 + i32.const 2 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 6 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 10 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 14 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|4 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block $break|5 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + block + get_local $1 + i32.const 3 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 7 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 11 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 15 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|5 + end + end + end + br $break|2 + unreachable + end + unreachable + end + end + get_local $2 + i32.const 16 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end ) (func $~lib/internal/memory/memmove (; 4 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (if (result i32) - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - (get_local $3) - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|0 - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (get_local $2) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|3 - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (i64.store - (i32.add - (get_local $0) - (get_local $2) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + end + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|0 + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + end + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + get_local $2 + if + block + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|2 + end + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|3 + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + end + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + end + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end ) (func $~lib/internal/memory/memcmp (; 5 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 0) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (tee_local $3 - (i32.ne - (get_local $2) - (i32.const 0) - ) - ) - (i32.eq - (i32.load8_u - (get_local $0) - ) - (i32.load8_u - (get_local $1) - ) - ) - (get_local $3) - ) - (block - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.sub - (i32.load8_u - (get_local $0) - ) - (i32.load8_u - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 0 + return + end + block $break|0 + loop $continue|0 + get_local $2 + i32.const 0 + i32.ne + tee_local $3 + if (result i32) + get_local $0 + i32.load8_u + get_local $1 + i32.load8_u + i32.eq + else + get_local $3 + end + if + block + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + set_local $1 + end + br $continue|0 + end + end + end + get_local $2 + if (result i32) + get_local $0 + i32.load8_u + get_local $1 + i32.load8_u + i32.sub + else + i32.const 0 + end ) (func $~lib/allocator/arena/__memory_free (; 6 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $~lib/allocator/arena/__memory_reset (; 7 ;) (type $v) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset ) (func $start (; 8 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/allocator_arena/ptr1 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $0 - (get_global $std/allocator_arena/size) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) - ) - ) - (set_global $std/allocator_arena/ptr2 - (block $~lib/memory/memory.allocate|inlined.1 (result i32) - (set_local $0 - (get_global $std/allocator_arena/size) - ) - (br $~lib/memory/memory.allocate|inlined.1 - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) - ) - ) - (if - (i32.eqz - (i32.ne - (get_global $std/allocator_arena/ptr1) - (get_global $std/allocator_arena/ptr2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $0 - (get_global $std/allocator_arena/ptr1) - ) - (set_local $1 - (i32.const 18) - ) - (set_local $2 - (get_global $std/allocator_arena/size) - ) - (call $~lib/internal/memory/memset - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (block $break|0 - (set_global $std/allocator_arena/i - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_u - (get_global $std/allocator_arena/i) - (get_global $std/allocator_arena/size) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u - (i32.add - (get_global $std/allocator_arena/ptr1) - (get_global $std/allocator_arena/i) - ) - ) - (i32.const 18) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 27) - ) - (unreachable) - ) - ) - (set_global $std/allocator_arena/i - (i32.add - (get_global $std/allocator_arena/i) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $~lib/memory/memory.copy|inlined.0 - (set_local $2 - (get_global $std/allocator_arena/ptr2) - ) - (set_local $1 - (get_global $std/allocator_arena/ptr1) - ) - (set_local $0 - (get_global $std/allocator_arena/size) - ) - (call $~lib/internal/memory/memmove - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - (block $break|1 - (set_global $std/allocator_arena/i - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_u - (get_global $std/allocator_arena/i) - (get_global $std/allocator_arena/size) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u - (i32.add - (get_global $std/allocator_arena/ptr2) - (get_global $std/allocator_arena/i) - ) - ) - (i32.const 18) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 27) - ) - (unreachable) - ) - ) - (set_global $std/allocator_arena/i - (i32.add - (get_global $std/allocator_arena/i) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/memory/memory.compare|inlined.0 (result i32) - (set_local $0 - (get_global $std/allocator_arena/ptr1) - ) - (set_local $1 - (get_global $std/allocator_arena/ptr2) - ) - (set_local $2 - (get_global $std/allocator_arena/size) - ) - (call $~lib/internal/memory/memcmp - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.0 - (set_local $2 - (get_global $std/allocator_arena/ptr1) - ) - (block - (call $~lib/allocator/arena/__memory_free - (get_local $2) - ) - (br $~lib/memory/memory.free|inlined.0) - ) - ) - (block $~lib/memory/memory.free|inlined.1 - (set_local $2 - (get_global $std/allocator_arena/ptr2) - ) - (block - (call $~lib/allocator/arena/__memory_free - (get_local $2) - ) - (br $~lib/memory/memory.free|inlined.1) - ) - ) - (block $~lib/memory/memory.reset|inlined.0 - (block - (call $~lib/allocator/arena/__memory_reset) - (br $~lib/memory/memory.reset|inlined.0) - ) - ) - (set_global $std/allocator_arena/ptr1 - (block $~lib/memory/memory.allocate|inlined.2 (result i32) - (set_local $2 - (get_global $std/allocator_arena/size) - ) - (br $~lib/memory/memory.allocate|inlined.2 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/allocator_arena/ptr1) - (i32.and - (i32.add - (get_global $HEAP_BASE) - (i32.const 7) - ) - (i32.xor - (i32.const 7) - (i32.const -1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_global $std/allocator_arena/size + set_local $0 + get_local $0 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_global $std/allocator_arena/ptr1 + block $~lib/memory/memory.allocate|inlined.1 (result i32) + get_global $std/allocator_arena/size + set_local $0 + get_local $0 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.1 + end + set_global $std/allocator_arena/ptr2 + get_global $std/allocator_arena/ptr1 + get_global $std/allocator_arena/ptr2 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.fill|inlined.0 + get_global $std/allocator_arena/ptr1 + set_local $0 + i32.const 18 + set_local $1 + get_global $std/allocator_arena/size + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memset + end + block $break|0 + i32.const 0 + set_global $std/allocator_arena/i + loop $repeat|0 + get_global $std/allocator_arena/i + get_global $std/allocator_arena/size + i32.lt_u + i32.eqz + br_if $break|0 + get_global $std/allocator_arena/ptr1 + get_global $std/allocator_arena/i + i32.add + i32.load8_u + i32.const 18 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 27 + call $~lib/env/abort + unreachable + end + get_global $std/allocator_arena/i + i32.const 1 + i32.add + set_global $std/allocator_arena/i + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/memory/memory.copy|inlined.0 + get_global $std/allocator_arena/ptr2 + set_local $2 + get_global $std/allocator_arena/ptr1 + set_local $1 + get_global $std/allocator_arena/size + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/internal/memory/memmove + end + block $break|1 + i32.const 0 + set_global $std/allocator_arena/i + loop $repeat|1 + get_global $std/allocator_arena/i + get_global $std/allocator_arena/size + i32.lt_u + i32.eqz + br_if $break|1 + get_global $std/allocator_arena/ptr2 + get_global $std/allocator_arena/i + i32.add + i32.load8_u + i32.const 18 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 27 + call $~lib/env/abort + unreachable + end + get_global $std/allocator_arena/i + i32.const 1 + i32.add + set_global $std/allocator_arena/i + br $repeat|1 + unreachable + end + unreachable + end + block $~lib/memory/memory.compare|inlined.0 (result i32) + get_global $std/allocator_arena/ptr1 + set_local $0 + get_global $std/allocator_arena/ptr2 + set_local $1 + get_global $std/allocator_arena/size + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcmp + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.0 + get_global $std/allocator_arena/ptr1 + set_local $2 + block + get_local $2 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.0 + unreachable + end + unreachable + end + block $~lib/memory/memory.free|inlined.1 + get_global $std/allocator_arena/ptr2 + set_local $2 + block + get_local $2 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.1 + unreachable + end + unreachable + end + block $~lib/memory/memory.reset|inlined.0 + block + call $~lib/allocator/arena/__memory_reset + br $~lib/memory/memory.reset|inlined.0 + unreachable + end + unreachable + end + block $~lib/memory/memory.allocate|inlined.2 (result i32) + get_global $std/allocator_arena/size + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.2 + end + set_global $std/allocator_arena/ptr1 + get_global $std/allocator_arena/ptr1 + get_global $HEAP_BASE + i32.const 7 + i32.add + i32.const 7 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 9 ;) (type $v) ) diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index ba166ce4..6b2cbeeb 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -5,12 +5,12 @@ (type $v (func)) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 16) "\0e\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") (data (i32.const 48) "\04\00\00\00n\00u\00l\00l") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (export "memory" (memory $0)) (export "table" (table $0)) (export "i32ArrayArrayElementAccess" (func $std/array-access/i32ArrayArrayElementAccess)) @@ -18,195 +18,143 @@ (export "stringArrayMethodCall" (func $std/array-access/stringArrayMethodCall)) (export "stringArrayArrayPropertyAccess" (func $std/array-access/stringArrayArrayPropertyAccess)) (export "stringArrayArrayMethodCall" (func $std/array-access/stringArrayArrayMethodCall)) - (func $~lib/array/Array>#__get (; 1 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (tee_local $0 - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - (unreachable) - ) - ) + (func $~lib/array/Array>#__get (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $1 + get_local $0 + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 ) - (func $std/array-access/i32ArrayArrayElementAccess (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/array/Array>#__get - (call $~lib/array/Array>#__get - (get_local $0) - (i32.const 0) - ) - (i32.const 1) - ) + (func $std/array-access/i32ArrayArrayElementAccess (; 2 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 0 + call $~lib/array/Array>#__get + i32.const 1 + call $~lib/array/Array>#__get ) - (func $std/array-access/stringArrayPropertyAccess (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.load - (call $~lib/array/Array>#__get - (get_local $0) - (i32.const 0) - ) - ) + (func $std/array-access/stringArrayPropertyAccess (; 3 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 0 + call $~lib/array/Array>#__get + i32.load ) - (func $~lib/internal/string/compareUnsafe (; 4 ;) (; has Stack IR ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/internal/string/compareUnsafe (; 4 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) - (set_local $1 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (loop $continue|0 - (if - (tee_local $0 - (if (result i32) - (get_local $3) - (i32.eqz - (tee_local $4 - (i32.sub - (i32.load16_u offset=4 - (get_local $1) - ) - (i32.load16_u offset=4 - (get_local $2) - ) - ) - ) - ) - (get_local $3) - ) - ) - (block - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (get_local $4) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $1 + loop $continue|0 + get_local $3 + if (result i32) + get_local $1 + i32.load16_u offset=4 + get_local $2 + i32.load16_u offset=4 + i32.sub + tee_local $4 + i32.eqz + else + get_local $3 + end + tee_local $0 + if + get_local $3 + i32.const 1 + i32.sub + set_local $3 + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $continue|0 + end + end + get_local $4 ) - (func $~lib/string/String#startsWith (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#startsWith (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 16) - (i32.const 244) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.gt_s - (i32.add - (tee_local $2 - (i32.load - (i32.const 8) - ) - ) - (tee_local $3 - (select - (i32.const 0) - (tee_local $1 - (i32.load - (get_local $0) - ) - ) - (i32.lt_s - (i32.const 0) - (get_local $1) - ) - ) - ) - ) - (get_local $1) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $3) - (i32.const 8) - (get_local $2) - ) - ) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 16 + i32.const 244 + i32.const 4 + call $~lib/env/abort + unreachable + end + i32.const 8 + i32.load + tee_local $2 + i32.const 0 + get_local $0 + i32.load + tee_local $1 + i32.const 0 + get_local $1 + i32.lt_s + select + tee_local $3 + i32.add + get_local $1 + i32.gt_s + if + i32.const 0 + return + end + get_local $0 + get_local $3 + i32.const 8 + get_local $2 + call $~lib/internal/string/compareUnsafe + i32.eqz ) - (func $std/array-access/stringArrayMethodCall (; 6 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/string/String#startsWith - (call $~lib/array/Array>#__get - (get_local $0) - (i32.const 0) - ) - ) + (func $std/array-access/stringArrayMethodCall (; 6 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 0 + call $~lib/array/Array>#__get + call $~lib/string/String#startsWith ) - (func $std/array-access/stringArrayArrayPropertyAccess (; 7 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.load - (call $~lib/array/Array>#__get - (call $~lib/array/Array>#__get - (get_local $0) - (i32.const 0) - ) - (i32.const 1) - ) - ) + (func $std/array-access/stringArrayArrayPropertyAccess (; 7 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 0 + call $~lib/array/Array>#__get + i32.const 1 + call $~lib/array/Array>#__get + i32.load ) - (func $std/array-access/stringArrayArrayMethodCall (; 8 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/string/String#startsWith - (call $~lib/array/Array>#__get - (call $~lib/array/Array>#__get - (get_local $0) - (i32.const 0) - ) - (i32.const 1) - ) - ) + (func $std/array-access/stringArrayArrayMethodCall (; 8 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 0 + call $~lib/array/Array>#__get + i32.const 1 + call $~lib/array/Array>#__get + call $~lib/string/String#startsWith ) - (func $null (; 9 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 9 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/array-access.untouched.wat b/tests/compiler/std/array-access.untouched.wat index dd8187c5..7c74d737 100644 --- a/tests/compiler/std/array-access.untouched.wat +++ b/tests/compiler/std/array-access.untouched.wat @@ -5,13 +5,13 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $iiiiii (func (param i32 i32 i32 i32 i32) (result i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\00\00\00\00") (data (i32.const 16) "\0e\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") (data (i32.const 48) "\04\00\00\00n\00u\00l\00l\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -27,185 +27,135 @@ (export "stringArrayArrayMethodCall" (func $std/array-access/stringArrayArrayMethodCall)) (func $~lib/array/Array>#__get (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $~lib/array/Array#__get (; 2 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $std/array-access/i32ArrayArrayElementAccess (; 3 ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/array/Array#__get - (call $~lib/array/Array>#__get - (get_local $0) - (i32.const 0) - ) - (i32.const 1) - ) + get_local $0 + i32.const 0 + call $~lib/array/Array>#__get + i32.const 1 + call $~lib/array/Array#__get ) (func $~lib/array/Array#__get (; 4 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $std/array-access/stringArrayPropertyAccess (; 5 ;) (type $ii) (param $0 i32) (result i32) - (i32.load - (call $~lib/array/Array#__get - (get_local $0) - (i32.const 0) - ) - ) + get_local $0 + i32.const 0 + call $~lib/array/Array#__get + i32.load ) (func $~lib/internal/string/compareUnsafe (; 6 ;) (type $iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $5 - (i32.const 0) - ) - (set_local $6 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $4) - (i32.eqz - (tee_local $5 - (i32.sub - (i32.load16_u offset=4 - (get_local $6) - ) - (i32.load16_u offset=4 - (get_local $7) - ) - ) - ) - ) - (get_local $4) - ) - (block - (block - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (get_local $5) + i32.const 0 + set_local $5 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $6 + get_local $2 + get_local $3 + i32.const 1 + i32.shl + i32.add + set_local $7 + block $break|0 + loop $continue|0 + get_local $4 + if (result i32) + get_local $6 + i32.load16_u offset=4 + get_local $7 + i32.load16_u offset=4 + i32.sub + tee_local $5 + i32.eqz + else + get_local $4 + end + if + block + get_local $4 + i32.const 1 + i32.sub + set_local $4 + get_local $6 + i32.const 1 + i32.add + set_local $6 + get_local $7 + i32.const 1 + i32.add + set_local $7 + end + br $continue|0 + end + end + end + get_local $5 ) (func $~lib/string/String#startsWith (; 7 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -214,156 +164,113 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 16) - (i32.const 244) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (i32.const 48) - ) - ) - (set_local $3 - (get_local $2) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $7 - (select - (tee_local $5 - (select - (tee_local $5 - (get_local $3) - ) - (tee_local $6 - (i32.const 0) - ) - (i32.gt_s - (get_local $5) - (get_local $6) - ) - ) - ) - (tee_local $6 - (get_local $4) - ) - (i32.lt_s - (get_local $5) - (get_local $6) - ) - ) - ) - (set_local $8 - (i32.load - (get_local $1) - ) - ) - (if - (i32.gt_s - (i32.add - (get_local $8) - (get_local $7) - ) - (get_local $4) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $7) - (get_local $1) - (i32.const 0) - (get_local $8) - ) - ) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 16 + i32.const 244 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.eq + if + i32.const 48 + set_local $1 + end + get_local $2 + set_local $3 + get_local $0 + i32.load + set_local $4 + get_local $3 + tee_local $5 + i32.const 0 + tee_local $6 + get_local $5 + get_local $6 + i32.gt_s + select + tee_local $5 + get_local $4 + tee_local $6 + get_local $5 + get_local $6 + i32.lt_s + select + set_local $7 + get_local $1 + i32.load + set_local $8 + get_local $8 + get_local $7 + i32.add + get_local $4 + i32.gt_s + if + i32.const 0 + return + end + get_local $0 + get_local $7 + get_local $1 + i32.const 0 + get_local $8 + call $~lib/internal/string/compareUnsafe + i32.eqz ) (func $std/array-access/stringArrayMethodCall (; 8 ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/string/String#startsWith - (call $~lib/array/Array#__get - (get_local $0) - (i32.const 0) - ) - (i32.const 8) - (i32.const 0) - ) + get_local $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 8 + i32.const 0 + call $~lib/string/String#startsWith ) (func $~lib/array/Array>#__get (; 9 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $std/array-access/stringArrayArrayPropertyAccess (; 10 ;) (type $ii) (param $0 i32) (result i32) - (i32.load - (call $~lib/array/Array#__get - (call $~lib/array/Array>#__get - (get_local $0) - (i32.const 0) - ) - (i32.const 1) - ) - ) + get_local $0 + i32.const 0 + call $~lib/array/Array>#__get + i32.const 1 + call $~lib/array/Array#__get + i32.load ) (func $std/array-access/stringArrayArrayMethodCall (; 11 ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/string/String#startsWith - (call $~lib/array/Array#__get - (call $~lib/array/Array>#__get - (get_local $0) - (i32.const 0) - ) - (i32.const 1) - ) - (i32.const 8) - (i32.const 0) - ) + get_local $0 + i32.const 0 + call $~lib/array/Array>#__get + i32.const 1 + call $~lib/array/Array#__get + i32.const 8 + i32.const 0 + call $~lib/string/String#startsWith ) (func $null (; 12 ;) (type $v) ) diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index a2ae07e7..2fcf3077 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -6,6 +6,7 @@ (type $v (func)) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$i (func (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\03") (data (i32.const 17) "\01\02") @@ -17,9 +18,8 @@ (data (i32.const 128) "x") (data (i32.const 136) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 168) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 128)) @@ -31,1082 +31,782 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/array/Array#__get (; 1 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (tee_local $0 - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.load - (tee_local $0 - (i32.load - (get_local $0) - ) - ) - ) - ) - (i32.load8_s offset=8 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (unreachable) - ) - ) + (func $~lib/array/Array#__get (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $1 + get_local $0 + i32.load + tee_local $0 + i32.load + i32.lt_u + if (result i32) + get_local $0 + get_local $1 + i32.add + i32.load8_s offset=8 + else + unreachable + end + tee_local $0 ) - (func $~lib/array/Array#__get (; 2 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (tee_local $0 - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - (unreachable) - ) - ) + (func $~lib/array/Array#__get (; 2 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $1 + get_local $0 + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 ) - (func $~lib/internal/arraybuffer/computeSize (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - ) - ) + (func $~lib/internal/arraybuffer/computeSize (; 3 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + get_local $0 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl ) - (func $~lib/allocator/arena/__memory_allocate (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/internal/arraybuffer/allocateUnsafe (; 5 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/arraybuffer/allocateUnsafe (; 5 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 168) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 168 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/memory/memory.allocate (; 6 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) + (func $~lib/memory/memory.allocate (; 6 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + call $~lib/allocator/arena/__memory_allocate ) - (func $~lib/internal/memory/memset (; 7 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memset (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $1) - ) - (return) - ) - (i32.store8 - (get_local $0) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $2) - (i32.const 3) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $1 - (i32.and - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 8) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 28) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 16) - ) - (i32.const 0) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i64.const 0) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $1 + i32.eqz + if + return + end + get_local $0 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + get_local $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $2 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $0 + get_local $1 + get_local $2 + i32.sub + i32.const -4 + i32.and + tee_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 8 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 12 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 8 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 16 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 20 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 24 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 28 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 24 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 20 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 16 + i32.sub + i32.const 0 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $2 + i32.add + set_local $0 + get_local $1 + get_local $2 + i32.sub + set_local $1 + loop $continue|0 + get_local $1 + i32.const 32 + i32.ge_u + if + get_local $0 + i64.const 0 + i64.store + get_local $0 + i32.const 8 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 16 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 24 + i32.add + i64.const 0 + i64.store + get_local $1 + i32.const 32 + i32.sub + set_local $1 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/array/Array#constructor (; 8 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#constructor (; 8 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/internal/arraybuffer/allocateUnsafe - (i32.const 3) - ) - ) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 3) - ) - (call $~lib/internal/memory/memset - (i32.add - (get_local $1) - (i32.const 8) - ) - (i32.const 3) - ) - (get_local $0) + i32.const 3 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $1 + i32.const 8 + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 3 + i32.store offset=4 + get_local $1 + i32.const 8 + i32.add + i32.const 3 + call $~lib/internal/memory/memset + get_local $0 ) - (func $~lib/array/Array#__unchecked_set (; 9 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) - (i32.store8 offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (get_local $1) - ) - (get_local $2) - ) + (func $~lib/array/Array#__unchecked_set (; 9 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + get_local $0 + i32.load + get_local $1 + i32.add + get_local $2 + i32.store8 offset=8 ) - (func $~lib/array/Array#constructor (; 10 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#constructor (; 10 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/internal/arraybuffer/allocateUnsafe - (i32.const 12) - ) - ) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 3) - ) - (call $~lib/internal/memory/memset - (i32.add - (get_local $1) - (i32.const 8) - ) - (i32.const 12) - ) - (get_local $0) + i32.const 12 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $1 + i32.const 8 + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 3 + i32.store offset=4 + get_local $1 + i32.const 8 + i32.add + i32.const 12 + call $~lib/internal/memory/memset + get_local $0 ) - (func $~lib/array/Array#__unchecked_set (; 11 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) - (i32.store offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) + (func $~lib/array/Array#__unchecked_set (; 11 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + get_local $0 + i32.load + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 ) - (func $std/array-literal/RefWithCtor#constructor (; 12 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/memory/memory.allocate - (i32.const 0) - ) + (func $std/array-literal/RefWithCtor#constructor (; 12 ;) (type $FUNCSIG$i) (result i32) + i32.const 0 + call $~lib/memory/memory.allocate ) - (func $start (; 13 ;) (; has Stack IR ;) (type $v) + (func $start (; 13 ;) (type $v) (local $0 i32) (local $1 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 232) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (if - (i32.ne - (i32.load - (i32.const 28) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.and - (call $~lib/array/Array#__get - (i32.const 24) - (i32.const 0) - ) - (i32.const 255) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.and - (call $~lib/array/Array#__get - (i32.const 24) - (i32.const 1) - ) - (i32.const 255) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.and - (call $~lib/array/Array#__get - (i32.const 24) - (i32.const 2) - ) - (i32.const 255) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load - (i32.const 116) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/array/Array#__get - (i32.const 112) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (i32.const 112) - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (i32.const 112) - (i32.const 2) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (get_global $std/array-literal/emptyArrayI32) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__unchecked_set - (tee_local $0 - (call $~lib/array/Array#constructor) - ) - (i32.const 0) - (get_global $std/array-literal/i) - ) - (set_global $std/array-literal/i - (i32.add - (get_global $std/array-literal/i) - (i32.const 1) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 1) - (get_global $std/array-literal/i) - ) - (set_global $std/array-literal/i - (i32.add - (get_global $std/array-literal/i) - (i32.const 1) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 2) - (get_global $std/array-literal/i) - ) - (set_global $std/array-literal/dynamicArrayI8 - (get_local $0) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array-literal/dynamicArrayI8) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.and - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI8) - (i32.const 0) - ) - (i32.const 255) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.and - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI8) - (i32.const 1) - ) - (i32.const 255) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.and - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI8) - (i32.const 2) - ) - (i32.const 255) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array-literal/i - (i32.const 0) - ) - (call $~lib/array/Array#__unchecked_set - (tee_local $0 - (call $~lib/array/Array#constructor) - ) - (i32.const 0) - (get_global $std/array-literal/i) - ) - (set_global $std/array-literal/i - (i32.add - (get_global $std/array-literal/i) - (i32.const 1) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 1) - (get_global $std/array-literal/i) - ) - (set_global $std/array-literal/i - (i32.add - (get_global $std/array-literal/i) - (i32.const 1) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 2) - (get_global $std/array-literal/i) - ) - (set_global $std/array-literal/dynamicArrayI32 - (get_local $0) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array-literal/dynamicArrayI32) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 29) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI32) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI32) - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI32) - (i32.const 2) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 32) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_local $1 - (call $~lib/array/Array#constructor) - ) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $1) - (i32.const 0) - (get_local $0) - ) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $1) - (i32.const 1) - (get_local $0) - ) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $1) - (i32.const 2) - (get_local $0) - ) - (set_global $std/array-literal/dynamicArrayRef - (get_local $1) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array-literal/dynamicArrayRef) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 36) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_local $0 - (call $~lib/array/Array#constructor) - ) - (set_local $1 - (call $std/array-literal/RefWithCtor#constructor) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 0) - (get_local $1) - ) - (set_local $1 - (call $std/array-literal/RefWithCtor#constructor) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 1) - (get_local $1) - ) - (set_local $1 - (call $std/array-literal/RefWithCtor#constructor) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 2) - (get_local $1) - ) - (set_global $std/array-literal/dynamicArrayRefWithCtor - (get_local $0) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array-literal/dynamicArrayRefWithCtor) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 232 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 28 + i32.load + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 24 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + if + i32.const 0 + i32.const 32 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 24 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 24 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 116 + i32.load + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 112 + i32.const 0 + call $~lib/array/Array#__get + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 112 + i32.const 1 + call $~lib/array/Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 112 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/emptyArrayI32 + i32.load offset=4 + if + i32.const 0 + i32.const 32 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#constructor + tee_local $0 + i32.const 0 + get_global $std/array-literal/i + call $~lib/array/Array#__unchecked_set + get_global $std/array-literal/i + i32.const 1 + i32.add + set_global $std/array-literal/i + get_local $0 + i32.const 1 + get_global $std/array-literal/i + call $~lib/array/Array#__unchecked_set + get_global $std/array-literal/i + i32.const 1 + i32.add + set_global $std/array-literal/i + get_local $0 + i32.const 2 + get_global $std/array-literal/i + call $~lib/array/Array#__unchecked_set + get_local $0 + set_global $std/array-literal/dynamicArrayI8 + get_global $std/array-literal/dynamicArrayI8 + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI8 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + if + i32.const 0 + i32.const 32 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI8 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI8 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array-literal/i + call $~lib/array/Array#constructor + tee_local $0 + i32.const 0 + get_global $std/array-literal/i + call $~lib/array/Array#__unchecked_set + get_global $std/array-literal/i + i32.const 1 + i32.add + set_global $std/array-literal/i + get_local $0 + i32.const 1 + get_global $std/array-literal/i + call $~lib/array/Array#__unchecked_set + get_global $std/array-literal/i + i32.const 1 + i32.add + set_global $std/array-literal/i + get_local $0 + i32.const 2 + get_global $std/array-literal/i + call $~lib/array/Array#__unchecked_set + get_local $0 + set_global $std/array-literal/dynamicArrayI32 + get_global $std/array-literal/dynamicArrayI32 + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 29 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI32 + i32.const 0 + call $~lib/array/Array#__get + if + i32.const 0 + i32.const 32 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI32 + i32.const 1 + call $~lib/array/Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI32 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 32 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#constructor + set_local $1 + i32.const 0 + call $~lib/memory/memory.allocate + set_local $0 + get_local $1 + i32.const 0 + get_local $0 + call $~lib/array/Array#__unchecked_set + i32.const 0 + call $~lib/memory/memory.allocate + set_local $0 + get_local $1 + i32.const 1 + get_local $0 + call $~lib/array/Array#__unchecked_set + i32.const 0 + call $~lib/memory/memory.allocate + set_local $0 + get_local $1 + i32.const 2 + get_local $0 + call $~lib/array/Array#__unchecked_set + get_local $1 + set_global $std/array-literal/dynamicArrayRef + get_global $std/array-literal/dynamicArrayRef + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 36 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#constructor + set_local $0 + call $std/array-literal/RefWithCtor#constructor + set_local $1 + get_local $0 + i32.const 0 + get_local $1 + call $~lib/array/Array#__unchecked_set + call $std/array-literal/RefWithCtor#constructor + set_local $1 + get_local $0 + i32.const 1 + get_local $1 + call $~lib/array/Array#__unchecked_set + call $std/array-literal/RefWithCtor#constructor + set_local $1 + get_local $0 + i32.const 2 + get_local $1 + call $~lib/array/Array#__unchecked_set + get_local $0 + set_global $std/array-literal/dynamicArrayRefWithCtor + get_global $std/array-literal/dynamicArrayRefWithCtor + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 32 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 14 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 14 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index c89f3d3c..a69e3fba 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -4,6 +4,7 @@ (type $ii (func (param i32) (result i32))) (type $iiiv (func (param i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\03\00\00\00\00\00\00\00\00\01\02\00\00\00\00\00") (data (i32.const 24) "\08\00\00\00\03\00\00\00") @@ -14,9 +15,8 @@ (data (i32.const 128) "x\00\00\00\00\00\00\00") (data (i32.const 136) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 168) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -39,82 +39,59 @@ (start $start) (func $~lib/array/Array#__get (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 0) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load8_s offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 0 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=8 + else + unreachable + end ) (func $~lib/array/Array#__get (; 2 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $~lib/internal/arraybuffer/computeSize (; 3 ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.sub - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/allocator/arena/__memory_allocate (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -123,927 +100,677 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 5 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 168) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $2 - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 168 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_local $0 + call $~lib/internal/arraybuffer/computeSize + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/memory/memory.allocate (; 6 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $~lib/internal/memory/memset (; 7 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/array/Array#constructor (; 8 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 136 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.0 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array#__unchecked_set (; 9 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (i32.store8 offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.const 0 + i32.shl + i32.add + get_local $2 + i32.store8 offset=8 ) (func $~lib/array/Array#constructor (; 10 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.1 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 136 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.1 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array#__unchecked_set (; 11 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 ) (func $~lib/array/Array#constructor (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.2 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 136 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.2 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array#__unchecked_set (; 13 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 ) (func $std/array-literal/RefWithCtor#constructor (; 14 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $1) - ) - ) - ) - ) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + end + tee_local $0 + end + tee_local $0 ) (func $~lib/array/Array#constructor (; 15 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.3 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 136 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.3 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array#__unchecked_set (; 16 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 ) (func $start (; 17 ;) (type $v) (local $0 i32) @@ -1051,631 +778,451 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $0 - (get_global $std/array-literal/staticArrayI8) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (call $~lib/array/Array#__get - (get_global $std/array-literal/staticArrayI8) - (i32.const 0) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (call $~lib/array/Array#__get - (get_global $std/array-literal/staticArrayI8) - (i32.const 1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (call $~lib/array/Array#__get - (get_global $std/array-literal/staticArrayI8) - (i32.const 2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $0 - (get_global $std/array-literal/staticArrayI32) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array-literal/staticArrayI32) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array-literal/staticArrayI32) - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array-literal/staticArrayI32) - (i32.const 2) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.1 (result i32) - (set_local $0 - (get_global $std/array-literal/emptyArrayI32) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array-literal/dynamicArrayI8 - (block (result i32) - (set_local $1 - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 3) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $1) - (i32.const 0) - (get_global $std/array-literal/i) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $1) - (i32.const 1) - (block (result i32) - (set_global $std/array-literal/i - (i32.add - (get_global $std/array-literal/i) - (i32.const 1) - ) - ) - (get_global $std/array-literal/i) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $1) - (i32.const 2) - (block (result i32) - (set_global $std/array-literal/i - (i32.add - (get_global $std/array-literal/i) - (i32.const 1) - ) - ) - (get_global $std/array-literal/i) - ) - ) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.1 (result i32) - (set_local $1 - (get_global $std/array-literal/dynamicArrayI8) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI8) - (i32.const 0) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI8) - (i32.const 1) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI8) - (i32.const 2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array-literal/i - (i32.const 0) - ) - (set_global $std/array-literal/dynamicArrayI32 - (block (result i32) - (set_local $2 - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 3) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $2) - (i32.const 0) - (get_global $std/array-literal/i) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $2) - (i32.const 1) - (block (result i32) - (set_global $std/array-literal/i - (i32.add - (get_global $std/array-literal/i) - (i32.const 1) - ) - ) - (get_global $std/array-literal/i) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $2) - (i32.const 2) - (block (result i32) - (set_global $std/array-literal/i - (i32.add - (get_global $std/array-literal/i) - (i32.const 1) - ) - ) - (get_global $std/array-literal/i) - ) - ) - (get_local $2) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.2 (result i32) - (set_local $2 - (get_global $std/array-literal/dynamicArrayI32) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 29) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI32) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI32) - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array-literal/dynamicArrayI32) - (i32.const 2) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 32) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array-literal/dynamicArrayRef - (block (result i32) - (set_local $3 - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 3) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $3) - (i32.const 0) - (block (result i32) - (set_local $2 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $2) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $3) - (i32.const 1) - (block (result i32) - (set_local $2 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $2) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $3) - (i32.const 2) - (block (result i32) - (set_local $2 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $2) - ) - ) - (get_local $3) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $3 - (get_global $std/array-literal/dynamicArrayRef) - ) - (i32.load offset=4 - (get_local $3) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 36) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array-literal/dynamicArrayRefWithCtor - (block (result i32) - (set_local $4 - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 3) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $4) - (i32.const 0) - (call $std/array-literal/RefWithCtor#constructor - (i32.const 0) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $4) - (i32.const 1) - (call $std/array-literal/RefWithCtor#constructor - (i32.const 0) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $4) - (i32.const 2) - (call $std/array-literal/RefWithCtor#constructor - (i32.const 0) - ) - ) - (get_local $4) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $4 - (get_global $std/array-literal/dynamicArrayRefWithCtor) - ) - (i32.load offset=4 - (get_local $4) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 32) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/array-literal/staticArrayI8 + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/staticArrayI8 + i32.const 0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/staticArrayI8 + i32.const 1 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/staticArrayI8 + i32.const 2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/array-literal/staticArrayI32 + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/staticArrayI32 + i32.const 0 + call $~lib/array/Array#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/staticArrayI32 + i32.const 1 + call $~lib/array/Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/staticArrayI32 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.1 (result i32) + get_global $std/array-literal/emptyArrayI32 + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + i32.const 3 + call $~lib/array/Array#constructor + set_local $1 + get_local $1 + i32.const 0 + get_global $std/array-literal/i + call $~lib/array/Array#__unchecked_set + get_local $1 + i32.const 1 + block (result i32) + get_global $std/array-literal/i + i32.const 1 + i32.add + set_global $std/array-literal/i + get_global $std/array-literal/i + end + call $~lib/array/Array#__unchecked_set + get_local $1 + i32.const 2 + block (result i32) + get_global $std/array-literal/i + i32.const 1 + i32.add + set_global $std/array-literal/i + get_global $std/array-literal/i + end + call $~lib/array/Array#__unchecked_set + get_local $1 + end + set_global $std/array-literal/dynamicArrayI8 + block $~lib/array/Array#get:length|inlined.1 (result i32) + get_global $std/array-literal/dynamicArrayI8 + set_local $1 + get_local $1 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI8 + i32.const 0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI8 + i32.const 1 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI8 + i32.const 2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array-literal/i + block (result i32) + i32.const 0 + i32.const 3 + call $~lib/array/Array#constructor + set_local $2 + get_local $2 + i32.const 0 + get_global $std/array-literal/i + call $~lib/array/Array#__unchecked_set + get_local $2 + i32.const 1 + block (result i32) + get_global $std/array-literal/i + i32.const 1 + i32.add + set_global $std/array-literal/i + get_global $std/array-literal/i + end + call $~lib/array/Array#__unchecked_set + get_local $2 + i32.const 2 + block (result i32) + get_global $std/array-literal/i + i32.const 1 + i32.add + set_global $std/array-literal/i + get_global $std/array-literal/i + end + call $~lib/array/Array#__unchecked_set + get_local $2 + end + set_global $std/array-literal/dynamicArrayI32 + block $~lib/array/Array#get:length|inlined.2 (result i32) + get_global $std/array-literal/dynamicArrayI32 + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 29 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI32 + i32.const 0 + call $~lib/array/Array#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI32 + i32.const 1 + call $~lib/array/Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array-literal/dynamicArrayI32 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 32 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + i32.const 3 + call $~lib/array/Array#constructor + set_local $3 + get_local $3 + i32.const 0 + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $2 + get_local $2 + end + call $~lib/array/Array#__unchecked_set + get_local $3 + i32.const 1 + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $2 + get_local $2 + end + call $~lib/array/Array#__unchecked_set + get_local $3 + i32.const 2 + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $2 + get_local $2 + end + call $~lib/array/Array#__unchecked_set + get_local $3 + end + set_global $std/array-literal/dynamicArrayRef + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/array-literal/dynamicArrayRef + set_local $3 + get_local $3 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 36 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + i32.const 3 + call $~lib/array/Array#constructor + set_local $4 + get_local $4 + i32.const 0 + i32.const 0 + call $std/array-literal/RefWithCtor#constructor + call $~lib/array/Array#__unchecked_set + get_local $4 + i32.const 1 + i32.const 0 + call $std/array-literal/RefWithCtor#constructor + call $~lib/array/Array#__unchecked_set + get_local $4 + i32.const 2 + i32.const 0 + call $std/array-literal/RefWithCtor#constructor + call $~lib/array/Array#__unchecked_set + get_local $4 + end + set_global $std/array-literal/dynamicArrayRefWithCtor + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/array-literal/dynamicArrayRefWithCtor + set_local $4 + get_local $4 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 18 ;) (type $v) ) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index e4a37367..f0806a2d 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -32,6 +32,8 @@ (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$v (func)) (type $FUNCSIG$i (func (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) + (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 40) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") @@ -219,10 +221,8 @@ (data (i32.const 6056) "\98\17\00\00\01") (data (i32.const 6064) "\04\00\00\00\00\00\00\00\a8\17") (data (i32.const 6080) "\b0\17\00\00\01") - (table 56 anyfunc) + (table $0 56 anyfunc) (elem (i32.const 0) $null $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|4 $start~anonymous|3 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|17 $start~anonymous|18 $start~anonymous|17 $start~anonymous|20 $start~anonymous|21 $start~anonymous|22 $start~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|26 $start~anonymous|27 $start~anonymous|28 $start~anonymous|29 $start~anonymous|29 $start~anonymous|31 $start~anonymous|32 $start~anonymous|33 $start~anonymous|29 $start~anonymous|35 $start~anonymous|29 $start~anonymous|29 $start~anonymous|31 $start~anonymous|32 $start~anonymous|33 $start~anonymous|29 $start~anonymous|35 $~lib/array/Array#sort|trampoline~anonymous|43 $~lib/array/Array#sort|trampoline~anonymous|44 $~lib/array/Array#sort|trampoline~anonymous|45 $~lib/array/Array#sort|trampoline~anonymous|46 $~lib/array/Array#sort|trampoline~anonymous|45 $~lib/array/Array#sort|trampoline~anonymous|45 $start~anonymous|49 $~lib/array/Array#sort|trampoline~anonymous|45 $start~anonymous|49 $start~anonymous|52 $start~anonymous|53 $start~anonymous|54 $start~anonymous|54) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) - (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $~lib/internal/number/_K (mut i32) (i32.const 0)) @@ -278,8095 +278,5771 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/internal/arraybuffer/computeSize (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - ) - ) + (func $~lib/internal/arraybuffer/computeSize (; 2 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + get_local $0 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl ) - (func $~lib/allocator/arena/__memory_allocate (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/internal/arraybuffer/allocateUnsafe (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/arraybuffer/allocateUnsafe (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 40 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/memory/memory.allocate (; 5 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) + (func $~lib/memory/memory.allocate (; 5 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + call $~lib/allocator/arena/__memory_allocate ) - (func $~lib/internal/memory/memset (; 6 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memset (; 6 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (tee_local $3 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (get_local $3) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (tee_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (tee_local $1 - (i32.mul - (i32.and - (get_local $1) - (i32.const 255) - ) - (i32.const 16843009) - ) - ) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (tee_local $3 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 12) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $3) - (i32.const 8) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (tee_local $3 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 28) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $3) - (i32.const 24) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $3) - (i32.const 20) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $3) - (i32.const 16) - ) - (get_local $1) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $3 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $4 - (i64.or - (tee_local $4 - (i64.extend_u/i32 - (get_local $1) - ) - ) - (i64.shl - (get_local $4) - (i64.const 32) - ) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (get_local $4) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + tee_local $3 + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $3 + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $2 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $3 + i32.sub + set_local $2 + get_local $0 + get_local $3 + i32.add + tee_local $0 + get_local $1 + i32.const 255 + i32.and + i32.const 16843009 + i32.mul + tee_local $1 + i32.store + get_local $0 + get_local $2 + i32.const -4 + i32.and + tee_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.store + get_local $0 + get_local $2 + i32.add + tee_local $3 + i32.const 12 + i32.sub + get_local $1 + i32.store + get_local $3 + i32.const 8 + i32.sub + get_local $1 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $1 + i32.store + get_local $0 + get_local $2 + i32.add + tee_local $3 + i32.const 28 + i32.sub + get_local $1 + i32.store + get_local $3 + i32.const 24 + i32.sub + get_local $1 + i32.store + get_local $3 + i32.const 20 + i32.sub + get_local $1 + i32.store + get_local $3 + i32.const 16 + i32.sub + get_local $1 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $1 + i64.extend_u/i32 + tee_local $4 + get_local $4 + i64.const 32 + i64.shl + i64.or + set_local $4 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + get_local $0 + get_local $4 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/array/Array#constructor (; 7 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (call $~lib/internal/arraybuffer/allocateUnsafe - (tee_local $3 - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store - (get_local $1) - (get_local $2) - ) - (i32.store offset=4 - (get_local $1) - (get_local $0) - ) - (call $~lib/internal/memory/memset - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.const 0) - (get_local $3) - ) - (get_local $1) + get_local $0 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 2 + i32.shl + tee_local $3 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $2 + i32.const 8 + call $~lib/memory/memory.allocate + tee_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + get_local $2 + i32.store + get_local $1 + get_local $0 + i32.store offset=4 + get_local $2 + i32.const 8 + i32.add + i32.const 0 + get_local $3 + call $~lib/internal/memory/memset + get_local $1 ) - (func $~lib/array/Array#fill (; 8 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 8 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $6 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.lt_s - (tee_local $2 - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (select - (tee_local $5 - (i32.add - (get_local $4) - (get_local $2) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - ) - (select - (tee_local $5 - (get_local $2) - ) - (get_local $4) - (i32.lt_s - (get_local $2) - (get_local $4) - ) - ) - ) - ) - (tee_local $3 - (if (result i32) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (select - (tee_local $5 - (i32.add - (get_local $4) - (get_local $3) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - ) - (select - (tee_local $5 - (get_local $3) - ) - (get_local $4) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - (call $~lib/internal/memory/memset - (i32.add - (i32.add - (get_local $6) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $1) - (i32.sub - (get_local $3) - (get_local $2) - ) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $6 + get_local $0 + i32.load offset=4 + set_local $4 + get_local $2 + i32.const 0 + i32.lt_s + if (result i32) + get_local $4 + get_local $2 + i32.add + tee_local $5 + i32.const 0 + get_local $5 + i32.const 0 + i32.gt_s + select + else + get_local $2 + tee_local $5 + get_local $4 + get_local $2 + get_local $4 + i32.lt_s + select + end + tee_local $2 + get_local $3 + i32.const 0 + i32.lt_s + if (result i32) + get_local $4 + get_local $3 + i32.add + tee_local $5 + i32.const 0 + get_local $5 + i32.const 0 + i32.gt_s + select + else + get_local $3 + tee_local $5 + get_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + end + tee_local $3 + i32.lt_s + if + get_local $6 + get_local $2 + i32.add + i32.const 8 + i32.add + get_local $1 + get_local $3 + get_local $2 + i32.sub + call $~lib/internal/memory/memset + end + get_local $0 ) - (func $~lib/array/Array#__get (; 9 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (tee_local $0 - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.load - (tee_local $0 - (i32.load - (get_local $0) - ) - ) - ) - ) - (i32.load8_u offset=8 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (unreachable) - ) - ) + (func $~lib/array/Array#__get (; 9 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $1 + get_local $0 + i32.load + tee_local $0 + i32.load + i32.lt_u + if (result i32) + get_local $0 + get_local $1 + i32.add + i32.load8_u offset=8 + else + unreachable + end + tee_local $0 ) - (func $std/array/isArraysEqual (; 10 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.ne - (tee_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (set_local $4 - (i32.and - (call $~lib/array/Array#__get - (get_local $0) - (get_local $2) - ) - (i32.const 255) - ) - ) - (set_local $5 - (i32.and - (call $~lib/array/Array#__get - (get_local $1) - (get_local $2) - ) - (i32.const 255) - ) - ) - (if - (i32.ne - (get_local $4) - (get_local $5) - ) - (return - (i32.const 0) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (i32.const 1) + get_local $0 + i32.load offset=4 + tee_local $3 + get_local $1 + i32.load offset=4 + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + block $break|0 + loop $repeat|0 + get_local $2 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + set_local $4 + get_local $1 + get_local $2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + set_local $5 + get_local $4 + get_local $5 + i32.ne + if + i32.const 0 + return + else + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + i32.const 1 ) - (func $~lib/array/Array#fill|trampoline (; 11 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#fill|trampoline (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 0) - ) - ) - (set_local $3 - (i32.const 2147483647) - ) - ) - (call $~lib/array/Array#fill - (get_local $0) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $2 + end + i32.const 2147483647 + set_local $3 + end + get_local $0 + get_local $1 + get_local $2 + get_local $3 + call $~lib/array/Array#fill ) - (func $~lib/array/Array#fill (; 12 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 12 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $6 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $2 - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (select - (tee_local $5 - (i32.add - (get_local $4) - (get_local $2) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - ) - (select - (tee_local $5 - (get_local $2) - ) - (get_local $4) - (i32.lt_s - (get_local $2) - (get_local $4) - ) - ) - ) - ) - (set_local $3 - (if (result i32) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (select - (tee_local $5 - (i32.add - (get_local $4) - (get_local $3) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - ) - (select - (tee_local $5 - (get_local $3) - ) - (get_local $4) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $6) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (get_local $1) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $6 + get_local $0 + i32.load offset=4 + set_local $4 + get_local $2 + i32.const 0 + i32.lt_s + if (result i32) + get_local $4 + get_local $2 + i32.add + tee_local $5 + i32.const 0 + get_local $5 + i32.const 0 + i32.gt_s + select + else + get_local $2 + tee_local $5 + get_local $4 + get_local $2 + get_local $4 + i32.lt_s + select + end + set_local $2 + get_local $3 + i32.const 0 + i32.lt_s + if (result i32) + get_local $4 + get_local $3 + i32.add + tee_local $5 + i32.const 0 + get_local $5 + i32.const 0 + i32.gt_s + select + else + get_local $3 + tee_local $5 + get_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + end + set_local $3 + block $break|0 + loop $repeat|0 + get_local $2 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $6 + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store offset=8 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 ) - (func $~lib/array/Array#__get (; 13 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (tee_local $0 - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - (unreachable) - ) - ) + (func $~lib/array/Array#__get (; 13 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $1 + get_local $0 + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 ) - (func $std/array/isArraysEqual (; 14 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 14 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (if - (i32.ne - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $3) - (get_local $2) - ) - ) - (set_local $4 - (call $~lib/array/Array#__get - (get_local $0) - (get_local $3) - ) - ) - (set_local $5 - (call $~lib/array/Array#__get - (get_local $1) - (get_local $3) - ) - ) - (if - (i32.ne - (get_local $4) - (get_local $5) - ) - (return - (i32.const 0) - ) - (block - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (i32.const 1) + get_local $2 + i32.eqz + if + get_local $0 + i32.load offset=4 + tee_local $2 + get_local $1 + i32.load offset=4 + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + end + block $break|0 + loop $repeat|0 + get_local $3 + get_local $2 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $3 + call $~lib/array/Array#__get + set_local $4 + get_local $1 + get_local $3 + call $~lib/array/Array#__get + set_local $5 + get_local $4 + get_local $5 + i32.ne + if + i32.const 0 + return + else + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + i32.const 1 ) - (func $~lib/array/Array#fill|trampoline (; 15 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#fill|trampoline (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 0) - ) - ) - (set_local $3 - (i32.const 2147483647) - ) - ) - (call $~lib/array/Array#fill - (get_local $0) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $2 + end + i32.const 2147483647 + set_local $3 + end + get_local $0 + get_local $1 + get_local $2 + get_local $3 + call $~lib/array/Array#fill ) - (func $std/array/internalCapacity (; 16 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shr_s - (i32.load - (i32.load - (get_local $0) - ) - ) - (i32.const 2) - ) + (func $std/array/internalCapacity (; 16 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.load + i32.const 2 + i32.shr_s ) - (func $~lib/internal/memory/memcpy (; 17 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memcpy (; 17 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (loop $continue|0 - (if - (tee_local $3 - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - ) - (block - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (block - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (if - (i32.ne - (tee_local $3 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 1) - ) - (block - (br_if $case1|2 - (i32.eq - (get_local $3) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $3) - (i32.const 3) - ) - ) - (br $break|2) - ) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|3) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|4) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + tee_local $3 + if + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|0 + end + end + get_local $0 + i32.const 3 + i32.and + i32.eqz + if + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|1 + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + get_local $0 + i32.const 3 + i32.and + tee_local $3 + i32.const 1 + i32.ne + if + get_local $3 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $3 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 1 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 5 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 9 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 13 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|3 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 2 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 6 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 10 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 14 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|4 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 3 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 7 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 11 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 15 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|5 + end + end + end + end + get_local $2 + i32.const 16 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end ) - (func $~lib/internal/memory/memmove (; 18 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memmove (; 18 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (i32.eqz - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $3) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (get_local $2) - (block - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + i32.eqz + if + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + set_local $3 + end + get_local $3 + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + br $continue|0 + end + end + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + br $continue|1 + end + end + end + loop $continue|2 + get_local $2 + if + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|2 + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|3 + end + end + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 8 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + br $continue|4 + end + end + end + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end ) - (func $~lib/internal/arraybuffer/reallocateUnsafe (; 19 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/arraybuffer/reallocateUnsafe (; 19 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_s - (get_local $1) - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (block - (if - (i32.gt_s - (get_local $1) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 37) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/computeSize - (get_local $2) - ) - ) - (if - (i32.le_s - (get_local $1) - (i32.sub - (get_local $3) - (i32.const 8) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $1) - ) - (call $~lib/internal/memory/memset - (i32.add - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $2) - ) - (i32.const 0) - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - ) - (block - (call $~lib/internal/memory/memmove - (i32.add - (tee_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (i32.const 8) - ) - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $2) - ) - (call $~lib/internal/memory/memset - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (get_local $2) - ) - (i32.const 0) - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (return - (get_local $3) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 61) - (i32.const 4) - ) - (unreachable) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (get_local $0) + get_local $1 + get_local $0 + i32.load + tee_local $2 + i32.gt_s + if + get_local $1 + i32.const 1073741816 + i32.gt_s + if + i32.const 0 + i32.const 40 + i32.const 37 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $2 + call $~lib/internal/arraybuffer/computeSize + set_local $3 + get_local $1 + get_local $3 + i32.const 8 + i32.sub + i32.le_s + if + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $2 + i32.add + i32.const 0 + get_local $1 + get_local $2 + i32.sub + call $~lib/internal/memory/memset + else + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + tee_local $3 + i32.const 8 + i32.add + get_local $0 + i32.const 8 + i32.add + get_local $2 + call $~lib/internal/memory/memmove + get_local $3 + i32.const 8 + i32.add + get_local $2 + i32.add + i32.const 0 + get_local $1 + get_local $2 + i32.sub + call $~lib/internal/memory/memset + get_local $3 + return + end + else + get_local $1 + get_local $2 + i32.lt_s + if + get_local $1 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 40 + i32.const 61 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.store + end + end + get_local $0 ) - (func $~lib/array/Array#push (; 20 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 20 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $4 - (i32.add - (tee_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.ge_u - (get_local $3) - (i32.shr_u - (i32.load - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (if - (i32.ge_u - (get_local $3) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 174) - (i32.const 42) - ) - (unreachable) - ) - ) - (set_local $2 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $2) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $2) - ) - ) - ) - (i32.store offset=4 - (get_local $0) - (get_local $4) - ) - (i32.store offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - (get_local $1) - ) - (get_local $4) + get_local $0 + i32.load offset=4 + tee_local $3 + i32.const 1 + i32.add + set_local $4 + get_local $3 + get_local $0 + i32.load + tee_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.ge_u + if + get_local $3 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 8 + i32.const 174 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $2 + get_local $4 + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $2 + get_local $0 + get_local $2 + i32.store + end + get_local $0 + get_local $4 + i32.store offset=4 + get_local $2 + get_local $3 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store offset=8 + get_local $4 ) - (func $~lib/array/Array#pop (; 21 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/array/Array#pop (; 21 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.lt_s - (tee_local $1 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 205) - (i32.const 20) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (get_local $2) + get_local $0 + i32.load offset=4 + tee_local $1 + i32.const 1 + i32.lt_s + if + i32.const 0 + i32.const 8 + i32.const 205 + i32.const 20 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + get_local $1 + i32.const 1 + i32.sub + tee_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + get_local $0 + get_local $1 + i32.store offset=4 + get_local $2 ) - (func $~lib/array/Array#concat (; 22 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#concat (; 22 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $3 - (call $~lib/array/Array#constructor - (i32.add - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (tee_local $4 - (if (result i32) - (get_local $1) - (i32.load offset=4 - (get_local $1) - ) - (i32.const 0) - ) - ) - ) - ) - ) - (if - (get_local $2) - (call $~lib/internal/memory/memmove - (i32.add - (i32.load - (get_local $3) - ) - (i32.const 8) - ) - (i32.add - (i32.load - (get_local $0) - ) - (i32.const 8) - ) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - (if - (get_local $4) - (call $~lib/internal/memory/memmove - (i32.add - (i32.add - (i32.load - (get_local $3) - ) - (i32.const 8) - ) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (i32.add - (i32.load - (get_local $1) - ) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - (get_local $3) + get_local $0 + i32.load offset=4 + tee_local $2 + get_local $1 + if (result i32) + get_local $1 + i32.load offset=4 + else + i32.const 0 + end + tee_local $4 + i32.add + call $~lib/array/Array#constructor + set_local $3 + get_local $2 + if + get_local $3 + i32.load + i32.const 8 + i32.add + get_local $0 + i32.load + i32.const 8 + i32.add + get_local $2 + i32.const 2 + i32.shl + call $~lib/internal/memory/memmove + end + get_local $4 + if + get_local $3 + i32.load + i32.const 8 + i32.add + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.load + i32.const 8 + i32.add + get_local $4 + i32.const 2 + i32.shl + call $~lib/internal/memory/memmove + end + get_local $3 ) - (func $~lib/array/Array#unshift (; 23 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#unshift (; 23 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $3 - (i32.add - (tee_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.ge_u - (get_local $4) - (tee_local $5 - (i32.shr_u - (i32.load - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - ) - (block - (if - (i32.ge_u - (get_local $4) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 295) - (i32.const 42) - ) - (unreachable) - ) - ) - (set_local $5 - (i32.shr_u - (i32.load - (tee_local $2 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (i32.const 2) - ) - ) - (i32.store - (get_local $0) - (get_local $2) - ) - ) - ) - (call $~lib/internal/memory/memmove - (i32.add - (get_local $2) - (i32.const 12) - ) - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.shl - (i32.sub - (get_local $5) - (i32.const 1) - ) - (i32.const 2) - ) - ) - (i32.store offset=8 - (get_local $2) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $3) - ) - (get_local $3) + get_local $0 + i32.load offset=4 + tee_local $4 + i32.const 1 + i32.add + set_local $3 + get_local $4 + get_local $0 + i32.load + tee_local $2 + i32.load + i32.const 2 + i32.shr_u + tee_local $5 + i32.ge_u + if + get_local $4 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 8 + i32.const 295 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $2 + get_local $3 + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + tee_local $2 + i32.load + i32.const 2 + i32.shr_u + set_local $5 + get_local $0 + get_local $2 + i32.store + end + get_local $2 + i32.const 12 + i32.add + get_local $2 + i32.const 8 + i32.add + get_local $5 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + call $~lib/internal/memory/memmove + get_local $2 + get_local $1 + i32.store offset=8 + get_local $0 + get_local $3 + i32.store offset=4 + get_local $3 ) - (func $~lib/array/Array#shift (; 24 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/array/Array#shift (; 24 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.lt_s - (tee_local $1 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 266) - (i32.const 20) - ) - (unreachable) - ) - ) - (set_local $3 - (i32.load offset=8 - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - ) - (call $~lib/internal/memory/memmove - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.add - (get_local $2) - (i32.const 12) - ) - (i32.shl - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (get_local $3) + get_local $0 + i32.load offset=4 + tee_local $1 + i32.const 1 + i32.lt_s + if + i32.const 0 + i32.const 8 + i32.const 266 + i32.const 20 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + tee_local $2 + i32.load offset=8 + set_local $3 + get_local $2 + i32.const 8 + i32.add + get_local $2 + i32.const 12 + i32.add + get_local $1 + i32.const 1 + i32.sub + tee_local $1 + i32.const 2 + i32.shl + call $~lib/internal/memory/memmove + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.const 0 + i32.store offset=8 + get_local $0 + get_local $1 + i32.store offset=4 + get_local $3 ) - (func $~lib/array/Array#reverse (; 25 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/array/Array#reverse (; 25 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $1) - (get_local $2) - ) - ) - (set_local $4 - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (get_local $4) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $3 + block $break|0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + loop $repeat|0 + get_local $1 + get_local $2 + i32.ge_s + br_if $break|0 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $4 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $3 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + i32.store offset=8 + get_local $3 + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $4 + i32.store offset=8 + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 ) - (func $~lib/array/Array#indexOf (; 26 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 26 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (tee_local $3 - (i32.eqz - (tee_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - ) - (set_local $3 - (i32.ge_s - (get_local $2) - (get_local $4) - ) - ) - ) - (if - (get_local $3) - (return - (i32.const -1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (set_local $2 - (select - (tee_local $3 - (i32.add - (get_local $4) - (get_local $2) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - ) - ) - ) - (set_local $0 - (i32.load - (get_local $0) - ) - ) - (loop $continue|0 - (if - (i32.lt_s - (get_local $2) - (get_local $4) - ) - (block - (if - (i32.eq - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - (get_local $1) - ) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const -1) + get_local $0 + i32.load offset=4 + tee_local $4 + i32.eqz + tee_local $3 + i32.eqz + if + get_local $2 + get_local $4 + i32.ge_s + set_local $3 + end + get_local $3 + if + i32.const -1 + return + end + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $4 + get_local $2 + i32.add + tee_local $3 + i32.const 0 + get_local $3 + i32.const 0 + i32.gt_s + select + set_local $2 + end + get_local $0 + i32.load + set_local $0 + loop $continue|0 + get_local $2 + get_local $4 + i32.lt_s + if + get_local $0 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + get_local $1 + i32.eq + if + get_local $2 + return + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $continue|0 + end + end + i32.const -1 ) - (func $~lib/array/Array#splice (; 27 ;) (; has Stack IR ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#splice (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) - (if - (i32.ge_s - (i32.const 1) - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (return) - ) - (call $~lib/internal/memory/memmove - (i32.add - (tee_local $1 - (i32.add - (i32.load - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.const 4) - ) - (i32.add - (get_local $1) - (i32.shl - (i32.add - (tee_local $1 - (select - (i32.const 1) - (tee_local $1 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (i32.lt_s - (i32.const 1) - (get_local $1) - ) - ) - ) - (i32.const 1) - ) - (i32.const 2) - ) - ) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_local $2) - (get_local $1) - ) - ) + i32.const 1 + get_local $0 + i32.load offset=4 + tee_local $2 + i32.ge_s + if + return + end + get_local $0 + i32.load + i32.const 8 + i32.add + tee_local $1 + i32.const 4 + i32.add + get_local $1 + i32.const 1 + get_local $2 + i32.const 1 + i32.sub + tee_local $1 + i32.const 1 + get_local $1 + i32.lt_s + select + tee_local $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.const 2 + i32.shl + call $~lib/internal/memory/memmove + get_local $0 + get_local $2 + get_local $1 + i32.sub + i32.store offset=4 ) - (func $~lib/array/Array#__set (; 28 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 28 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.ge_u - (get_local $1) - (i32.shr_u - (i32.load - (tee_local $3 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) + get_local $1 + get_local $0 + i32.load + tee_local $3 + i32.load + i32.const 2 + i32.shr_u + i32.ge_u + if + get_local $1 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 8 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 ) - (func $start~anonymous|1 (; 29 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.eqz - (get_local $0) - ) + (func $start~anonymous|1 (; 29 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.eqz ) - (func $~lib/array/Array#findIndex (; 30 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 30 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $5 - (i32.load offset=4 - (get_local $0) - ) - ) - (loop $repeat|0 - (if - (tee_local $3 - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - (set_local $3 - (i32.lt_s - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (br_if $break|0 - (i32.eqz - (get_local $3) - ) - ) - (set_global $~argc - (i32.const 3) - ) - (if - (i32.and - (call_indirect (type $iiii) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - (get_local $2) - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (return - (get_local $2) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (i32.const -1) + get_local $0 + i32.load + set_local $4 + block $break|0 + get_local $0 + i32.load offset=4 + set_local $5 + loop $repeat|0 + get_local $2 + get_local $5 + i32.lt_s + tee_local $3 + if + get_local $2 + get_local $0 + i32.load offset=4 + i32.lt_s + set_local $3 + end + get_local $3 + i32.eqz + br_if $break|0 + i32.const 3 + set_global $~argc + get_local $4 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + get_local $2 + get_local $0 + get_local $1 + call_indirect (type $iiii) + i32.const 1 + i32.and + if + get_local $2 + return + else + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + i32.const -1 ) - (func $start~anonymous|2 (; 31 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.eq - (get_local $0) - (i32.const 1) - ) + (func $start~anonymous|2 (; 31 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.const 1 + i32.eq ) - (func $start~anonymous|3 (; 32 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.eq - (get_local $0) - (i32.const 100) - ) + (func $start~anonymous|3 (; 32 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.const 100 + i32.eq ) - (func $start~anonymous|4 (; 33 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (i32.eq - (get_local $0) - (i32.const 100) - ) + (func $start~anonymous|4 (; 33 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_local $0 + i32.const 100 + i32.eq ) - (func $start~anonymous|6 (; 34 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (i32.eq - (get_local $0) - (i32.const 100) - ) + (func $start~anonymous|6 (; 34 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $2 + call $~lib/array/Array#pop + drop + get_local $0 + i32.const 100 + i32.eq ) - (func $start~anonymous|7 (; 35 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.ge_s - (get_local $0) - (i32.const 0) - ) + (func $start~anonymous|7 (; 35 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.const 0 + i32.ge_s ) - (func $~lib/array/Array#every (; 36 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 36 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $5 - (i32.load offset=4 - (get_local $0) - ) - ) - (loop $repeat|0 - (if - (tee_local $3 - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - (set_local $3 - (i32.lt_s - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (br_if $break|0 - (i32.eqz - (get_local $3) - ) - ) - (set_global $~argc - (i32.const 3) - ) - (if - (i32.and - (call_indirect (type $iiii) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - (get_local $2) - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - (return - (i32.const 0) - ) - ) - ) - ) - (i32.const 1) + get_local $0 + i32.load + set_local $4 + block $break|0 + get_local $0 + i32.load offset=4 + set_local $5 + loop $repeat|0 + get_local $2 + get_local $5 + i32.lt_s + tee_local $3 + if + get_local $2 + get_local $0 + i32.load offset=4 + i32.lt_s + set_local $3 + end + get_local $3 + i32.eqz + br_if $break|0 + i32.const 3 + set_global $~argc + get_local $4 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + get_local $2 + get_local $0 + get_local $1 + call_indirect (type $iiii) + i32.const 1 + i32.and + if + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + else + i32.const 0 + return + end + unreachable + unreachable + end + unreachable + end + i32.const 1 ) - (func $start~anonymous|8 (; 37 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.le_s - (get_local $0) - (i32.const 0) - ) + (func $start~anonymous|8 (; 37 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.const 0 + i32.le_s ) - (func $start~anonymous|9 (; 38 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (i32.lt_s - (get_local $0) - (i32.const 10) - ) + (func $start~anonymous|9 (; 38 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_local $0 + i32.const 10 + i32.lt_s ) - (func $start~anonymous|10 (; 39 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.lt_s - (get_local $0) - (i32.const 10) - ) + (func $start~anonymous|10 (; 39 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.const 10 + i32.lt_s ) - (func $start~anonymous|11 (; 40 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (i32.lt_s - (get_local $0) - (i32.const 3) - ) + (func $start~anonymous|11 (; 40 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $2 + call $~lib/array/Array#pop + drop + get_local $0 + i32.const 3 + i32.lt_s ) - (func $start~anonymous|12 (; 41 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.ge_s - (get_local $0) - (i32.const 3) - ) + (func $start~anonymous|12 (; 41 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.const 3 + i32.ge_s ) - (func $~lib/array/Array#some (; 42 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 42 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $5 - (i32.load offset=4 - (get_local $0) - ) - ) - (loop $repeat|0 - (if - (tee_local $3 - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - (set_local $3 - (i32.lt_s - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (br_if $break|0 - (i32.eqz - (get_local $3) - ) - ) - (set_global $~argc - (i32.const 3) - ) - (if - (i32.and - (call_indirect (type $iiii) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - (get_local $2) - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (return - (i32.const 1) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + set_local $4 + block $break|0 + get_local $0 + i32.load offset=4 + set_local $5 + loop $repeat|0 + get_local $2 + get_local $5 + i32.lt_s + tee_local $3 + if + get_local $2 + get_local $0 + i32.load offset=4 + i32.lt_s + set_local $3 + end + get_local $3 + i32.eqz + br_if $break|0 + i32.const 3 + set_global $~argc + get_local $4 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + get_local $2 + get_local $0 + get_local $1 + call_indirect (type $iiii) + i32.const 1 + i32.and + if + i32.const 1 + return + else + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + i32.const 0 ) - (func $start~anonymous|13 (; 43 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.le_s - (get_local $0) - (i32.const -1) - ) + (func $start~anonymous|13 (; 43 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.const -1 + i32.le_s ) - (func $start~anonymous|14 (; 44 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (i32.gt_s - (get_local $0) - (i32.const 10) - ) + (func $start~anonymous|14 (; 44 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_local $0 + i32.const 10 + i32.gt_s ) - (func $start~anonymous|15 (; 45 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.gt_s - (get_local $0) - (i32.const 10) - ) + (func $start~anonymous|15 (; 45 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.const 10 + i32.gt_s ) - (func $start~anonymous|16 (; 46 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (i32.gt_s - (get_local $0) - (i32.const 3) - ) + (func $start~anonymous|16 (; 46 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $2 + call $~lib/array/Array#pop + drop + get_local $0 + i32.const 3 + i32.gt_s ) - (func $start~anonymous|17 (; 47 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) + (func $start~anonymous|17 (; 47 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i ) - (func $~lib/array/Array#forEach (; 48 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 48 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $5 - (i32.load offset=4 - (get_local $0) - ) - ) - (loop $repeat|0 - (if - (tee_local $3 - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - (set_local $3 - (i32.lt_s - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (br_if $break|0 - (i32.eqz - (get_local $3) - ) - ) - (set_global $~argc - (i32.const 3) - ) - (call_indirect (type $iiiv) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - (get_local $2) - (get_local $0) - (get_local $1) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_local $0 + i32.load + set_local $4 + block $break|0 + get_local $0 + i32.load offset=4 + set_local $5 + loop $repeat|0 + get_local $2 + get_local $5 + i32.lt_s + tee_local $3 + if + get_local $2 + get_local $0 + i32.load offset=4 + i32.lt_s + set_local $3 + end + get_local $3 + i32.eqz + br_if $break|0 + i32.const 3 + set_global $~argc + get_local $4 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + get_local $2 + get_local $0 + get_local $1 + call_indirect (type $iiiv) + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $start~anonymous|18 (; 49 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) + (func $start~anonymous|18 (; 49 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i ) - (func $start~anonymous|20 (; 50 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) + (func $start~anonymous|20 (; 50 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + get_local $2 + call $~lib/array/Array#pop + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i ) - (func $start~anonymous|21 (; 51 ;) (; has Stack IR ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) - (f32.convert_s/i32 - (get_local $0) - ) + (func $start~anonymous|21 (; 51 ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + get_local $0 + f32.convert_s/i32 ) - (func $~lib/array/Array#map (; 52 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#map (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (tee_local $5 - (call $~lib/array/Array#constructor - (tee_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (if - (tee_local $2 - (i32.lt_s - (get_local $1) - (get_local $4) - ) - ) - (set_local $2 - (i32.lt_s - (get_local $1) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (br_if $break|0 - (i32.eqz - (get_local $2) - ) - ) - (set_global $~argc - (i32.const 3) - ) - (f32.store offset=8 - (i32.add - (get_local $6) - (tee_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - (call_indirect (type $iiif) - (i32.load offset=8 - (i32.add - (get_local $3) - (get_local $2) - ) - ) - (get_local $1) - (get_local $0) - (i32.const 21) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $5) + get_local $0 + i32.load + set_local $3 + get_local $0 + i32.load offset=4 + tee_local $4 + call $~lib/array/Array#constructor + tee_local $5 + i32.load + set_local $6 + block $break|0 + loop $repeat|0 + get_local $1 + get_local $4 + i32.lt_s + tee_local $2 + if + get_local $1 + get_local $0 + i32.load offset=4 + i32.lt_s + set_local $2 + end + get_local $2 + i32.eqz + br_if $break|0 + i32.const 3 + set_global $~argc + get_local $6 + get_local $1 + i32.const 2 + i32.shl + tee_local $2 + i32.add + get_local $3 + get_local $2 + i32.add + i32.load offset=8 + get_local $1 + get_local $0 + i32.const 21 + call_indirect (type $iiif) + f32.store offset=8 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $5 ) - (func $~lib/array/Array#__get (; 53 ;) (; has Stack IR ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) - (if (result f32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (f32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - (unreachable) - ) + (func $~lib/array/Array#__get (; 53 ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) + get_local $1 + get_local $0 + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result f32) + get_local $0 + get_local $1 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + else + unreachable + end ) - (func $start~anonymous|22 (; 54 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (get_local $0) + (func $start~anonymous|22 (; 54 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 ) - (func $~lib/array/Array#map (; 55 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 55 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $7 - (i32.load - (tee_local $6 - (call $~lib/array/Array#constructor - (tee_local $5 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (if - (tee_local $3 - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - (set_local $3 - (i32.lt_s - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (br_if $break|0 - (i32.eqz - (get_local $3) - ) - ) - (set_global $~argc - (i32.const 3) - ) - (i32.store offset=8 - (i32.add - (get_local $7) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (call_indirect (type $iiii) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - (get_local $2) - (get_local $0) - (get_local $1) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $6) + get_local $0 + i32.load + set_local $4 + get_local $0 + i32.load offset=4 + tee_local $5 + call $~lib/array/Array#constructor + tee_local $6 + i32.load + set_local $7 + block $break|0 + loop $repeat|0 + get_local $2 + get_local $5 + i32.lt_s + tee_local $3 + if + get_local $2 + get_local $0 + i32.load offset=4 + i32.lt_s + set_local $3 + end + get_local $3 + i32.eqz + br_if $break|0 + i32.const 3 + set_global $~argc + get_local $7 + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $4 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + get_local $2 + get_local $0 + get_local $1 + call_indirect (type $iiii) + i32.store offset=8 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $6 ) - (func $start~anonymous|23 (; 56 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (get_local $0) + (func $start~anonymous|23 (; 56 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 ) - (func $start~anonymous|24 (; 57 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (get_local $0) + (func $start~anonymous|24 (; 57 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $2 + call $~lib/array/Array#pop + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 ) - (func $start~anonymous|25 (; 58 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.ge_s - (get_local $0) - (i32.const 2) - ) + (func $start~anonymous|25 (; 58 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.const 2 + i32.ge_s ) - (func $~lib/array/Array#filter (; 59 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 59 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $4 - (call $~lib/array/Array#constructor - (i32.const 0) - ) - ) - (block $break|0 - (loop $repeat|0 - (if - (tee_local $3 - (i32.lt_s - (get_local $2) - (get_local $6) - ) - ) - (set_local $3 - (i32.lt_s - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (br_if $break|0 - (i32.eqz - (get_local $3) - ) - ) - (set_local $3 - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - (set_global $~argc - (i32.const 3) - ) - (if - (i32.and - (call_indirect (type $iiii) - (get_local $3) - (get_local $2) - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (drop - (call $~lib/array/Array#push - (get_local $4) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $4) + get_local $0 + i32.load + set_local $5 + get_local $0 + i32.load offset=4 + set_local $6 + i32.const 0 + call $~lib/array/Array#constructor + set_local $4 + block $break|0 + loop $repeat|0 + get_local $2 + get_local $6 + i32.lt_s + tee_local $3 + if + get_local $2 + get_local $0 + i32.load offset=4 + i32.lt_s + set_local $3 + end + get_local $3 + i32.eqz + br_if $break|0 + get_local $5 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $3 + i32.const 3 + set_global $~argc + get_local $3 + get_local $2 + get_local $0 + get_local $1 + call_indirect (type $iiii) + i32.const 1 + i32.and + if + get_local $4 + get_local $3 + call $~lib/array/Array#push + drop + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $4 ) - (func $start~anonymous|26 (; 60 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (i32.ge_s - (get_local $0) - (i32.const 2) - ) + (func $start~anonymous|26 (; 60 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 + i32.const 2 + i32.ge_s ) - (func $start~anonymous|27 (; 61 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (i32.ge_s - (get_local $0) - (i32.const 2) - ) + (func $start~anonymous|27 (; 61 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 + i32.const 2 + i32.ge_s ) - (func $start~anonymous|28 (; 62 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (i32.ge_s - (get_local $0) - (i32.const 2) - ) + (func $start~anonymous|28 (; 62 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $2 + call $~lib/array/Array#pop + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 + i32.const 2 + i32.ge_s ) - (func $start~anonymous|29 (; 63 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + (func $start~anonymous|29 (; 63 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + get_local $0 + get_local $1 + i32.add ) - (func $~lib/array/Array#reduce (; 64 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 64 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $6 - (i32.load offset=4 - (get_local $0) - ) - ) - (loop $repeat|0 - (if - (tee_local $4 - (i32.lt_s - (get_local $3) - (get_local $6) - ) - ) - (set_local $4 - (i32.lt_s - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (br_if $break|0 - (i32.eqz - (get_local $4) - ) - ) - (set_global $~argc - (i32.const 4) - ) - (set_local $2 - (call_indirect (type $iiiii) - (get_local $2) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - (get_local $3) - (get_local $0) - (get_local $1) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $2) + get_local $0 + i32.load + set_local $5 + block $break|0 + get_local $0 + i32.load offset=4 + set_local $6 + loop $repeat|0 + get_local $3 + get_local $6 + i32.lt_s + tee_local $4 + if + get_local $3 + get_local $0 + i32.load offset=4 + i32.lt_s + set_local $4 + end + get_local $4 + i32.eqz + br_if $break|0 + i32.const 4 + set_global $~argc + get_local $2 + get_local $5 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + get_local $3 + get_local $0 + get_local $1 + call_indirect (type $iiiii) + set_local $2 + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $2 ) - (func $start~anonymous|31 (; 65 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (if (result i32) - (i32.and - (get_local $0) - (i32.const 1) - ) - (get_local $0) - (i32.gt_s - (get_local $1) - (i32.const 2) - ) - ) + (func $start~anonymous|31 (; 65 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + get_local $0 + i32.const 1 + i32.and + if (result i32) + get_local $0 + else + get_local $1 + i32.const 2 + i32.gt_s + end ) - (func $start~anonymous|32 (; 66 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (if (result i32) - (i32.and - (get_local $0) - (i32.const 1) - ) - (get_local $0) - (i32.gt_s - (get_local $1) - (i32.const 100) - ) - ) + (func $start~anonymous|32 (; 66 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + get_local $0 + i32.const 1 + i32.and + if (result i32) + get_local $0 + else + get_local $1 + i32.const 100 + i32.gt_s + end ) - (func $start~anonymous|33 (; 67 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $3) - (i32.const 1) - ) - ) - (i32.add - (get_local $0) - (get_local $1) - ) + (func $start~anonymous|33 (; 67 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + get_local $3 + i32.const 1 + call $~lib/array/Array#push + drop + get_local $0 + get_local $1 + i32.add ) - (func $start~anonymous|35 (; 68 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $3) - ) - ) - (i32.add - (get_local $0) - (get_local $1) - ) + (func $start~anonymous|35 (; 68 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + get_local $3 + call $~lib/array/Array#pop + drop + get_local $0 + get_local $1 + i32.add ) - (func $~lib/array/Array#reduceRight (; 69 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 69 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $3 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - (set_global $~argc - (i32.const 4) - ) - (set_local $2 - (call_indirect (type $iiiii) - (get_local $2) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - (get_local $3) - (get_local $0) - (get_local $1) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $2) + get_local $0 + i32.load + set_local $4 + block $break|0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $3 + loop $repeat|0 + get_local $3 + i32.const 0 + i32.lt_s + br_if $break|0 + i32.const 4 + set_global $~argc + get_local $2 + get_local $4 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + get_local $3 + get_local $0 + get_local $1 + call_indirect (type $iiiii) + set_local $2 + get_local $3 + i32.const 1 + i32.sub + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $2 ) - (func $~lib/math/murmurHash3 (; 70 ;) (; has Stack IR ;) (type $II) (param $0 i64) (result i64) - (i64.xor - (tee_local $0 - (i64.mul - (i64.xor - (tee_local $0 - (i64.mul - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) - (i64.const -49064778989728563) - ) - ) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) - (i64.const -4265267296055464877) - ) - ) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) + (func $~lib/math/murmurHash3 (; 70 ;) (type $II) (param $0 i64) (result i64) + get_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + tee_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + tee_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor ) - (func $~lib/math/splitMix32 (; 71 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.xor - (tee_local $0 - (i32.xor - (tee_local $0 - (i32.mul - (i32.xor - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 1831565813) - ) - ) - (i32.shr_u - (get_local $0) - (i32.const 15) - ) - ) - (i32.or - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.add - (get_local $0) - (i32.mul - (i32.xor - (get_local $0) - (i32.shr_u - (get_local $0) - (i32.const 7) - ) - ) - (i32.or - (get_local $0) - (i32.const 61) - ) - ) - ) - ) - ) - (i32.shr_u - (get_local $0) - (i32.const 14) - ) - ) + (func $~lib/math/splitMix32 (; 71 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 1831565813 + i32.add + tee_local $0 + get_local $0 + i32.const 15 + i32.shr_u + i32.xor + get_local $0 + i32.const 1 + i32.or + i32.mul + tee_local $0 + get_local $0 + get_local $0 + get_local $0 + i32.const 7 + i32.shr_u + i32.xor + get_local $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + tee_local $0 + get_local $0 + i32.const 14 + i32.shr_u + i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 72 ;) (; has Stack IR ;) (type $Iv) (param $0 i64) - (if - (i64.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 552) - (i32.const 955) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_global $~lib/math/random_seeded - (i32.const 1) - ) - (set_global $~lib/math/random_state0_64 - (call $~lib/math/murmurHash3 - (get_local $0) - ) - ) - (set_global $~lib/math/random_state1_64 - (call $~lib/math/murmurHash3 - (i64.xor - (get_global $~lib/math/random_state0_64) - (i64.const -1) - ) - ) - ) - (set_global $~lib/math/random_state0_32 - (call $~lib/math/splitMix32 - (i32.wrap/i64 - (get_local $0) - ) - ) - ) - (set_global $~lib/math/random_state1_32 - (call $~lib/math/splitMix32 - (get_global $~lib/math/random_state0_32) - ) - ) + (func $~lib/math/NativeMath.seedRandom (; 72 ;) (type $Iv) (param $0 i64) + get_local $0 + i64.eqz + if + i32.const 0 + i32.const 552 + i32.const 955 + i32.const 4 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~lib/math/random_seeded + get_local $0 + call $~lib/math/murmurHash3 + set_global $~lib/math/random_state0_64 + get_global $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + set_global $~lib/math/random_state1_64 + get_local $0 + i32.wrap/i64 + call $~lib/math/splitMix32 + set_global $~lib/math/random_state0_32 + get_global $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + set_global $~lib/math/random_state1_32 ) - (func $~lib/internal/array/insertionSort (; 73 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/insertionSort (; 73 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) (local $6 f32) (local $7 i32) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $4) - (get_local $1) - ) - ) - (set_local $5 - (f32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (block - (set_local $6 - (f32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (br_if $break|1 - (i32.ge_s - (call_indirect (type $ffi) - (get_local $5) - (get_local $6) - (get_local $2) - ) - (i32.const 0) - ) - ) - (set_local $3 - (i32.sub - (tee_local $7 - (get_local $3) - ) - (i32.const 1) - ) - ) - (f32.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (i32.add - (get_local $7) - (i32.const 1) - ) - (i32.const 2) - ) - ) - (get_local $6) - ) - (br $continue|1) - ) - ) - ) - ) - (f32.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (i32.add - (get_local $3) - (i32.const 1) - ) - (i32.const 2) - ) - ) - (get_local $5) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + loop $repeat|0 + get_local $4 + get_local $1 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + set_local $5 + get_local $4 + i32.const 1 + i32.sub + set_local $3 + block $break|1 + loop $continue|1 + get_local $3 + i32.const 0 + i32.ge_s + if + get_local $0 + get_local $3 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + set_local $6 + i32.const 2 + set_global $~argc + get_local $5 + get_local $6 + get_local $2 + call_indirect (type $ffi) + i32.const 0 + i32.ge_s + br_if $break|1 + get_local $3 + tee_local $7 + i32.const 1 + i32.sub + set_local $3 + get_local $0 + get_local $7 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + get_local $6 + f32.store offset=8 + br $continue|1 + end + end + end + get_local $0 + get_local $3 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + get_local $5 + f32.store offset=8 + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $~lib/allocator/arena/__memory_free (; 74 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (nop) + (func $~lib/allocator/arena/__memory_free (; 74 ;) (type $FUNCSIG$v) + nop ) - (func $~lib/internal/array/weakHeapSort (; 75 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/weakHeapSort (; 75 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 f32) (local $7 f32) (local $8 i32) - (call $~lib/internal/memory/memset - (tee_local $8 - (call $~lib/allocator/arena/__memory_allocate - (tee_local $5 - (i32.shl - (i32.shr_s - (i32.add - (get_local $1) - (i32.const 31) - ) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - ) - (i32.const 0) - (get_local $5) - ) - (block $break|0 - (set_local $3 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.le_s - (get_local $3) - (i32.const 0) - ) - ) - (set_local $5 - (get_local $3) - ) - (loop $continue|1 - (if - (i32.eq - (i32.and - (get_local $5) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $5) - (i32.const 6) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (i32.shr_s - (get_local $5) - (i32.const 1) - ) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - (block - (set_local $5 - (i32.shr_s - (get_local $5) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - (set_local $7 - (f32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (tee_local $4 - (i32.shr_s - (get_local $5) - (i32.const 1) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (set_local $6 - (f32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $ffi) - (get_local $7) - (get_local $6) - (get_local $2) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $5 - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $3) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.xor - (i32.load - (get_local $5) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $3) - (i32.const 31) - ) - ) - ) - ) - (f32.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - (get_local $7) - ) - (f32.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - (get_local $6) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|2 - (set_local $3 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.lt_s - (get_local $3) - (i32.const 2) - ) - ) - (set_local $6 - (f32.load offset=8 - (get_local $0) - ) - ) - (f32.store offset=8 - (get_local $0) - (f32.load offset=8 - (tee_local $1 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - ) - (f32.store offset=8 - (get_local $1) - (get_local $6) - ) - (set_local $4 - (i32.const 1) - ) - (loop $continue|3 - (if - (i32.lt_s - (tee_local $5 - (i32.add - (i32.shl - (get_local $4) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $4) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (get_local $4) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - ) - (get_local $3) - ) - (block - (set_local $4 - (get_local $5) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.gt_s - (get_local $4) - (i32.const 0) - ) - (block - (set_local $6 - (f32.load offset=8 - (get_local $0) - ) - ) - (set_local $7 - (f32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $ffi) - (get_local $6) - (get_local $7) - (get_local $2) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $1 - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $4) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.xor - (i32.load - (get_local $1) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $4) - (i32.const 31) - ) - ) - ) - ) - (f32.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - (get_local $6) - ) - (f32.store offset=8 - (get_local $0) - (get_local $7) - ) - ) - ) - (set_local $4 - (i32.shr_s - (get_local $4) - (i32.const 1) - ) - ) - (br $continue|4) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (call $~lib/allocator/arena/__memory_free) - (set_local $6 - (f32.load offset=8 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - ) - ) - (f32.store offset=8 - (get_local $1) - (f32.load offset=8 - (get_local $0) - ) - ) - (f32.store offset=8 - (get_local $0) - (get_local $6) - ) + get_local $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + tee_local $5 + call $~lib/allocator/arena/__memory_allocate + tee_local $8 + i32.const 0 + get_local $5 + call $~lib/internal/memory/memset + block $break|0 + get_local $1 + i32.const 1 + i32.sub + set_local $3 + loop $repeat|0 + get_local $3 + i32.const 0 + i32.le_s + br_if $break|0 + get_local $3 + set_local $5 + loop $continue|1 + get_local $5 + i32.const 1 + i32.and + get_local $8 + get_local $5 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $5 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + get_local $5 + i32.const 1 + i32.shr_s + set_local $5 + br $continue|1 + end + end + get_local $0 + get_local $5 + i32.const 1 + i32.shr_s + tee_local $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + set_local $7 + get_local $0 + get_local $3 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + set_local $6 + i32.const 2 + set_global $~argc + get_local $7 + get_local $6 + get_local $2 + call_indirect (type $ffi) + i32.const 0 + i32.lt_s + if + get_local $8 + get_local $3 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + tee_local $5 + get_local $5 + i32.load + i32.const 1 + get_local $3 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + get_local $0 + get_local $3 + i32.const 2 + i32.shl + i32.add + get_local $7 + f32.store offset=8 + get_local $0 + get_local $4 + i32.const 2 + i32.shl + i32.add + get_local $6 + f32.store offset=8 + end + get_local $3 + i32.const 1 + i32.sub + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + block $break|2 + get_local $1 + i32.const 1 + i32.sub + set_local $3 + loop $repeat|2 + get_local $3 + i32.const 2 + i32.lt_s + br_if $break|2 + get_local $0 + f32.load offset=8 + set_local $6 + get_local $0 + get_local $0 + get_local $3 + i32.const 2 + i32.shl + i32.add + tee_local $1 + f32.load offset=8 + f32.store offset=8 + get_local $1 + get_local $6 + f32.store offset=8 + i32.const 1 + set_local $4 + loop $continue|3 + get_local $4 + i32.const 1 + i32.shl + get_local $8 + get_local $4 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $4 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + tee_local $5 + get_local $3 + i32.lt_s + if + get_local $5 + set_local $4 + br $continue|3 + end + end + loop $continue|4 + get_local $4 + i32.const 0 + i32.gt_s + if + get_local $0 + f32.load offset=8 + set_local $6 + get_local $0 + get_local $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + set_local $7 + i32.const 2 + set_global $~argc + get_local $6 + get_local $7 + get_local $2 + call_indirect (type $ffi) + i32.const 0 + i32.lt_s + if + get_local $8 + get_local $4 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + tee_local $1 + get_local $1 + i32.load + i32.const 1 + get_local $4 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + get_local $0 + get_local $4 + i32.const 2 + i32.shl + i32.add + get_local $6 + f32.store offset=8 + get_local $0 + get_local $7 + f32.store offset=8 + end + get_local $4 + i32.const 1 + i32.shr_s + set_local $4 + br $continue|4 + end + end + get_local $3 + i32.const 1 + i32.sub + set_local $3 + br $repeat|2 + unreachable + end + unreachable + end + call $~lib/allocator/arena/__memory_free + get_local $0 + i32.const 4 + i32.add + tee_local $1 + f32.load offset=8 + set_local $6 + get_local $1 + get_local $0 + f32.load offset=8 + f32.store offset=8 + get_local $0 + get_local $6 + f32.store offset=8 ) - (func $~lib/array/Array#sort (; 76 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 76 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) (local $5 f32) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.le_s - (tee_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 2) - ) - (block - (set_local $4 - (f32.load offset=8 - (i32.add - (get_local $2) - (i32.const 4) - ) - ) - ) - (set_local $5 - (f32.load offset=8 - (get_local $2) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $ffi) - (get_local $4) - (get_local $5) - (get_local $1) - ) - (i32.const 0) - ) - (block - (f32.store offset=8 - (i32.add - (get_local $2) - (i32.const 4) - ) - (get_local $5) - ) - (f32.store offset=8 - (get_local $2) - (get_local $4) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 256) - ) - (call $~lib/internal/array/insertionSort - (get_local $2) - (get_local $3) - (get_local $1) - ) - (call $~lib/internal/array/weakHeapSort - (get_local $2) - (get_local $3) - (get_local $1) - ) - ) - (get_local $0) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + tee_local $3 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $2 + get_local $3 + i32.const 2 + i32.eq + if + get_local $2 + i32.const 4 + i32.add + f32.load offset=8 + set_local $4 + get_local $2 + f32.load offset=8 + set_local $5 + i32.const 2 + set_global $~argc + get_local $4 + get_local $5 + get_local $1 + call_indirect (type $ffi) + i32.const 0 + i32.lt_s + if + get_local $2 + i32.const 4 + i32.add + get_local $5 + f32.store offset=8 + get_local $2 + get_local $4 + f32.store offset=8 + end + get_local $0 + return + end + get_local $3 + i32.const 256 + i32.lt_s + if + get_local $2 + get_local $3 + get_local $1 + call $~lib/internal/array/insertionSort + else + get_local $2 + get_local $3 + get_local $1 + call $~lib/internal/array/weakHeapSort + end + get_local $0 ) - (func $~lib/array/Array#sort|trampoline~anonymous|43 (; 77 ;) (; has Stack IR ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/array/Array#sort|trampoline~anonymous|43 (; 77 ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) - (i32.sub - (i32.gt_s - (tee_local $2 - (i32.xor - (tee_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.shr_u - (i32.shr_s - (get_local $2) - (i32.const 31) - ) - (i32.const 1) - ) - ) - ) - (tee_local $3 - (i32.xor - (tee_local $3 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (i32.shr_u - (i32.shr_s - (get_local $3) - (i32.const 31) - ) - (i32.const 1) - ) - ) - ) - ) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) + get_local $0 + i32.reinterpret/f32 + tee_local $2 + get_local $2 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + tee_local $2 + get_local $1 + i32.reinterpret/f32 + tee_local $3 + get_local $3 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + tee_local $3 + i32.gt_s + get_local $2 + get_local $3 + i32.lt_s + i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 78 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 78 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 43) - ) - ) - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 43 + set_local $1 + end + get_local $0 + get_local $1 + call $~lib/array/Array#sort ) - (func $~lib/builtins/isNaN (; 79 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32) - (f32.ne - (get_local $0) - (get_local $0) - ) + (func $~lib/builtins/isNaN (; 79 ;) (type $fi) (param $0 f32) (result i32) + get_local $0 + get_local $0 + f32.ne ) - (func $std/array/isArraysEqual (; 80 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/isArraysEqual (; 80 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) (local $6 f32) - (if - (i32.ne - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.load - (i32.const 900) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 896) - ) - (return - (i32.const 1) - ) - ) - (block $break|0 - (loop $repeat|0 - (block $continue|0 - (br_if $break|0 - (i32.ge_s - (get_local $1) - (get_local $2) - ) - ) - (set_local $3 - (call $~lib/builtins/isNaN - (call $~lib/array/Array#__get - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $4 - (call $~lib/builtins/isNaN - (call $~lib/array/Array#__get - (i32.const 896) - (get_local $1) - ) - ) - ) - (br_if $continue|0 - (i32.eq - (get_local $3) - (get_local $4) - ) - ) - (set_local $5 - (call $~lib/array/Array#__get - (get_local $0) - (get_local $1) - ) - ) - (set_local $6 - (call $~lib/array/Array#__get - (i32.const 896) - (get_local $1) - ) - ) - (if - (f32.ne - (get_local $5) - (get_local $6) - ) - (return - (i32.const 0) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + get_local $0 + i32.load offset=4 + tee_local $2 + i32.const 900 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + i32.const 896 + i32.eq + if + i32.const 1 + return + end + block $break|0 + loop $repeat|0 + block $continue|0 + get_local $1 + get_local $2 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $1 + call $~lib/array/Array#__get + call $~lib/builtins/isNaN + set_local $3 + i32.const 896 + get_local $1 + call $~lib/array/Array#__get + call $~lib/builtins/isNaN + set_local $4 + get_local $3 + get_local $4 + i32.eq + br_if $continue|0 + get_local $0 + get_local $1 + call $~lib/array/Array#__get + set_local $5 + i32.const 896 + get_local $1 + call $~lib/array/Array#__get + set_local $6 + get_local $5 + get_local $6 + f32.ne + if + i32.const 0 + return + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) - (func $~lib/internal/array/insertionSort (; 81 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/insertionSort (; 81 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) (local $6 f64) (local $7 i32) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $4) - (get_local $1) - ) - ) - (set_local $5 - (f64.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (block - (set_local $6 - (f64.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (br_if $break|1 - (i32.ge_s - (call_indirect (type $FFi) - (get_local $5) - (get_local $6) - (get_local $2) - ) - (i32.const 0) - ) - ) - (set_local $3 - (i32.sub - (tee_local $7 - (get_local $3) - ) - (i32.const 1) - ) - ) - (f64.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (i32.add - (get_local $7) - (i32.const 1) - ) - (i32.const 3) - ) - ) - (get_local $6) - ) - (br $continue|1) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (i32.add - (get_local $3) - (i32.const 1) - ) - (i32.const 3) - ) - ) - (get_local $5) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + loop $repeat|0 + get_local $4 + get_local $1 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + set_local $5 + get_local $4 + i32.const 1 + i32.sub + set_local $3 + block $break|1 + loop $continue|1 + get_local $3 + i32.const 0 + i32.ge_s + if + get_local $0 + get_local $3 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + set_local $6 + i32.const 2 + set_global $~argc + get_local $5 + get_local $6 + get_local $2 + call_indirect (type $FFi) + i32.const 0 + i32.ge_s + br_if $break|1 + get_local $3 + tee_local $7 + i32.const 1 + i32.sub + set_local $3 + get_local $0 + get_local $7 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + get_local $6 + f64.store offset=8 + br $continue|1 + end + end + end + get_local $0 + get_local $3 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + get_local $5 + f64.store offset=8 + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $~lib/internal/array/weakHeapSort (; 82 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/weakHeapSort (; 82 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 f64) (local $7 f64) (local $8 i32) - (call $~lib/internal/memory/memset - (tee_local $8 - (call $~lib/allocator/arena/__memory_allocate - (tee_local $5 - (i32.shl - (i32.shr_s - (i32.add - (get_local $1) - (i32.const 31) - ) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - ) - (i32.const 0) - (get_local $5) - ) - (block $break|0 - (set_local $3 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.le_s - (get_local $3) - (i32.const 0) - ) - ) - (set_local $5 - (get_local $3) - ) - (loop $continue|1 - (if - (i32.eq - (i32.and - (get_local $5) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $5) - (i32.const 6) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (i32.shr_s - (get_local $5) - (i32.const 1) - ) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - (block - (set_local $5 - (i32.shr_s - (get_local $5) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - (set_local $7 - (f64.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (tee_local $4 - (i32.shr_s - (get_local $5) - (i32.const 1) - ) - ) - (i32.const 3) - ) - ) - ) - ) - (set_local $6 - (f64.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $FFi) - (get_local $7) - (get_local $6) - (get_local $2) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $5 - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $3) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.xor - (i32.load - (get_local $5) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $3) - (i32.const 31) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - (get_local $7) - ) - (f64.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - (get_local $6) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|2 - (set_local $3 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.lt_s - (get_local $3) - (i32.const 2) - ) - ) - (set_local $6 - (f64.load offset=8 - (get_local $0) - ) - ) - (f64.store offset=8 - (get_local $0) - (f64.load offset=8 - (tee_local $1 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - ) - ) - (f64.store offset=8 - (get_local $1) - (get_local $6) - ) - (set_local $4 - (i32.const 1) - ) - (loop $continue|3 - (if - (i32.lt_s - (tee_local $5 - (i32.add - (i32.shl - (get_local $4) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $4) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (get_local $4) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - ) - (get_local $3) - ) - (block - (set_local $4 - (get_local $5) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.gt_s - (get_local $4) - (i32.const 0) - ) - (block - (set_local $6 - (f64.load offset=8 - (get_local $0) - ) - ) - (set_local $7 - (f64.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $FFi) - (get_local $6) - (get_local $7) - (get_local $2) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $1 - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $4) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.xor - (i32.load - (get_local $1) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $4) - (i32.const 31) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - (get_local $6) - ) - (f64.store offset=8 - (get_local $0) - (get_local $7) - ) - ) - ) - (set_local $4 - (i32.shr_s - (get_local $4) - (i32.const 1) - ) - ) - (br $continue|4) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (call $~lib/allocator/arena/__memory_free) - (set_local $6 - (f64.load offset=8 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - ) - ) - (f64.store offset=8 - (get_local $1) - (f64.load offset=8 - (get_local $0) - ) - ) - (f64.store offset=8 - (get_local $0) - (get_local $6) - ) + get_local $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + tee_local $5 + call $~lib/allocator/arena/__memory_allocate + tee_local $8 + i32.const 0 + get_local $5 + call $~lib/internal/memory/memset + block $break|0 + get_local $1 + i32.const 1 + i32.sub + set_local $3 + loop $repeat|0 + get_local $3 + i32.const 0 + i32.le_s + br_if $break|0 + get_local $3 + set_local $5 + loop $continue|1 + get_local $5 + i32.const 1 + i32.and + get_local $8 + get_local $5 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $5 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + get_local $5 + i32.const 1 + i32.shr_s + set_local $5 + br $continue|1 + end + end + get_local $0 + get_local $5 + i32.const 1 + i32.shr_s + tee_local $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + set_local $7 + get_local $0 + get_local $3 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + set_local $6 + i32.const 2 + set_global $~argc + get_local $7 + get_local $6 + get_local $2 + call_indirect (type $FFi) + i32.const 0 + i32.lt_s + if + get_local $8 + get_local $3 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + tee_local $5 + get_local $5 + i32.load + i32.const 1 + get_local $3 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + get_local $0 + get_local $3 + i32.const 3 + i32.shl + i32.add + get_local $7 + f64.store offset=8 + get_local $0 + get_local $4 + i32.const 3 + i32.shl + i32.add + get_local $6 + f64.store offset=8 + end + get_local $3 + i32.const 1 + i32.sub + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + block $break|2 + get_local $1 + i32.const 1 + i32.sub + set_local $3 + loop $repeat|2 + get_local $3 + i32.const 2 + i32.lt_s + br_if $break|2 + get_local $0 + f64.load offset=8 + set_local $6 + get_local $0 + get_local $0 + get_local $3 + i32.const 3 + i32.shl + i32.add + tee_local $1 + f64.load offset=8 + f64.store offset=8 + get_local $1 + get_local $6 + f64.store offset=8 + i32.const 1 + set_local $4 + loop $continue|3 + get_local $4 + i32.const 1 + i32.shl + get_local $8 + get_local $4 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $4 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + tee_local $5 + get_local $3 + i32.lt_s + if + get_local $5 + set_local $4 + br $continue|3 + end + end + loop $continue|4 + get_local $4 + i32.const 0 + i32.gt_s + if + get_local $0 + f64.load offset=8 + set_local $6 + get_local $0 + get_local $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + set_local $7 + i32.const 2 + set_global $~argc + get_local $6 + get_local $7 + get_local $2 + call_indirect (type $FFi) + i32.const 0 + i32.lt_s + if + get_local $8 + get_local $4 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + tee_local $1 + get_local $1 + i32.load + i32.const 1 + get_local $4 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + get_local $0 + get_local $4 + i32.const 3 + i32.shl + i32.add + get_local $6 + f64.store offset=8 + get_local $0 + get_local $7 + f64.store offset=8 + end + get_local $4 + i32.const 1 + i32.shr_s + set_local $4 + br $continue|4 + end + end + get_local $3 + i32.const 1 + i32.sub + set_local $3 + br $repeat|2 + unreachable + end + unreachable + end + call $~lib/allocator/arena/__memory_free + get_local $0 + i32.const 8 + i32.add + tee_local $1 + f64.load offset=8 + set_local $6 + get_local $1 + get_local $0 + f64.load offset=8 + f64.store offset=8 + get_local $0 + get_local $6 + f64.store offset=8 ) - (func $~lib/array/Array#sort (; 83 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 83 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) (local $5 f64) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.le_s - (tee_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 2) - ) - (block - (set_local $4 - (f64.load offset=8 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - ) - (set_local $5 - (f64.load offset=8 - (get_local $2) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $FFi) - (get_local $4) - (get_local $5) - (get_local $1) - ) - (i32.const 0) - ) - (block - (f64.store offset=8 - (i32.add - (get_local $2) - (i32.const 8) - ) - (get_local $5) - ) - (f64.store offset=8 - (get_local $2) - (get_local $4) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 256) - ) - (call $~lib/internal/array/insertionSort - (get_local $2) - (get_local $3) - (get_local $1) - ) - (call $~lib/internal/array/weakHeapSort - (get_local $2) - (get_local $3) - (get_local $1) - ) - ) - (get_local $0) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + tee_local $3 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $2 + get_local $3 + i32.const 2 + i32.eq + if + get_local $2 + i32.const 8 + i32.add + f64.load offset=8 + set_local $4 + get_local $2 + f64.load offset=8 + set_local $5 + i32.const 2 + set_global $~argc + get_local $4 + get_local $5 + get_local $1 + call_indirect (type $FFi) + i32.const 0 + i32.lt_s + if + get_local $2 + i32.const 8 + i32.add + get_local $5 + f64.store offset=8 + get_local $2 + get_local $4 + f64.store offset=8 + end + get_local $0 + return + end + get_local $3 + i32.const 256 + i32.lt_s + if + get_local $2 + get_local $3 + get_local $1 + call $~lib/internal/array/insertionSort + else + get_local $2 + get_local $3 + get_local $1 + call $~lib/internal/array/weakHeapSort + end + get_local $0 ) - (func $~lib/array/Array#sort|trampoline~anonymous|44 (; 84 ;) (; has Stack IR ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/array/Array#sort|trampoline~anonymous|44 (; 84 ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) - (i32.sub - (i64.gt_s - (tee_local $2 - (i64.xor - (tee_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.shr_u - (i64.shr_s - (get_local $2) - (i64.const 63) - ) - (i64.const 1) - ) - ) - ) - (tee_local $3 - (i64.xor - (tee_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.shr_u - (i64.shr_s - (get_local $3) - (i64.const 63) - ) - (i64.const 1) - ) - ) - ) - ) - (i64.lt_s - (get_local $2) - (get_local $3) - ) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $2 + get_local $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + tee_local $2 + get_local $1 + i64.reinterpret/f64 + tee_local $3 + get_local $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + tee_local $3 + i64.gt_s + get_local $2 + get_local $3 + i64.lt_s + i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 85 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 85 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 44) - ) - ) - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 44 + set_local $1 + end + get_local $0 + get_local $1 + call $~lib/array/Array#sort ) - (func $~lib/array/Array#__get (; 86 ;) (; has Stack IR ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) - (if (result f64) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 3) - ) - ) - (f64.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - ) - (unreachable) - ) + (func $~lib/array/Array#__get (; 86 ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) + get_local $1 + get_local $0 + i32.load + tee_local $0 + i32.load + i32.const 3 + i32.shr_u + i32.lt_u + if (result f64) + get_local $0 + get_local $1 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + else + unreachable + end ) - (func $~lib/builtins/isNaN (; 87 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (f64.ne - (get_local $0) - (get_local $0) - ) + (func $~lib/builtins/isNaN (; 87 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + get_local $0 + f64.ne ) - (func $std/array/isArraysEqual (; 88 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/isArraysEqual (; 88 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) (local $6 f64) - (if - (i32.ne - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.load - (i32.const 1172) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 1168) - ) - (return - (i32.const 1) - ) - ) - (block $break|0 - (loop $repeat|0 - (block $continue|0 - (br_if $break|0 - (i32.ge_s - (get_local $1) - (get_local $2) - ) - ) - (set_local $3 - (call $~lib/builtins/isNaN - (call $~lib/array/Array#__get - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $4 - (call $~lib/builtins/isNaN - (call $~lib/array/Array#__get - (i32.const 1168) - (get_local $1) - ) - ) - ) - (br_if $continue|0 - (i32.eq - (get_local $3) - (get_local $4) - ) - ) - (set_local $5 - (call $~lib/array/Array#__get - (get_local $0) - (get_local $1) - ) - ) - (set_local $6 - (call $~lib/array/Array#__get - (i32.const 1168) - (get_local $1) - ) - ) - (if - (f64.ne - (get_local $5) - (get_local $6) - ) - (return - (i32.const 0) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + get_local $0 + i32.load offset=4 + tee_local $2 + i32.const 1172 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + i32.const 1168 + i32.eq + if + i32.const 1 + return + end + block $break|0 + loop $repeat|0 + block $continue|0 + get_local $1 + get_local $2 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $1 + call $~lib/array/Array#__get + call $~lib/builtins/isNaN + set_local $3 + i32.const 1168 + get_local $1 + call $~lib/array/Array#__get + call $~lib/builtins/isNaN + set_local $4 + get_local $3 + get_local $4 + i32.eq + br_if $continue|0 + get_local $0 + get_local $1 + call $~lib/array/Array#__get + set_local $5 + i32.const 1168 + get_local $1 + call $~lib/array/Array#__get + set_local $6 + get_local $5 + get_local $6 + f64.ne + if + i32.const 0 + return + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) - (func $~lib/internal/array/insertionSort (; 89 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/insertionSort (; 89 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $4) - (get_local $1) - ) - ) - (set_local $6 - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (block - (set_local $5 - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (br_if $break|1 - (i32.ge_s - (call_indirect (type $iii) - (get_local $6) - (get_local $5) - (get_local $2) - ) - (i32.const 0) - ) - ) - (set_local $7 - (get_local $5) - ) - (set_local $3 - (i32.sub - (tee_local $5 - (get_local $3) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (i32.add - (get_local $5) - (i32.const 1) - ) - (i32.const 2) - ) - ) - (get_local $7) - ) - (br $continue|1) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (i32.add - (get_local $3) - (i32.const 1) - ) - (i32.const 2) - ) - ) - (get_local $6) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + loop $repeat|0 + get_local $4 + get_local $1 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $6 + get_local $4 + i32.const 1 + i32.sub + set_local $3 + block $break|1 + loop $continue|1 + get_local $3 + i32.const 0 + i32.ge_s + if + get_local $0 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $5 + i32.const 2 + set_global $~argc + get_local $6 + get_local $5 + get_local $2 + call_indirect (type $iii) + i32.const 0 + i32.ge_s + br_if $break|1 + get_local $5 + set_local $7 + get_local $3 + tee_local $5 + i32.const 1 + i32.sub + set_local $3 + get_local $0 + get_local $5 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + get_local $7 + i32.store offset=8 + br $continue|1 + end + end + end + get_local $0 + get_local $3 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + get_local $6 + i32.store offset=8 + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $~lib/internal/array/weakHeapSort (; 90 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/weakHeapSort (; 90 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (call $~lib/internal/memory/memset - (tee_local $7 - (call $~lib/allocator/arena/__memory_allocate - (tee_local $6 - (i32.shl - (i32.shr_s - (i32.add - (get_local $1) - (i32.const 31) - ) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - ) - (i32.const 0) - (get_local $6) - ) - (block $break|0 - (set_local $3 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.le_s - (get_local $3) - (i32.const 0) - ) - ) - (set_local $4 - (get_local $3) - ) - (loop $continue|1 - (if - (i32.eq - (i32.and - (get_local $4) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $7) - (i32.shl - (i32.shr_s - (get_local $4) - (i32.const 6) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (i32.shr_s - (get_local $4) - (i32.const 1) - ) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - (block - (set_local $4 - (i32.shr_s - (get_local $4) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (tee_local $5 - (i32.shr_s - (get_local $4) - (i32.const 1) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (set_local $6 - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $iii) - (get_local $4) - (get_local $6) - (get_local $2) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $8 - (i32.add - (get_local $7) - (i32.shl - (i32.shr_s - (get_local $3) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.xor - (i32.load - (get_local $8) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $3) - (i32.const 31) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - (get_local $4) - ) - (i32.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - (get_local $6) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|2 - (set_local $3 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.lt_s - (get_local $3) - (i32.const 2) - ) - ) - (set_local $6 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=8 - (get_local $0) - (i32.load offset=8 - (tee_local $1 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $1) - (get_local $6) - ) - (set_local $5 - (i32.const 1) - ) - (loop $continue|3 - (if - (i32.lt_s - (tee_local $4 - (i32.add - (i32.shl - (get_local $5) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $7) - (i32.shl - (i32.shr_s - (get_local $5) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (get_local $5) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - ) - (get_local $3) - ) - (block - (set_local $5 - (get_local $4) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (block - (set_local $6 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $iii) - (get_local $6) - (get_local $4) - (get_local $2) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $1 - (i32.add - (get_local $7) - (i32.shl - (i32.shr_s - (get_local $5) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.xor - (i32.load - (get_local $1) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $5) - (i32.const 31) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - (get_local $6) - ) - (i32.store offset=8 - (get_local $0) - (get_local $4) - ) - ) - ) - (set_local $5 - (i32.shr_s - (get_local $5) - (i32.const 1) - ) - ) - (br $continue|4) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (call $~lib/allocator/arena/__memory_free) - (set_local $1 - (i32.load offset=8 - (tee_local $2 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=8 - (get_local $0) - (get_local $1) - ) + get_local $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + tee_local $6 + call $~lib/allocator/arena/__memory_allocate + tee_local $7 + i32.const 0 + get_local $6 + call $~lib/internal/memory/memset + block $break|0 + get_local $1 + i32.const 1 + i32.sub + set_local $3 + loop $repeat|0 + get_local $3 + i32.const 0 + i32.le_s + br_if $break|0 + get_local $3 + set_local $4 + loop $continue|1 + get_local $4 + i32.const 1 + i32.and + get_local $7 + get_local $4 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $4 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + get_local $4 + i32.const 1 + i32.shr_s + set_local $4 + br $continue|1 + end + end + get_local $0 + get_local $4 + i32.const 1 + i32.shr_s + tee_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $4 + get_local $0 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $6 + i32.const 2 + set_global $~argc + get_local $4 + get_local $6 + get_local $2 + call_indirect (type $iii) + i32.const 0 + i32.lt_s + if + get_local $7 + get_local $3 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + tee_local $8 + get_local $8 + i32.load + i32.const 1 + get_local $3 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + get_local $0 + get_local $3 + i32.const 2 + i32.shl + i32.add + get_local $4 + i32.store offset=8 + get_local $0 + get_local $5 + i32.const 2 + i32.shl + i32.add + get_local $6 + i32.store offset=8 + end + get_local $3 + i32.const 1 + i32.sub + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + block $break|2 + get_local $1 + i32.const 1 + i32.sub + set_local $3 + loop $repeat|2 + get_local $3 + i32.const 2 + i32.lt_s + br_if $break|2 + get_local $0 + i32.load offset=8 + set_local $6 + get_local $0 + get_local $0 + get_local $3 + i32.const 2 + i32.shl + i32.add + tee_local $1 + i32.load offset=8 + i32.store offset=8 + get_local $1 + get_local $6 + i32.store offset=8 + i32.const 1 + set_local $5 + loop $continue|3 + get_local $5 + i32.const 1 + i32.shl + get_local $7 + get_local $5 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $5 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + tee_local $4 + get_local $3 + i32.lt_s + if + get_local $4 + set_local $5 + br $continue|3 + end + end + loop $continue|4 + get_local $5 + i32.const 0 + i32.gt_s + if + get_local $0 + i32.load offset=8 + set_local $6 + get_local $0 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $4 + i32.const 2 + set_global $~argc + get_local $6 + get_local $4 + get_local $2 + call_indirect (type $iii) + i32.const 0 + i32.lt_s + if + get_local $7 + get_local $5 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + tee_local $1 + get_local $1 + i32.load + i32.const 1 + get_local $5 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + get_local $0 + get_local $5 + i32.const 2 + i32.shl + i32.add + get_local $6 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=8 + end + get_local $5 + i32.const 1 + i32.shr_s + set_local $5 + br $continue|4 + end + end + get_local $3 + i32.const 1 + i32.sub + set_local $3 + br $repeat|2 + unreachable + end + unreachable + end + call $~lib/allocator/arena/__memory_free + get_local $0 + i32.const 4 + i32.add + tee_local $2 + i32.load offset=8 + set_local $1 + get_local $2 + get_local $0 + i32.load offset=8 + i32.store offset=8 + get_local $0 + get_local $1 + i32.store offset=8 ) - (func $~lib/array/Array#sort (; 91 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 91 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.le_s - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 2) - ) - (block - (set_local $2 - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.const 4) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $3) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $iii) - (get_local $2) - (get_local $4) - (get_local $1) - ) - (i32.const 0) - ) - (block - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 256) - ) - (call $~lib/internal/array/insertionSort - (get_local $3) - (get_local $2) - (get_local $1) - ) - (call $~lib/internal/array/weakHeapSort - (get_local $3) - (get_local $2) - (get_local $1) - ) - ) - (get_local $0) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + tee_local $2 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.const 2 + i32.eq + if + get_local $3 + i32.const 4 + i32.add + i32.load offset=8 + set_local $2 + get_local $3 + i32.load offset=8 + set_local $4 + i32.const 2 + set_global $~argc + get_local $2 + get_local $4 + get_local $1 + call_indirect (type $iii) + i32.const 0 + i32.lt_s + if + get_local $3 + i32.const 4 + i32.add + get_local $4 + i32.store offset=8 + get_local $3 + get_local $2 + i32.store offset=8 + end + get_local $0 + return + end + get_local $2 + i32.const 256 + i32.lt_s + if + get_local $3 + get_local $2 + get_local $1 + call $~lib/internal/array/insertionSort + else + get_local $3 + get_local $2 + get_local $1 + call $~lib/internal/array/weakHeapSort + end + get_local $0 ) - (func $~lib/array/Array#sort|trampoline~anonymous|45 (; 92 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + (func $~lib/array/Array#sort|trampoline~anonymous|45 (; 92 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 93 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 93 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 45) - ) - ) - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 45 + set_local $1 + end + get_local $0 + get_local $1 + call $~lib/array/Array#sort ) - (func $~lib/array/Array#sort|trampoline~anonymous|46 (; 94 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (i32.gt_u - (get_local $0) - (get_local $1) - ) - (i32.lt_u - (get_local $0) - (get_local $1) - ) - ) + (func $~lib/array/Array#sort|trampoline~anonymous|46 (; 94 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + i32.gt_u + get_local $0 + get_local $1 + i32.lt_u + i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 95 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 95 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 46) - ) - ) - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 46 + set_local $1 + end + get_local $0 + get_local $1 + call $~lib/array/Array#sort ) - (func $std/array/createReverseOrderedArray (; 96 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 96 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (set_local $1 - (call $~lib/array/Array#constructor - (get_local $0) - ) - ) - (block $break|0 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (call $~lib/array/Array#__set - (get_local $1) - (get_local $0) - (i32.sub - (i32.sub - (i32.load offset=4 - (get_local $1) - ) - (i32.const 1) - ) - (get_local $0) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + get_local $0 + call $~lib/array/Array#constructor + set_local $1 + block $break|0 + i32.const 0 + set_local $0 + loop $repeat|0 + get_local $0 + get_local $1 + i32.load offset=4 + i32.ge_s + br_if $break|0 + get_local $1 + get_local $0 + get_local $1 + i32.load offset=4 + i32.const 1 + i32.sub + get_local $0 + i32.sub + call $~lib/array/Array#__set + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) - (func $~lib/math/NativeMath.random (; 97 ;) (; has Stack IR ;) (type $F) (result f64) + (func $~lib/math/NativeMath.random (; 97 ;) (type $F) (result f64) (local $0 i64) (local $1 i64) - (if - (i32.eqz - (get_global $~lib/math/random_seeded) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 552) - (i32.const 964) - (i32.const 24) - ) - (unreachable) - ) - ) - (set_local $0 - (get_global $~lib/math/random_state0_64) - ) - (set_global $~lib/math/random_state0_64 - (tee_local $1 - (get_global $~lib/math/random_state1_64) - ) - ) - (set_global $~lib/math/random_state1_64 - (tee_local $0 - (i64.xor - (i64.xor - (i64.xor - (tee_local $0 - (i64.xor - (get_local $0) - (i64.shl - (get_local $0) - (i64.const 23) - ) - ) - ) - (i64.shr_u - (get_local $0) - (i64.const 17) - ) - ) - (get_local $1) - ) - (i64.shr_u - (get_local $1) - (i64.const 26) - ) - ) - ) - ) - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.add - (get_local $1) - (get_local $0) - ) - (i64.const 4503599627370495) - ) - (i64.const 4607182418800017408) - ) - ) - (f64.const 1) - ) + get_global $~lib/math/random_seeded + i32.eqz + if + i32.const 0 + i32.const 552 + i32.const 964 + i32.const 24 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/random_state0_64 + set_local $0 + get_global $~lib/math/random_state1_64 + tee_local $1 + set_global $~lib/math/random_state0_64 + get_local $0 + get_local $0 + i64.const 23 + i64.shl + i64.xor + tee_local $0 + get_local $0 + i64.const 17 + i64.shr_u + i64.xor + get_local $1 + i64.xor + get_local $1 + i64.const 26 + i64.shr_u + i64.xor + tee_local $0 + set_global $~lib/math/random_state1_64 + get_local $1 + get_local $0 + i64.add + i64.const 4503599627370495 + i64.and + i64.const 4607182418800017408 + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub ) - (func $std/array/createRandomOrderedArray (; 98 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 98 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 f64) - (set_local $0 - (call $~lib/array/Array#constructor - (get_local $0) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $1) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (set_local $2 - (call $~lib/math/NativeMath.random) - ) - (call $~lib/array/Array#__set - (get_local $0) - (get_local $1) - (i32.trunc_s/f64 - (f64.mul - (get_local $2) - (f64.convert_s/i32 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $0) + get_local $0 + call $~lib/array/Array#constructor + set_local $0 + block $break|0 + loop $repeat|0 + get_local $1 + get_local $0 + i32.load offset=4 + i32.ge_s + br_if $break|0 + call $~lib/math/NativeMath.random + set_local $2 + get_local $0 + get_local $1 + get_local $2 + get_local $0 + i32.load offset=4 + f64.convert_s/i32 + f64.mul + i32.trunc_s/f64 + call $~lib/array/Array#__set + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 ) - (func $std/array/isSorted (; 99 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 99 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $break|0 - (set_local $2 - (i32.const 1) - ) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (set_local $4 - (call $~lib/array/Array#__get - (get_local $0) - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (set_local $5 - (call $~lib/array/Array#__get - (get_local $0) - (get_local $2) - ) - ) - (if - (i32.gt_s - (call_indirect (type $iii) - (get_local $4) - (get_local $5) - (get_local $1) - ) - (i32.const 0) - ) - (return - (i32.const 0) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (i32.const 1) + block $break|0 + i32.const 1 + set_local $2 + get_local $0 + i32.load offset=4 + set_local $3 + loop $repeat|0 + get_local $2 + get_local $3 + i32.ge_s + br_if $break|0 + i32.const 2 + set_global $~argc + get_local $0 + get_local $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + set_local $4 + get_local $0 + get_local $2 + call $~lib/array/Array#__get + set_local $5 + get_local $4 + get_local $5 + get_local $1 + call_indirect (type $iii) + i32.const 0 + i32.gt_s + if + i32.const 0 + return + else + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + i32.const 1 ) - (func $std/array/assertSorted (; 100 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (if - (i32.eqz - (call $std/array/isSorted - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 688) - (i32.const 2) - ) - (unreachable) - ) - ) + (func $std/array/assertSorted (; 100 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + get_local $1 + call $~lib/array/Array#sort + get_local $1 + call $std/array/isSorted + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 688 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $std/array/assertSortedDefault (; 101 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (call $std/array/assertSorted - (get_local $0) - (i32.const 47) - ) + (func $std/array/assertSortedDefault (; 101 ;) (type $iv) (param $0 i32) + get_local $0 + i32.const 47 + call $std/array/assertSorted ) - (func $start~anonymous|49 (; 102 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $1) - (get_local $0) - ) + (func $start~anonymous|49 (; 102 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $1 + get_local $0 + i32.sub ) - (func $std/array/createReverseOrderedNestedArray (; 103 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 103 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/array/Array#constructor - (i32.const 512) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (set_local $2 - (call $~lib/array/Array#constructor - (i32.const 1) - ) - ) - (call $~lib/array/Array#__set - (get_local $1) - (get_local $0) - (get_local $2) - ) - (call $~lib/array/Array#__set - (tee_local $2 - (call $~lib/array/Array#__get - (get_local $1) - (get_local $0) - ) - ) - (i32.const 0) - (i32.sub - (i32.sub - (i32.load offset=4 - (get_local $1) - ) - (i32.const 1) - ) - (get_local $0) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + i32.const 512 + call $~lib/array/Array#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + get_local $1 + i32.load offset=4 + i32.ge_s + br_if $break|0 + i32.const 1 + call $~lib/array/Array#constructor + set_local $2 + get_local $1 + get_local $0 + get_local $2 + call $~lib/array/Array#__set + get_local $1 + get_local $0 + call $~lib/array/Array#__get + tee_local $2 + i32.const 0 + get_local $1 + i32.load offset=4 + i32.const 1 + i32.sub + get_local $0 + i32.sub + call $~lib/array/Array#__set + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) - (func $start~anonymous|52 (; 104 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (set_local $0 - (call $~lib/array/Array#__get - (get_local $0) - (i32.const 0) - ) - ) - (set_local $1 - (call $~lib/array/Array#__get - (get_local $1) - (i32.const 0) - ) - ) - (i32.sub - (get_local $0) - (get_local $1) - ) + (func $start~anonymous|52 (; 104 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.const 0 + call $~lib/array/Array#__get + set_local $0 + get_local $1 + i32.const 0 + call $~lib/array/Array#__get + set_local $1 + get_local $0 + get_local $1 + i32.sub ) - (func $~lib/array/Array>#sort (; 105 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 105 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.le_s - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 2) - ) - (block - (set_local $2 - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.const 4) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $3) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $iii) - (get_local $2) - (get_local $4) - (get_local $1) - ) - (i32.const 0) - ) - (block - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (call $~lib/internal/array/insertionSort - (get_local $3) - (get_local $2) - (get_local $1) - ) - (get_local $0) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + tee_local $2 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.const 2 + i32.eq + if + get_local $3 + i32.const 4 + i32.add + i32.load offset=8 + set_local $2 + get_local $3 + i32.load offset=8 + set_local $4 + i32.const 2 + set_global $~argc + get_local $2 + get_local $4 + get_local $1 + call_indirect (type $iii) + i32.const 0 + i32.lt_s + if + get_local $3 + i32.const 4 + i32.add + get_local $4 + i32.store offset=8 + get_local $3 + get_local $2 + i32.store offset=8 + end + get_local $0 + return + end + get_local $3 + get_local $2 + get_local $1 + call $~lib/internal/array/insertionSort + get_local $0 ) - (func $std/array/assertSorted> (; 106 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (if - (i32.eqz - (call $std/array/isSorted - (call $~lib/array/Array>#sort - (get_local $0) - (get_local $1) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 688) - (i32.const 2) - ) - (unreachable) - ) - ) + (func $std/array/assertSorted> (; 106 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + get_local $1 + call $~lib/array/Array>#sort + get_local $1 + call $std/array/isSorted + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 688 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $std/array/Proxy#constructor (; 107 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/Proxy#constructor (; 107 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - (i32.store - (tee_local $1 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (get_local $0) - ) - (get_local $1) + i32.const 4 + call $~lib/memory/memory.allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $std/array/createReverseOrderedElementsArray (; 108 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 108 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/array/Array#constructor - (i32.const 512) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (set_local $2 - (call $std/array/Proxy#constructor - (i32.sub - (i32.sub - (i32.load offset=4 - (get_local $1) - ) - (i32.const 1) - ) - (get_local $0) - ) - ) - ) - (call $~lib/array/Array#__set - (get_local $1) - (get_local $0) - (get_local $2) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + i32.const 512 + call $~lib/array/Array#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + get_local $1 + i32.load offset=4 + i32.ge_s + br_if $break|0 + get_local $1 + i32.load offset=4 + i32.const 1 + i32.sub + get_local $0 + i32.sub + call $std/array/Proxy#constructor + set_local $2 + get_local $1 + get_local $0 + get_local $2 + call $~lib/array/Array#__set + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) - (func $start~anonymous|53 (; 109 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) + (func $start~anonymous|53 (; 109 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.load + get_local $1 + i32.load + i32.sub ) - (func $~lib/internal/string/compareUnsafe (; 110 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/string/compareUnsafe (; 110 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (get_local $0) - ) - (loop $continue|0 - (if - (tee_local $0 - (if (result i32) - (get_local $2) - (i32.eqz - (tee_local $4 - (i32.sub - (i32.load16_u offset=4 - (get_local $3) - ) - (i32.load16_u offset=4 - (get_local $1) - ) - ) - ) - ) - (get_local $2) - ) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (get_local $4) + get_local $0 + set_local $3 + loop $continue|0 + get_local $2 + if (result i32) + get_local $3 + i32.load16_u offset=4 + get_local $1 + i32.load16_u offset=4 + i32.sub + tee_local $4 + i32.eqz + else + get_local $2 + end + tee_local $0 + if + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $3 + i32.const 1 + i32.add + set_local $3 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $continue|0 + end + end + get_local $4 ) - (func $~lib/string/String.__gt (; 111 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gt (; 111 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (tee_local $2 - (i32.eq - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.eqz - (get_local $0) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (set_local $2 - (i32.eqz - (get_local $1) - ) - ) - ) - (if - (get_local $2) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 1) - ) - ) - (i32.gt_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $1) - (select - (get_local $2) - (get_local $3) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + tee_local $2 + i32.eqz + if + get_local $0 + i32.eqz + set_local $2 + end + get_local $2 + i32.eqz + if + get_local $1 + i32.eqz + set_local $2 + end + get_local $2 + if + i32.const 0 + return + end + get_local $1 + i32.load + set_local $3 + get_local $0 + i32.load + tee_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $3 + i32.eqz + if + i32.const 1 + return + end + get_local $0 + get_local $1 + get_local $2 + get_local $3 + get_local $2 + get_local $3 + i32.lt_s + select + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.gt_s ) - (func $~lib/string/String.__lt (; 112 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (; 112 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (tee_local $2 - (i32.eq - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.eqz - (get_local $0) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (set_local $2 - (i32.eqz - (get_local $1) - ) - ) - ) - (if - (get_local $2) - (return - (i32.const 0) - ) - ) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eqz - (tee_local $3 - (i32.load - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 1) - ) - ) - (i32.lt_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $1) - (select - (get_local $2) - (get_local $3) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + tee_local $2 + i32.eqz + if + get_local $0 + i32.eqz + set_local $2 + end + get_local $2 + i32.eqz + if + get_local $1 + i32.eqz + set_local $2 + end + get_local $2 + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $2 + get_local $1 + i32.load + tee_local $3 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + i32.eqz + if + i32.const 1 + return + end + get_local $0 + get_local $1 + get_local $2 + get_local $3 + get_local $2 + get_local $3 + i32.lt_s + select + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.lt_s ) - (func $start~anonymous|54 (; 113 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|54 (; 113 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/string/String.__gt - (get_local $0) - (get_local $1) - ) - ) - (set_local $0 - (call $~lib/string/String.__lt - (get_local $0) - (get_local $1) - ) - ) - (i32.sub - (get_local $2) - (get_local $0) - ) + get_local $0 + get_local $1 + call $~lib/string/String.__gt + set_local $2 + get_local $0 + get_local $1 + call $~lib/string/String.__lt + set_local $0 + get_local $2 + get_local $0 + i32.sub ) - (func $~lib/string/String.__eq (; 114 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 114 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.eqz - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.eqz - (get_local $1) - ) - ) - ) - (if - (get_local $2) - (return - (i32.const 0) - ) - ) - (if - (i32.ne - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - (i32.load - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.eqz + tee_local $2 + i32.eqz + if + get_local $1 + i32.eqz + set_local $2 + end + get_local $2 + if + i32.const 0 + return + end + get_local $0 + i32.load + tee_local $2 + get_local $1 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/string/compareUnsafe + i32.eqz ) - (func $~lib/string/String.__ne (; 115 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.eqz - (call $~lib/string/String.__eq - (get_local $0) - (get_local $1) - ) - ) + (func $~lib/string/String.__ne (; 115 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/string/String.__eq + i32.eqz ) - (func $std/array/isArraysEqual (; 116 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 116 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.ne - (tee_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/array/Array#__get - (get_local $0) - (get_local $2) - ) - ) - (set_local $5 - (call $~lib/array/Array#__get - (get_local $1) - (get_local $2) - ) - ) - (if - (call $~lib/string/String.__ne - (get_local $4) - (get_local $5) - ) - (return - (i32.const 0) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (i32.const 1) + get_local $0 + i32.load offset=4 + tee_local $3 + get_local $1 + i32.load offset=4 + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + block $break|0 + loop $repeat|0 + get_local $2 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $2 + call $~lib/array/Array#__get + set_local $4 + get_local $1 + get_local $2 + call $~lib/array/Array#__get + set_local $5 + get_local $4 + get_local $5 + call $~lib/string/String.__ne + if + i32.const 0 + return + else + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + i32.const 1 ) - (func $~lib/internal/string/allocateUnsafe (; 117 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/string/allocateUnsafe (; 117 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (tee_local $1 - (i32.gt_s - (get_local $0) - (i32.const 0) - ) - ) - (set_local $1 - (i32.le_s - (get_local $0) - (i32.const 536870910) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 14) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (i32.add - (i32.shl - (get_local $0) - (i32.const 1) - ) - (i32.const 4) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 0 + i32.gt_s + tee_local $1 + if + get_local $0 + i32.const 536870910 + i32.le_s + set_local $1 + end + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 14 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.shl + i32.const 4 + i32.add + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/string/String#charAt (; 118 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#charAt (; 118 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.ge_u - (get_local $0) - (i32.load - (i32.const 584) - ) - ) - (return - (i32.const 1560) - ) - ) - (i32.store16 offset=4 - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (i32.const 1) - ) - ) - (i32.load16_u offset=4 - (i32.add - (i32.shl - (get_local $0) - (i32.const 1) - ) - (i32.const 584) - ) - ) - ) - (get_local $1) + get_local $0 + i32.const 584 + i32.load + i32.ge_u + if + i32.const 1560 + return + end + i32.const 1 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $0 + i32.const 1 + i32.shl + i32.const 584 + i32.add + i32.load16_u offset=4 + i32.store16 offset=4 + get_local $1 ) - (func $~lib/internal/string/copyUnsafe (; 119 ;) (; has Stack IR ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (call $~lib/internal/memory/memmove - (i32.add - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 4) - ) - (i32.add - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 4) - ) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) + (func $~lib/internal/string/copyUnsafe (; 119 ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + i32.const 4 + i32.add + get_local $2 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.const 4 + i32.add + get_local $4 + i32.const 1 + i32.shl + call $~lib/internal/memory/memmove ) - (func $~lib/string/String#concat (; 120 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 120 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1712) - (i32.const 110) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (set_local $1 - (i32.const 1800) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.add - (tee_local $3 - (i32.load - (get_local $0) - ) - ) - (tee_local $4 - (i32.load - (get_local $1) - ) - ) - ) - ) - ) - (return - (i32.const 1560) - ) - ) - (call $~lib/internal/string/copyUnsafe - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $2) - ) - ) - (i32.const 0) - (get_local $0) - (i32.const 0) - (get_local $3) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $2) - (get_local $3) - (get_local $1) - (i32.const 0) - (get_local $4) - ) - (get_local $2) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 1712 + i32.const 110 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.eqz + if + i32.const 1800 + set_local $1 + end + get_local $0 + i32.load + tee_local $3 + get_local $1 + i32.load + tee_local $4 + i32.add + tee_local $2 + i32.eqz + if + i32.const 1560 + return + end + get_local $2 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + i32.const 0 + get_local $0 + i32.const 0 + get_local $3 + call $~lib/internal/string/copyUnsafe + get_local $2 + get_local $3 + get_local $1 + i32.const 0 + get_local $4 + call $~lib/internal/string/copyUnsafe + get_local $2 ) - (func $~lib/string/String.__concat (; 121 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (if - (i32.eqz - (get_local $0) - ) - (set_local $0 - (i32.const 1800) - ) - ) - (call $~lib/string/String#concat - (get_local $0) - (get_local $1) - ) + (func $~lib/string/String.__concat (; 121 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.eqz + if + i32.const 1800 + set_local $0 + end + get_local $0 + get_local $1 + call $~lib/string/String#concat ) - (func $std/array/createRandomString (; 122 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 122 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $1 - (i32.const 1560) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $2) - (get_local $0) - ) - ) - (set_local $3 - (call $~lib/string/String#charAt - (i32.trunc_s/f64 - (f64.floor - (f64.mul - (call $~lib/math/NativeMath.random) - (f64.convert_s/i32 - (i32.load - (i32.const 584) - ) - ) - ) - ) - ) - ) - ) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (get_local $3) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + i32.const 1560 + set_local $1 + block $break|0 + loop $repeat|0 + get_local $2 + get_local $0 + i32.ge_s + br_if $break|0 + call $~lib/math/NativeMath.random + i32.const 584 + i32.load + f64.convert_s/i32 + f64.mul + f64.floor + i32.trunc_s/f64 + call $~lib/string/String#charAt + set_local $3 + get_local $1 + get_local $3 + call $~lib/string/String.__concat + set_local $1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) - (func $std/array/createRandomStringArray (; 123 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createRandomStringArray (; 123 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/array/Array#constructor - (i32.const 400) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (set_local $2 - (call $std/array/createRandomString - (i32.trunc_s/f64 - (f64.mul - (call $~lib/math/NativeMath.random) - (f64.const 32) - ) - ) - ) - ) - (call $~lib/array/Array#__set - (get_local $1) - (get_local $0) - (get_local $2) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + i32.const 400 + call $~lib/array/Array#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + get_local $1 + i32.load offset=4 + i32.ge_s + br_if $break|0 + call $~lib/math/NativeMath.random + f64.const 32 + f64.mul + i32.trunc_s/f64 + call $std/array/createRandomString + set_local $2 + get_local $1 + get_local $0 + get_local $2 + call $~lib/array/Array#__set + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) - (func $~lib/string/String#substring (; 124 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 124 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1712) - (i32.const 269) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $1 - (select - (tee_local $2 - (select - (get_local $1) - (i32.const 0) - (i32.gt_s - (get_local $1) - (i32.const 0) - ) - ) - ) - (tee_local $3 - (i32.load - (get_local $0) - ) - ) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (set_local $4 - (select - (tee_local $2 - (select - (i32.const 0) - (get_local $3) - (i32.lt_s - (i32.const 0) - (get_local $3) - ) - ) - ) - (get_local $1) - (i32.lt_s - (get_local $2) - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (tee_local $3 - (i32.sub - (tee_local $1 - (select - (get_local $2) - (get_local $1) - (i32.gt_s - (get_local $2) - (get_local $1) - ) - ) - ) - (get_local $4) - ) - ) - ) - (return - (i32.const 1560) - ) - ) - (if - (tee_local $2 - (i32.eqz - (get_local $4) - ) - ) - (set_local $2 - (i32.eq - (get_local $1) - (i32.load - (get_local $0) - ) - ) - ) - ) - (if - (get_local $2) - (return - (get_local $0) - ) - ) - (call $~lib/internal/string/copyUnsafe - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $3) - ) - ) - (i32.const 0) - (get_local $0) - (get_local $4) - (get_local $3) - ) - (get_local $2) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 1712 + i32.const 269 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + get_local $1 + i32.const 0 + i32.gt_s + select + tee_local $2 + get_local $0 + i32.load + tee_local $3 + get_local $2 + get_local $3 + i32.lt_s + select + set_local $1 + i32.const 0 + get_local $3 + i32.const 0 + get_local $3 + i32.lt_s + select + tee_local $2 + get_local $1 + get_local $2 + get_local $1 + i32.lt_s + select + set_local $4 + get_local $2 + get_local $1 + get_local $2 + get_local $1 + i32.gt_s + select + tee_local $1 + get_local $4 + i32.sub + tee_local $3 + i32.eqz + if + i32.const 1560 + return + end + get_local $4 + i32.eqz + tee_local $2 + if + get_local $1 + get_local $0 + i32.load + i32.eq + set_local $2 + end + get_local $2 + if + get_local $0 + return + end + get_local $3 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + i32.const 0 + get_local $0 + get_local $4 + get_local $3 + call $~lib/internal/string/copyUnsafe + get_local $2 ) - (func $~lib/array/Array#join (; 125 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#join (; 125 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8377,557 +6053,400 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (if - (i32.lt_s - (tee_local $4 - (i32.sub - (i32.load - (i32.const 1900) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $5 - (i32.load - (i32.const 1896) - ) - ) - (set_local $7 - (i32.ne - (tee_local $6 - (i32.load - (i32.const 1872) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (select - (i32.const 1840) - (i32.const 1856) - (i32.and - (i32.load8_u offset=8 - (get_local $5) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $8 - (i32.add - (i32.mul - (i32.add - (get_local $6) - (i32.const 5) - ) - (get_local $4) - ) - (i32.const 5) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $1) - (get_local $4) - ) - ) - (set_local $3 - (i32.add - (i32.eqz - (tee_local $9 - (i32.and - (i32.load8_u offset=8 - (i32.add - (get_local $5) - (get_local $1) - ) - ) - (i32.const 1) - ) - ) - ) - (i32.const 4) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $2) - (get_local $0) - (select - (i32.const 1840) - (i32.const 1856) - (get_local $9) - ) - (i32.const 0) - (get_local $3) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $2) - (get_local $0) - (i32.const 1872) - (i32.const 0) - (get_local $6) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $6) - ) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $3 - (i32.add - (i32.eqz - (tee_local $1 - (i32.and - (i32.load8_u offset=8 - (i32.add - (get_local $5) - (get_local $4) - ) - ) - (i32.const 1) - ) - ) - ) - (i32.const 4) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $2) - (get_local $0) - (select - (i32.const 1840) - (i32.const 1856) - (get_local $1) - ) - (i32.const 0) - (get_local $3) - ) - (set_local $1 - (get_local $2) - ) - (if - (i32.gt_s - (get_local $8) - (tee_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - ) - (block - (set_local $1 - (call $~lib/string/String#substring - (get_local $2) - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (get_local $1) + i32.const 1900 + i32.load + i32.const 1 + i32.sub + tee_local $4 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1896 + i32.load + set_local $5 + i32.const 1872 + i32.load + tee_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $4 + i32.eqz + if + i32.const 1840 + i32.const 1856 + get_local $5 + i32.load8_u offset=8 + i32.const 1 + i32.and + select + return + end + get_local $6 + i32.const 5 + i32.add + get_local $4 + i32.mul + i32.const 5 + i32.add + tee_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $break|0 + loop $repeat|0 + get_local $1 + get_local $4 + i32.ge_s + br_if $break|0 + get_local $5 + get_local $1 + i32.add + i32.load8_u offset=8 + i32.const 1 + i32.and + tee_local $9 + i32.eqz + i32.const 4 + i32.add + set_local $3 + get_local $2 + get_local $0 + i32.const 1840 + i32.const 1856 + get_local $9 + select + i32.const 0 + get_local $3 + call $~lib/internal/string/copyUnsafe + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $7 + if + get_local $2 + get_local $0 + i32.const 1872 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $0 + get_local $6 + i32.add + set_local $0 + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $5 + get_local $4 + i32.add + i32.load8_u offset=8 + i32.const 1 + i32.and + tee_local $1 + i32.eqz + i32.const 4 + i32.add + set_local $3 + get_local $2 + get_local $0 + i32.const 1840 + i32.const 1856 + get_local $1 + select + i32.const 0 + get_local $3 + call $~lib/internal/string/copyUnsafe + get_local $2 + set_local $1 + get_local $8 + get_local $0 + get_local $3 + i32.add + tee_local $0 + i32.gt_s + if + get_local $2 + get_local $0 + call $~lib/string/String#substring + set_local $1 + get_local $2 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + end + get_local $1 ) - (func $~lib/internal/number/decimalCount32 (; 126 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (if (result i32) - (i32.lt_u - (get_local $0) - (i32.const 100000) - ) - (if (result i32) - (i32.lt_u - (get_local $0) - (i32.const 100) - ) - (select - (i32.const 1) - (i32.const 2) - (i32.lt_u - (get_local $0) - (i32.const 10) - ) - ) - (select - (i32.const 3) - (select - (i32.const 4) - (i32.const 5) - (i32.lt_u - (get_local $0) - (i32.const 10000) - ) - ) - (i32.lt_u - (get_local $0) - (i32.const 1000) - ) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $0) - (i32.const 10000000) - ) - (select - (i32.const 6) - (i32.const 7) - (i32.lt_u - (get_local $0) - (i32.const 1000000) - ) - ) - (select - (i32.const 8) - (select - (i32.const 9) - (i32.const 10) - (i32.lt_u - (get_local $0) - (i32.const 1000000000) - ) - ) - (i32.lt_u - (get_local $0) - (i32.const 100000000) - ) - ) - ) - ) + (func $~lib/internal/number/decimalCount32 (; 126 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 100000 + i32.lt_u + if (result i32) + get_local $0 + i32.const 100 + i32.lt_u + if (result i32) + i32.const 1 + i32.const 2 + get_local $0 + i32.const 10 + i32.lt_u + select + else + i32.const 3 + i32.const 4 + i32.const 5 + get_local $0 + i32.const 10000 + i32.lt_u + select + get_local $0 + i32.const 1000 + i32.lt_u + select + end + else + get_local $0 + i32.const 10000000 + i32.lt_u + if (result i32) + i32.const 6 + i32.const 7 + get_local $0 + i32.const 1000000 + i32.lt_u + select + else + i32.const 8 + i32.const 9 + i32.const 10 + get_local $0 + i32.const 1000000000 + i32.lt_u + select + get_local $0 + i32.const 100000000 + i32.lt_u + select + end + end ) - (func $~lib/internal/number/utoa32_lut (; 127 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/number/utoa32_lut (; 127 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (i32.const 2488) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 10000) - ) - (block - (set_local $4 - (i32.rem_u - (get_local $1) - (i32.const 10000) - ) - ) - (set_local $1 - (i32.div_u - (get_local $1) - (i32.const 10000) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i32.const 1) - ) - ) - (i64.or - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (i32.div_u - (get_local $4) - (i32.const 100) - ) - (i32.const 2) - ) - ) - ) - (i64.shl - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (i32.rem_u - (get_local $4) - (i32.const 100) - ) - (i32.const 2) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 100) - ) - (block - (set_local $4 - (i32.rem_u - (get_local $1) - (i32.const 100) - ) - ) - (set_local $1 - (i32.div_u - (get_local $1) - (i32.const 100) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (i32.const 1) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 10) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $2) - (i32.const 2) - ) - (i32.const 1) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $2) - (i32.const 1) - ) - (i32.const 1) - ) - ) - (i32.add - (get_local $1) - (i32.const 48) - ) - ) - ) + i32.const 2488 + i32.load + set_local $3 + loop $continue|0 + get_local $1 + i32.const 10000 + i32.ge_u + if + get_local $1 + i32.const 10000 + i32.rem_u + set_local $4 + get_local $1 + i32.const 10000 + i32.div_u + set_local $1 + get_local $0 + get_local $2 + i32.const 4 + i32.sub + tee_local $2 + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + get_local $3 + get_local $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + br $continue|0 + end + end + get_local $1 + i32.const 100 + i32.ge_u + if + get_local $1 + i32.const 100 + i32.rem_u + set_local $4 + get_local $1 + i32.const 100 + i32.div_u + set_local $1 + get_local $0 + get_local $2 + i32.const 2 + i32.sub + tee_local $2 + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + i32.store offset=4 + end + get_local $1 + i32.const 10 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + i32.store offset=4 + else + get_local $0 + get_local $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + get_local $1 + i32.const 48 + i32.add + i32.store16 offset=4 + end ) - (func $~lib/internal/number/itoa32 (; 128 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/itoa32 (; 128 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (get_local $0) - ) - (return - (i32.const 1968) - ) - ) - (if - (tee_local $2 - (i32.lt_s - (get_local $0) - (i32.const 0) - ) - ) - (set_local $0 - (i32.sub - (i32.const 0) - (get_local $0) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (tee_local $3 - (i32.add - (tee_local $1 - (call $~lib/internal/number/decimalCount32 - (get_local $0) - ) - ) - (get_local $2) - ) - ) - ) - ) - (get_local $0) - (get_local $3) - ) - (if - (get_local $2) - (i32.store16 offset=4 - (get_local $1) - (i32.const 45) - ) - ) - (get_local $1) + get_local $0 + i32.eqz + if + i32.const 1968 + return + end + get_local $0 + i32.const 0 + i32.lt_s + tee_local $2 + if + i32.const 0 + get_local $0 + i32.sub + set_local $0 + end + get_local $0 + call $~lib/internal/number/decimalCount32 + tee_local $1 + get_local $2 + i32.add + tee_local $3 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $0 + get_local $3 + call $~lib/internal/number/utoa32_lut + get_local $2 + if + get_local $1 + i32.const 45 + i32.store16 offset=4 + end + get_local $1 ) - (func $~lib/internal/number/itoa (; 129 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/internal/number/itoa32 - (get_local $0) - ) + (func $~lib/internal/number/itoa (; 129 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + call $~lib/internal/number/itoa32 ) - (func $~lib/internal/number/itoa_stream (; 130 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/number/itoa_stream (; 130 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (i32.const 48) - ) - (return - (i32.const 1) - ) - ) - ) - (if - (tee_local $3 - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - ) - (set_local $2 - (i32.sub - (i32.const 0) - (get_local $2) - ) - ) - ) - (set_local $1 - (call $~lib/internal/number/decimalCount32 - (get_local $2) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $2) - (tee_local $1 - (i32.add - (get_local $1) - (get_local $3) - ) - ) - ) - (if - (get_local $3) - (i32.store16 offset=4 - (get_local $0) - (i32.const 45) - ) - ) - (get_local $1) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i32.eqz + if + get_local $0 + i32.const 48 + i32.store16 offset=4 + i32.const 1 + return + end + get_local $2 + i32.const 0 + i32.lt_s + tee_local $3 + if + i32.const 0 + get_local $2 + i32.sub + set_local $2 + end + get_local $2 + call $~lib/internal/number/decimalCount32 + set_local $1 + get_local $0 + get_local $2 + get_local $1 + get_local $3 + i32.add + tee_local $1 + call $~lib/internal/number/utoa32_lut + get_local $3 + if + get_local $0 + i32.const 45 + i32.store16 offset=4 + end + get_local $1 ) - (func $~lib/array/Array#join (; 131 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 131 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8936,244 +6455,173 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (if - (i32.lt_s - (tee_local $4 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $7 - (i32.ne - (tee_local $6 - (i32.load - (get_local $1) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (call $~lib/internal/number/itoa - (i32.load offset=8 - (get_local $5) - ) - ) - ) - ) - (set_local $0 - (call $~lib/internal/string/allocateUnsafe - (tee_local $8 - (i32.add - (i32.mul - (i32.add - (get_local $6) - (i32.const 11) - ) - (get_local $4) - ) - (i32.const 11) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $3) - (get_local $4) - ) - ) - (set_local $9 - (call $~lib/internal/number/itoa_stream - (get_local $0) - (get_local $2) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (get_local $9) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $0) - (get_local $2) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $2 - (i32.add - (get_local $2) - (get_local $6) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $1 - (call $~lib/internal/number/itoa_stream - (get_local $0) - (get_local $2) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $3 - (get_local $0) - ) - (if - (i32.gt_s - (get_local $8) - (tee_local $2 - (i32.add - (get_local $2) - (get_local $1) - ) - ) - ) - (block - (set_local $3 - (call $~lib/string/String#substring - (get_local $0) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (get_local $3) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + tee_local $4 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + tee_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $4 + i32.eqz + if + get_local $5 + i32.load offset=8 + call $~lib/internal/number/itoa + return + end + get_local $6 + i32.const 11 + i32.add + get_local $4 + i32.mul + i32.const 11 + i32.add + tee_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $0 + block $break|0 + loop $repeat|0 + get_local $3 + get_local $4 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $2 + get_local $5 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + call $~lib/internal/number/itoa_stream + set_local $9 + get_local $2 + get_local $9 + i32.add + set_local $2 + get_local $7 + if + get_local $0 + get_local $2 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $2 + get_local $6 + i32.add + set_local $2 + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + get_local $2 + get_local $5 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + call $~lib/internal/number/itoa_stream + set_local $1 + get_local $0 + set_local $3 + get_local $8 + get_local $2 + get_local $1 + i32.add + tee_local $2 + i32.gt_s + if + get_local $0 + get_local $2 + call $~lib/string/String#substring + set_local $3 + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + end + get_local $3 ) - (func $~lib/internal/number/utoa32 (; 132 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/utoa32 (; 132 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $0) - ) - (return - (i32.const 1968) - ) - ) - (call $~lib/internal/number/utoa32_lut - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $1 - (call $~lib/internal/number/decimalCount32 - (get_local $0) - ) - ) - ) - ) - (get_local $0) - (get_local $1) - ) - (get_local $2) + get_local $0 + i32.eqz + if + i32.const 1968 + return + end + get_local $0 + call $~lib/internal/number/decimalCount32 + tee_local $1 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + get_local $0 + get_local $1 + call $~lib/internal/number/utoa32_lut + get_local $2 ) - (func $~lib/internal/number/itoa (; 133 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/internal/number/utoa32 - (get_local $0) - ) + (func $~lib/internal/number/itoa (; 133 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + call $~lib/internal/number/utoa32 ) - (func $~lib/internal/number/itoa_stream (; 134 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/number/itoa_stream (; 134 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (i32.const 48) - ) - (return - (i32.const 1) - ) - ) - ) - (set_local $3 - (call $~lib/internal/number/decimalCount32 - (get_local $2) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $2) - (get_local $3) - ) - (get_local $3) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i32.eqz + if + get_local $0 + i32.const 48 + i32.store16 offset=4 + i32.const 1 + return + end + get_local $2 + call $~lib/internal/number/decimalCount32 + set_local $3 + get_local $0 + get_local $2 + get_local $3 + call $~lib/internal/number/utoa32_lut + get_local $3 ) - (func $~lib/array/Array#join (; 135 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 135 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9182,185 +6630,131 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (if - (i32.lt_s - (tee_local $4 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $7 - (i32.ne - (tee_local $6 - (i32.load - (get_local $1) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (call $~lib/internal/number/itoa - (i32.load offset=8 - (get_local $5) - ) - ) - ) - ) - (set_local $0 - (call $~lib/internal/string/allocateUnsafe - (tee_local $8 - (i32.add - (i32.mul - (i32.add - (get_local $6) - (i32.const 10) - ) - (get_local $4) - ) - (i32.const 10) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $3) - (get_local $4) - ) - ) - (set_local $9 - (call $~lib/internal/number/itoa_stream - (get_local $0) - (get_local $2) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (get_local $9) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $0) - (get_local $2) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $2 - (i32.add - (get_local $2) - (get_local $6) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $1 - (call $~lib/internal/number/itoa_stream - (get_local $0) - (get_local $2) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $3 - (get_local $0) - ) - (if - (i32.gt_s - (get_local $8) - (tee_local $2 - (i32.add - (get_local $2) - (get_local $1) - ) - ) - ) - (block - (set_local $3 - (call $~lib/string/String#substring - (get_local $0) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (get_local $3) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + tee_local $4 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + tee_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $4 + i32.eqz + if + get_local $5 + i32.load offset=8 + call $~lib/internal/number/itoa + return + end + get_local $6 + i32.const 10 + i32.add + get_local $4 + i32.mul + i32.const 10 + i32.add + tee_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $0 + block $break|0 + loop $repeat|0 + get_local $3 + get_local $4 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $2 + get_local $5 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + call $~lib/internal/number/itoa_stream + set_local $9 + get_local $2 + get_local $9 + i32.add + set_local $2 + get_local $7 + if + get_local $0 + get_local $2 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $2 + get_local $6 + i32.add + set_local $2 + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + get_local $2 + get_local $5 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + call $~lib/internal/number/itoa_stream + set_local $1 + get_local $0 + set_local $3 + get_local $8 + get_local $2 + get_local $1 + i32.add + tee_local $2 + i32.gt_s + if + get_local $0 + get_local $2 + call $~lib/string/String#substring + set_local $3 + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + end + get_local $3 ) - (func $~lib/builtins/isFinite (; 136 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (f64.eq - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) + (func $~lib/builtins/isFinite (; 136 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.eq ) - (func $~lib/internal/number/genDigits (; 137 ;) (; has Stack IR ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/internal/number/genDigits (; 137 ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i32) @@ -9369,985 +6763,686 @@ (local $12 i32) (local $13 i64) (local $14 i64) - (set_local $8 - (i64.sub - (get_local $3) - (get_local $1) - ) - ) - (set_local $1 - (i64.and - (get_local $3) - (tee_local $14 - (i64.sub - (tee_local $10 - (i64.shl - (i64.const 1) - (tee_local $13 - (i64.extend_s/i32 - (tee_local $11 - (i32.sub - (i32.const 0) - (get_local $4) - ) - ) - ) - ) - ) - ) - (i64.const 1) - ) - ) - ) - ) - (set_local $9 - (call $~lib/internal/number/decimalCount32 - (tee_local $7 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (get_local $13) - ) - ) - ) - ) - ) - (set_local $12 - (i32.load - (i32.const 4272) - ) - ) - (loop $continue|0 - (if - (i32.gt_s - (get_local $9) - (i32.const 0) - ) - (block - (block $break|1 - (block $case10|1 - (block $case9|1 - (block $case8|1 - (block $case7|1 - (block $case6|1 - (block $case5|1 - (block $case4|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (if - (i32.ne - (tee_local $2 - (get_local $9) - ) - (i32.const 10) - ) - (block - (block $tablify|0 - (br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $tablify|0 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $case10|1) - ) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 1000000000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 1000000000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 100000000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 100000000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 10000000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 10000000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 1000000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 1000000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 100000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 100000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 10000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 10000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 1000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 1000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 100) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 100) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 10) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 10) - ) - ) - (br $break|1) - ) - (set_local $4 - (get_local $7) - ) - (set_local $7 - (i32.const 0) - ) - (br $break|1) - ) - (set_local $4 - (i32.const 0) - ) - ) - (if - (i32.or - (get_local $4) - (get_local $6) - ) - (block - (set_local $6 - (i32.add - (tee_local $2 - (get_local $6) - ) - (i32.const 1) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (i32.add - (i32.and - (get_local $4) - (i32.const 65535) - ) - (i32.const 48) - ) - ) - ) - ) - (set_local $9 - (i32.sub - (get_local $9) - (i32.const 1) - ) - ) - (if - (i64.le_u - (tee_local $3 - (i64.add - (i64.shl - (i64.extend_u/i32 - (get_local $7) - ) - (i64.extend_s/i32 - (get_local $11) - ) - ) - (get_local $1) - ) - ) - (get_local $5) - ) - (block - (set_global $~lib/internal/number/_K - (i32.add - (get_global $~lib/internal/number/_K) - (get_local $9) - ) - ) - (set_local $1 - (i64.shl - (i64.load32_u offset=8 - (i32.add - (get_local $12) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - ) - (i64.extend_s/i32 - (get_local $11) - ) - ) - ) - (set_local $7 - (i32.load16_u offset=4 - (tee_local $2 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $6) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (tee_local $0 - (i64.lt_u - (get_local $3) - (get_local $8) - ) - ) - (set_local $0 - (i64.ge_u - (i64.sub - (get_local $5) - (get_local $3) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (if - (i32.eqz - (tee_local $0 - (i64.lt_u - (i64.add - (get_local $3) - (get_local $1) - ) - (get_local $8) - ) - ) - ) - (set_local $0 - (i64.gt_u - (i64.sub - (get_local $8) - (get_local $3) - ) - (i64.sub - (i64.add - (get_local $3) - (get_local $1) - ) - (get_local $8) - ) - ) - ) - ) - ) - (if - (get_local $0) - (block - (set_local $7 - (i32.sub - (get_local $7) - (i32.const 1) - ) - ) - (set_local $3 - (i64.add - (get_local $3) - (get_local $1) - ) - ) - (br $continue|2) - ) - ) - ) - (i32.store16 offset=4 - (get_local $2) - (get_local $7) - ) - (return - (get_local $6) - ) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|3 (result i32) - (set_local $5 - (i64.mul - (get_local $5) - (i64.const 10) - ) - ) - (if - (i64.ne - (i64.or - (tee_local $3 - (i64.shr_u - (tee_local $1 - (i64.mul - (get_local $1) - (i64.const 10) - ) - ) - (i64.extend_s/i32 - (get_local $11) - ) - ) - ) - (i64.extend_s/i32 - (get_local $6) - ) - ) - (i64.const 0) - ) - (block - (set_local $6 - (i32.add - (tee_local $4 - (get_local $6) - ) - (i32.const 1) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (i32.add - (i32.and - (i32.wrap/i64 - (get_local $3) - ) - (i32.const 65535) - ) - (i32.const 48) - ) - ) - ) - ) - (set_local $9 - (i32.sub - (get_local $9) - (i32.const 1) - ) - ) - (if (result i32) - (i64.lt_u - (tee_local $1 - (i64.and - (get_local $1) - (get_local $14) - ) - ) - (get_local $5) - ) - (block (result i32) - (set_global $~lib/internal/number/_K - (i32.add - (get_global $~lib/internal/number/_K) - (get_local $9) - ) - ) - (set_local $8 - (i64.mul - (get_local $8) - (i64.load32_u offset=8 - (i32.add - (get_local $12) - (i32.shl - (i32.sub - (i32.const 0) - (get_local $9) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $7 - (i32.load16_u offset=4 - (tee_local $4 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $6) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (loop $continue|4 - (if - (tee_local $2 - (i64.lt_u - (get_local $1) - (get_local $8) - ) - ) - (set_local $2 - (i64.ge_u - (i64.sub - (get_local $5) - (get_local $1) - ) - (get_local $10) - ) - ) - ) - (if - (get_local $2) - (if - (i32.eqz - (tee_local $2 - (i64.lt_u - (i64.add - (get_local $1) - (get_local $10) - ) - (get_local $8) - ) - ) - ) - (set_local $2 - (i64.gt_u - (i64.sub - (get_local $8) - (get_local $1) - ) - (i64.sub - (i64.add - (get_local $1) - (get_local $10) - ) - (get_local $8) - ) - ) - ) - ) - ) - (if - (get_local $2) - (block - (set_local $7 - (i32.sub - (get_local $7) - (i32.const 1) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (get_local $10) - ) - ) - (br $continue|4) - ) - ) - ) - (i32.store16 offset=4 - (get_local $4) - (get_local $7) - ) - (get_local $6) - ) - (br $continue|3) - ) - ) + get_local $3 + get_local $1 + i64.sub + set_local $8 + get_local $3 + i64.const 1 + i32.const 0 + get_local $4 + i32.sub + tee_local $11 + i64.extend_s/i32 + tee_local $13 + i64.shl + tee_local $10 + i64.const 1 + i64.sub + tee_local $14 + i64.and + set_local $1 + get_local $3 + get_local $13 + i64.shr_u + i32.wrap/i64 + tee_local $7 + call $~lib/internal/number/decimalCount32 + set_local $9 + i32.const 4272 + i32.load + set_local $12 + loop $continue|0 + get_local $9 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + get_local $9 + tee_local $2 + i32.const 10 + i32.ne + if + block $tablify|0 + get_local $2 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $tablify|0 + end + br $case10|1 + end + get_local $7 + i32.const 1000000000 + i32.div_u + set_local $4 + get_local $7 + i32.const 1000000000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 100000000 + i32.div_u + set_local $4 + get_local $7 + i32.const 100000000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 10000000 + i32.div_u + set_local $4 + get_local $7 + i32.const 10000000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 1000000 + i32.div_u + set_local $4 + get_local $7 + i32.const 1000000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 100000 + i32.div_u + set_local $4 + get_local $7 + i32.const 100000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 10000 + i32.div_u + set_local $4 + get_local $7 + i32.const 10000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 1000 + i32.div_u + set_local $4 + get_local $7 + i32.const 1000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 100 + i32.div_u + set_local $4 + get_local $7 + i32.const 100 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 10 + i32.div_u + set_local $4 + get_local $7 + i32.const 10 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + set_local $4 + i32.const 0 + set_local $7 + br $break|1 + end + i32.const 0 + set_local $4 + end + get_local $4 + get_local $6 + i32.or + if + get_local $6 + tee_local $2 + i32.const 1 + i32.add + set_local $6 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $4 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 offset=4 + end + get_local $9 + i32.const 1 + i32.sub + set_local $9 + get_local $7 + i64.extend_u/i32 + get_local $11 + i64.extend_s/i32 + i64.shl + get_local $1 + i64.add + tee_local $3 + get_local $5 + i64.le_u + if + get_global $~lib/internal/number/_K + get_local $9 + i32.add + set_global $~lib/internal/number/_K + get_local $12 + get_local $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + get_local $11 + i64.extend_s/i32 + i64.shl + set_local $1 + get_local $0 + get_local $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + tee_local $2 + i32.load16_u offset=4 + set_local $7 + loop $continue|2 + get_local $3 + get_local $8 + i64.lt_u + tee_local $0 + if + get_local $5 + get_local $3 + i64.sub + get_local $1 + i64.ge_u + set_local $0 + end + get_local $0 + if + get_local $3 + get_local $1 + i64.add + get_local $8 + i64.lt_u + tee_local $0 + i32.eqz + if + get_local $8 + get_local $3 + i64.sub + get_local $3 + get_local $1 + i64.add + get_local $8 + i64.sub + i64.gt_u + set_local $0 + end + end + get_local $0 + if + get_local $7 + i32.const 1 + i32.sub + set_local $7 + get_local $3 + get_local $1 + i64.add + set_local $3 + br $continue|2 + end + end + get_local $2 + get_local $7 + i32.store16 offset=4 + get_local $6 + return + end + br $continue|0 + end + end + loop $continue|3 (result i32) + get_local $5 + i64.const 10 + i64.mul + set_local $5 + get_local $1 + i64.const 10 + i64.mul + tee_local $1 + get_local $11 + i64.extend_s/i32 + i64.shr_u + tee_local $3 + get_local $6 + i64.extend_s/i32 + i64.or + i64.const 0 + i64.ne + if + get_local $6 + tee_local $4 + i32.const 1 + i32.add + set_local $6 + get_local $0 + get_local $4 + i32.const 1 + i32.shl + i32.add + get_local $3 + i32.wrap/i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 offset=4 + end + get_local $9 + i32.const 1 + i32.sub + set_local $9 + get_local $1 + get_local $14 + i64.and + tee_local $1 + get_local $5 + i64.lt_u + if (result i32) + get_global $~lib/internal/number/_K + get_local $9 + i32.add + set_global $~lib/internal/number/_K + get_local $8 + get_local $12 + i32.const 0 + get_local $9 + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + i64.mul + set_local $8 + get_local $0 + get_local $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + tee_local $4 + i32.load16_u offset=4 + set_local $7 + loop $continue|4 + get_local $1 + get_local $8 + i64.lt_u + tee_local $2 + if + get_local $5 + get_local $1 + i64.sub + get_local $10 + i64.ge_u + set_local $2 + end + get_local $2 + if + get_local $1 + get_local $10 + i64.add + get_local $8 + i64.lt_u + tee_local $2 + i32.eqz + if + get_local $8 + get_local $1 + i64.sub + get_local $1 + get_local $10 + i64.add + get_local $8 + i64.sub + i64.gt_u + set_local $2 + end + end + get_local $2 + if + get_local $7 + i32.const 1 + i32.sub + set_local $7 + get_local $1 + get_local $10 + i64.add + set_local $1 + br $continue|4 + end + end + get_local $4 + get_local $7 + i32.store16 offset=4 + get_local $6 + else + br $continue|3 + end + end ) - (func $~lib/internal/number/prettify (; 138 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/number/prettify (; 138 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 3145774) - ) - (return - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (tee_local $4 - (i32.le_s - (get_local $1) - (tee_local $3 - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (set_local $4 - (i32.le_s - (get_local $3) - (i32.const 21) - ) - ) - ) - (if (result i32) - (get_local $4) - (block (result i32) - (block $break|0 - (set_local $4 - (get_local $1) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $4) - (get_local $3) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (i32.const 48) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 3145774) - ) - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - (block (result i32) - (if - (tee_local $4 - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - ) - (set_local $4 - (i32.le_s - (get_local $3) - (i32.const 21) - ) - ) - ) - (if (result i32) - (get_local $4) - (block (result i32) - (call $~lib/internal/memory/memmove - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - (i32.const 6) - ) - (i32.add - (get_local $4) - (i32.const 4) - ) - (i32.shl - (i32.sub - (i32.const 0) - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 46) - ) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (block (result i32) - (if - (tee_local $4 - (i32.lt_s - (i32.const -6) - (get_local $3) - ) - ) - (set_local $4 - (i32.le_s - (get_local $3) - (i32.const 0) - ) - ) - ) - (if (result i32) - (get_local $4) - (block (result i32) - (call $~lib/internal/memory/memmove - (i32.add - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.shl - (tee_local $4 - (i32.sub - (i32.const 2) - (get_local $3) - ) - ) - (i32.const 1) - ) - ) - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 3014704) - ) - (block $break|1 - (set_local $3 - (i32.const 2) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $3) - (get_local $4) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 48) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (i32.add - (get_local $1) - (get_local $4) - ) - ) - (if (result i32) - (i32.eq - (get_local $1) - (i32.const 1) - ) - (block (result i32) - (i32.store16 offset=6 - (get_local $0) - (i32.const 101) - ) - (set_local $4 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (if - (tee_local $0 - (i32.lt_s - (tee_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 0) - ) - ) - (set_local $3 - (i32.sub - (i32.const 0) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $3) - ) - (i32.const 1) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $4) - (get_local $3) - (get_local $2) - ) - (i32.store16 offset=4 - (get_local $4) - (select - (i32.const 45) - (i32.const 43) - (get_local $0) - ) - ) - (i32.add - (get_local $2) - (i32.const 2) - ) - ) - (block (result i32) - (call $~lib/internal/memory/memmove - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.add - (get_local $0) - (i32.const 6) - ) - (i32.sub - (tee_local $2 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - ) - (i32.store16 offset=6 - (get_local $0) - (i32.const 46) - ) - (i32.store16 offset=6 - (tee_local $0 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 101) - ) - (set_local $4 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (if - (tee_local $0 - (i32.lt_s - (tee_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 0) - ) - ) - (set_local $3 - (i32.sub - (i32.const 0) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $3) - ) - (i32.const 1) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $4) - (get_local $3) - (get_local $2) - ) - (i32.store16 offset=4 - (get_local $4) - (select - (i32.const 45) - (i32.const 43) - (get_local $0) - ) - ) - (i32.add - (i32.add - (get_local $1) - (get_local $2) - ) - (i32.const 2) - ) - ) - ) - ) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store offset=4 + get_local $1 + i32.const 2 + i32.add + return + end + get_local $1 + get_local $1 + get_local $2 + i32.add + tee_local $3 + i32.le_s + tee_local $4 + if + get_local $3 + i32.const 21 + i32.le_s + set_local $4 + end + get_local $4 + if (result i32) + block $break|0 + get_local $1 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $4 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 offset=4 + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store offset=4 + get_local $3 + i32.const 2 + i32.add + else + get_local $3 + i32.const 0 + i32.gt_s + tee_local $4 + if + get_local $3 + i32.const 21 + i32.le_s + set_local $4 + end + get_local $4 + if (result i32) + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + tee_local $4 + i32.const 6 + i32.add + get_local $4 + i32.const 4 + i32.add + i32.const 0 + get_local $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/internal/memory/memmove + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.store16 offset=4 + get_local $1 + i32.const 1 + i32.add + else + i32.const -6 + get_local $3 + i32.lt_s + tee_local $4 + if + get_local $3 + i32.const 0 + i32.le_s + set_local $4 + end + get_local $4 + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.const 2 + get_local $3 + i32.sub + tee_local $4 + i32.const 1 + i32.shl + i32.add + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 1 + i32.shl + call $~lib/internal/memory/memmove + get_local $0 + i32.const 3014704 + i32.store offset=4 + block $break|1 + i32.const 2 + set_local $3 + loop $repeat|1 + get_local $3 + get_local $4 + i32.ge_s + br_if $break|1 + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 offset=4 + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|1 + unreachable + end + unreachable + end + get_local $1 + get_local $4 + i32.add + else + get_local $1 + i32.const 1 + i32.eq + if (result i32) + get_local $0 + i32.const 101 + i32.store16 offset=6 + get_local $0 + i32.const 4 + i32.add + set_local $4 + get_local $3 + i32.const 1 + i32.sub + tee_local $3 + i32.const 0 + i32.lt_s + tee_local $0 + if + i32.const 0 + get_local $3 + i32.sub + set_local $3 + end + get_local $3 + call $~lib/internal/number/decimalCount32 + i32.const 1 + i32.add + set_local $2 + get_local $4 + get_local $3 + get_local $2 + call $~lib/internal/number/utoa32_lut + get_local $4 + i32.const 45 + i32.const 43 + get_local $0 + select + i32.store16 offset=4 + get_local $2 + i32.const 2 + i32.add + else + get_local $0 + i32.const 8 + i32.add + get_local $0 + i32.const 6 + i32.add + get_local $1 + i32.const 1 + i32.shl + tee_local $2 + i32.const 2 + i32.sub + call $~lib/internal/memory/memmove + get_local $0 + i32.const 46 + i32.store16 offset=6 + get_local $0 + get_local $2 + i32.add + tee_local $0 + i32.const 101 + i32.store16 offset=6 + get_local $0 + i32.const 4 + i32.add + set_local $4 + get_local $3 + i32.const 1 + i32.sub + tee_local $3 + i32.const 0 + i32.lt_s + tee_local $0 + if + i32.const 0 + get_local $3 + i32.sub + set_local $3 + end + get_local $3 + call $~lib/internal/number/decimalCount32 + i32.const 1 + i32.add + set_local $2 + get_local $4 + get_local $3 + get_local $2 + call $~lib/internal/number/utoa32_lut + get_local $4 + i32.const 45 + i32.const 43 + get_local $0 + select + i32.store16 offset=4 + get_local $1 + get_local $2 + i32.add + i32.const 2 + i32.add + end + end + end + end ) - (func $~lib/internal/number/dtoa_core (; 139 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/internal/number/dtoa_core (; 139 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) @@ -10363,667 +7458,439 @@ (local $14 i32) (local $15 i32) (local $16 i32) - (if - (tee_local $14 - (f64.lt - (get_local $1) - (f64.const 0) - ) - ) - (block - (set_local $1 - (f64.neg - (get_local $1) - ) - ) - (i32.store16 offset=4 - (get_local $0) - (i32.const 45) - ) - ) - ) - (set_local $2 - (i64.add - (i64.shl - (i64.extend_u/i32 - (tee_local $3 - (i32.ne - (tee_local $15 - (i32.wrap/i64 - (i64.shr_u - (i64.and - (tee_local $2 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.const 9218868437227405312) - ) - (i64.const 52) - ) - ) - ) - (i32.const 0) - ) - ) - ) - (i64.const 52) - ) - (i64.and - (get_local $2) - (i64.const 4503599627370495) - ) - ) - ) - (set_local $3 - (i32.sub - (tee_local $15 - (i32.sub - (select - (get_local $15) - (i32.const 1) - (get_local $3) - ) - (i32.const 1075) - ) - ) - (i32.const 1) - ) - ) - (set_local $16 - (i32.wrap/i64 - (i64.clz - (tee_local $4 - (i64.add - (i64.shl - (get_local $2) - (i64.const 1) - ) - (i64.const 1) - ) - ) - ) - ) - ) - (set_global $~lib/internal/number/_frc_plus - (i64.shl - (get_local $4) - (i64.extend_s/i32 - (get_local $16) - ) - ) - ) - (set_global $~lib/internal/number/_frc_minus - (i64.shl - (i64.sub - (i64.shl - (get_local $2) - (i64.extend_s/i32 - (tee_local $5 - (i32.add - (i64.eq - (get_local $2) - (i64.const 4503599627370496) - ) - (i32.const 1) - ) - ) - ) - ) - (i64.const 1) - ) - (i64.extend_s/i32 - (i32.sub - (i32.sub - (get_local $15) - (get_local $5) - ) - (tee_local $3 - (i32.sub - (get_local $3) - (get_local $16) - ) - ) - ) - ) - ) - ) - (set_global $~lib/internal/number/_exp - (get_local $3) - ) - (set_global $~lib/internal/number/_K - (i32.sub - (i32.const 348) - (i32.shl - (tee_local $3 - (i32.add - (i32.shr_s - (i32.add - (tee_local $16 - (i32.trunc_s/f64 - (tee_local $1 - (f64.add - (f64.mul - (f64.convert_s/i32 - (i32.sub - (i32.const -61) - (get_global $~lib/internal/number/_exp) - ) - ) - (f64.const 0.30102999566398114) - ) - (f64.const 347) - ) - ) - ) - ) - (f64.ne - (f64.convert_s/i32 - (get_local $16) - ) - (get_local $1) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - ) - (i32.const 3) - ) - ) - ) - (set_local $5 - (i32.load - (i32.const 4200) - ) - ) - (set_global $~lib/internal/number/_frc_pow - (i64.load offset=8 - (i32.add - (i32.load - (i32.const 3936) - ) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - ) - (set_global $~lib/internal/number/_exp_pow - (i32.load16_s offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $9 - (i64.mul - (tee_local $7 - (i64.and - (tee_local $2 - (i64.shl - (get_local $2) - (i64.extend_s/i32 - (tee_local $5 - (i32.wrap/i64 - (i64.clz - (get_local $2) - ) - ) - ) - ) - ) - ) - (i64.const 4294967295) - ) - ) - (tee_local $8 - (i64.and - (tee_local $4 - (get_global $~lib/internal/number/_frc_pow) - ) - (i64.const 4294967295) - ) - ) - ) - ) - (set_local $2 - (i64.add - (i64.mul - (get_local $7) - (tee_local $10 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) - (i64.and - (tee_local $6 - (i64.add - (i64.mul - (tee_local $11 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - (get_local $8) - ) - (i64.shr_u - (get_local $9) - (i64.const 32) - ) - ) - ) - (i64.const 4294967295) - ) - ) - ) - (set_local $2 - (i64.add - (i64.add - (i64.mul - (get_local $11) - (get_local $10) - ) - (i64.shr_u - (get_local $6) - (i64.const 32) - ) - ) - (i64.shr_u - (i64.add - (get_local $2) - (i64.const 2147483647) - ) - (i64.const 32) - ) - ) - ) - (set_local $7 - (i64.mul - (tee_local $9 - (i64.and - (tee_local $6 - (get_global $~lib/internal/number/_frc_plus) - ) - (i64.const 4294967295) - ) - ) - (tee_local $10 - (i64.and - (get_local $4) - (i64.const 4294967295) - ) - ) - ) - ) - (set_local $13 - (i64.add - (i64.mul - (get_local $9) - (tee_local $8 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) - (i64.and - (tee_local $12 - (i64.add - (i64.mul - (tee_local $11 - (i64.shr_u - (get_local $6) - (i64.const 32) - ) - ) - (get_local $10) - ) - (i64.shr_u - (get_local $7) - (i64.const 32) - ) - ) - ) - (i64.const 4294967295) - ) - ) - ) - (set_local $13 - (i64.add - (i64.add - (i64.mul - (get_local $11) - (get_local $8) - ) - (i64.shr_u - (get_local $12) - (i64.const 32) - ) - ) - (i64.shr_u - (i64.add - (get_local $13) - (i64.const 2147483647) - ) - (i64.const 32) - ) - ) - ) - (set_local $9 - (i64.mul - (tee_local $7 - (i64.and - (tee_local $12 - (get_global $~lib/internal/number/_frc_minus) - ) - (i64.const 4294967295) - ) - ) - (tee_local $8 - (i64.and - (get_local $4) - (i64.const 4294967295) - ) - ) - ) - ) - (set_local $12 - (i64.add - (i64.mul - (get_local $7) - (tee_local $10 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) - (i64.and - (tee_local $6 - (i64.add - (i64.mul - (tee_local $11 - (i64.shr_u - (get_local $12) - (i64.const 32) - ) - ) - (get_local $8) - ) - (i64.shr_u - (get_local $9) - (i64.const 32) - ) - ) - ) - (i64.const 4294967295) - ) - ) - ) - (set_local $6 - (i64.sub - (tee_local $13 - (i64.sub - (get_local $13) - (i64.const 1) - ) - ) - (i64.add - (i64.add - (i64.add - (i64.mul - (get_local $11) - (get_local $10) - ) - (i64.shr_u - (get_local $6) - (i64.const 32) - ) - ) - (i64.shr_u - (i64.add - (get_local $12) - (i64.const 2147483647) - ) - (i64.const 32) - ) - ) - (i64.const 1) - ) - ) - ) - (set_local $3 - (call $~lib/internal/number/genDigits - (get_local $0) - (get_local $2) - (tee_local $3 - (i32.sub - (i32.add - (i32.sub - (get_local $15) - (get_local $5) - ) - (tee_local $5 - (get_global $~lib/internal/number/_exp_pow) - ) - ) - (i32.const -64) - ) - ) - (get_local $13) - (i32.sub - (i32.add - (get_global $~lib/internal/number/_exp) - (get_local $5) - ) - (i32.const -64) - ) - (get_local $6) - (get_local $14) - ) - ) - (i32.add - (tee_local $3 - (call $~lib/internal/number/prettify - (i32.add - (get_local $0) - (i32.shl - (get_local $14) - (i32.const 1) - ) - ) - (i32.sub - (get_local $3) - (get_local $14) - ) - (get_global $~lib/internal/number/_K) - ) - ) - (get_local $14) - ) + get_local $1 + f64.const 0 + f64.lt + tee_local $14 + if + get_local $1 + f64.neg + set_local $1 + get_local $0 + i32.const 45 + i32.store16 offset=4 + end + get_local $1 + i64.reinterpret/f64 + tee_local $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap/i64 + tee_local $15 + i32.const 0 + i32.ne + tee_local $3 + i64.extend_u/i32 + i64.const 52 + i64.shl + get_local $2 + i64.const 4503599627370495 + i64.and + i64.add + set_local $2 + get_local $15 + i32.const 1 + get_local $3 + select + i32.const 1075 + i32.sub + tee_local $15 + i32.const 1 + i32.sub + set_local $3 + get_local $2 + i64.const 1 + i64.shl + i64.const 1 + i64.add + tee_local $4 + i64.clz + i32.wrap/i64 + set_local $16 + get_local $4 + get_local $16 + i64.extend_s/i32 + i64.shl + set_global $~lib/internal/number/_frc_plus + get_local $2 + get_local $2 + i64.const 4503599627370496 + i64.eq + i32.const 1 + i32.add + tee_local $5 + i64.extend_s/i32 + i64.shl + i64.const 1 + i64.sub + get_local $15 + get_local $5 + i32.sub + get_local $3 + get_local $16 + i32.sub + tee_local $3 + i32.sub + i64.extend_s/i32 + i64.shl + set_global $~lib/internal/number/_frc_minus + get_local $3 + set_global $~lib/internal/number/_exp + i32.const 348 + i32.const -61 + get_global $~lib/internal/number/_exp + i32.sub + f64.convert_s/i32 + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + tee_local $1 + i32.trunc_s/f64 + tee_local $16 + get_local $16 + f64.convert_s/i32 + get_local $1 + f64.ne + i32.add + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + tee_local $3 + i32.const 3 + i32.shl + i32.sub + set_global $~lib/internal/number/_K + i32.const 4200 + i32.load + set_local $5 + i32.const 3936 + i32.load + get_local $3 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + set_global $~lib/internal/number/_frc_pow + get_local $5 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=8 + set_global $~lib/internal/number/_exp_pow + get_local $2 + get_local $2 + i64.clz + i32.wrap/i64 + tee_local $5 + i64.extend_s/i32 + i64.shl + tee_local $2 + i64.const 4294967295 + i64.and + tee_local $7 + get_global $~lib/internal/number/_frc_pow + tee_local $4 + i64.const 4294967295 + i64.and + tee_local $8 + i64.mul + set_local $9 + get_local $7 + get_local $4 + i64.const 32 + i64.shr_u + tee_local $10 + i64.mul + get_local $2 + i64.const 32 + i64.shr_u + tee_local $11 + get_local $8 + i64.mul + get_local $9 + i64.const 32 + i64.shr_u + i64.add + tee_local $6 + i64.const 4294967295 + i64.and + i64.add + set_local $2 + get_local $11 + get_local $10 + i64.mul + get_local $6 + i64.const 32 + i64.shr_u + i64.add + get_local $2 + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + set_local $2 + get_global $~lib/internal/number/_frc_plus + tee_local $6 + i64.const 4294967295 + i64.and + tee_local $9 + get_local $4 + i64.const 4294967295 + i64.and + tee_local $10 + i64.mul + set_local $7 + get_local $9 + get_local $4 + i64.const 32 + i64.shr_u + tee_local $8 + i64.mul + get_local $6 + i64.const 32 + i64.shr_u + tee_local $11 + get_local $10 + i64.mul + get_local $7 + i64.const 32 + i64.shr_u + i64.add + tee_local $12 + i64.const 4294967295 + i64.and + i64.add + set_local $13 + get_local $11 + get_local $8 + i64.mul + get_local $12 + i64.const 32 + i64.shr_u + i64.add + get_local $13 + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + set_local $13 + get_global $~lib/internal/number/_frc_minus + tee_local $12 + i64.const 4294967295 + i64.and + tee_local $7 + get_local $4 + i64.const 4294967295 + i64.and + tee_local $8 + i64.mul + set_local $9 + get_local $7 + get_local $4 + i64.const 32 + i64.shr_u + tee_local $10 + i64.mul + get_local $12 + i64.const 32 + i64.shr_u + tee_local $11 + get_local $8 + i64.mul + get_local $9 + i64.const 32 + i64.shr_u + i64.add + tee_local $6 + i64.const 4294967295 + i64.and + i64.add + set_local $12 + get_local $13 + i64.const 1 + i64.sub + tee_local $13 + get_local $11 + get_local $10 + i64.mul + get_local $6 + i64.const 32 + i64.shr_u + i64.add + get_local $12 + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + set_local $6 + get_local $0 + get_local $2 + get_local $15 + get_local $5 + i32.sub + get_global $~lib/internal/number/_exp_pow + tee_local $5 + i32.add + i32.const -64 + i32.sub + tee_local $3 + get_local $13 + get_global $~lib/internal/number/_exp + get_local $5 + i32.add + i32.const -64 + i32.sub + get_local $6 + get_local $14 + call $~lib/internal/number/genDigits + set_local $3 + get_local $0 + get_local $14 + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $14 + i32.sub + get_global $~lib/internal/number/_K + call $~lib/internal/number/prettify + tee_local $3 + get_local $14 + i32.add ) - (func $~lib/internal/number/dtoa (; 140 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) + (func $~lib/internal/number/dtoa (; 140 ;) (type $Fi) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) - (if - (f64.eq - (get_local $0) - (f64.const 0) - ) - (return - (i32.const 2832) - ) - ) - (if - (i32.eqz - (call $~lib/builtins/isFinite - (get_local $0) - ) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (i32.const 2848) - ) - ) - (return - (select - (i32.const 2864) - (i32.const 2888) - (f64.lt - (get_local $0) - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $2 - (call $~lib/internal/number/dtoa_core - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (i32.const 28) - ) - ) - (get_local $0) - ) - ) - (set_local $2 - (call $~lib/string/String#substring - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - (get_local $2) + get_local $0 + f64.const 0 + f64.eq + if + i32.const 2832 + return + end + get_local $0 + call $~lib/builtins/isFinite + i32.eqz + if + get_local $0 + call $~lib/builtins/isNaN + if + i32.const 2848 + return + end + i32.const 2864 + i32.const 2888 + get_local $0 + f64.const 0 + f64.lt + select + return + end + i32.const 28 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $0 + call $~lib/internal/number/dtoa_core + set_local $2 + get_local $1 + get_local $2 + call $~lib/string/String#substring + set_local $2 + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + get_local $2 ) - (func $~lib/internal/number/dtoa_stream (; 141 ;) (; has Stack IR ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/internal/number/dtoa_stream (; 141 ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (f64.eq - (get_local $2) - (f64.const 0) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (i32.const 48) - ) - (i32.store16 offset=6 - (get_local $0) - (i32.const 46) - ) - (i32.store16 offset=8 - (get_local $0) - (i32.const 48) - ) - (return - (i32.const 3) - ) - ) - ) - (if - (i32.eqz - (call $~lib/builtins/isFinite - (get_local $2) - ) - ) - (if - (call $~lib/builtins/isNaN - (get_local $2) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (i32.const 78) - ) - (i32.store16 offset=6 - (get_local $0) - (i32.const 97) - ) - (i32.store16 offset=8 - (get_local $0) - (i32.const 78) - ) - (return - (i32.const 3) - ) - ) - (block - (set_local $1 - (i32.add - (tee_local $3 - (f64.lt - (get_local $2) - (f64.const 0) - ) - ) - (i32.const 8) - ) - ) - (call $~lib/internal/memory/memmove - (i32.add - (get_local $0) - (i32.const 4) - ) - (select - (i32.const 2864) - (i32.const 2888) - (get_local $3) - ) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (return - (get_local $1) - ) - ) - ) - ) - (call $~lib/internal/number/dtoa_core - (get_local $0) - (get_local $2) - ) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + f64.const 0 + f64.eq + if + get_local $0 + i32.const 48 + i32.store16 offset=4 + get_local $0 + i32.const 46 + i32.store16 offset=6 + get_local $0 + i32.const 48 + i32.store16 offset=8 + i32.const 3 + return + end + get_local $2 + call $~lib/builtins/isFinite + i32.eqz + if + get_local $2 + call $~lib/builtins/isNaN + if + get_local $0 + i32.const 78 + i32.store16 offset=4 + get_local $0 + i32.const 97 + i32.store16 offset=6 + get_local $0 + i32.const 78 + i32.store16 offset=8 + i32.const 3 + return + else + get_local $2 + f64.const 0 + f64.lt + tee_local $3 + i32.const 8 + i32.add + set_local $1 + get_local $0 + i32.const 4 + i32.add + i32.const 2864 + i32.const 2888 + get_local $3 + select + get_local $1 + i32.const 1 + i32.shl + call $~lib/internal/memory/memmove + get_local $1 + return + end + unreachable + end + get_local $0 + get_local $2 + call $~lib/internal/number/dtoa_core ) - (func $~lib/array/Array#join (; 142 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#join (; 142 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11033,176 +7900,124 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (if - (i32.lt_s - (tee_local $1 - (i32.sub - (i32.load - (i32.const 4348) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $4 - (i32.load - (i32.const 4344) - ) - ) - (set_local $6 - (i32.ne - (tee_local $5 - (i32.load - (i32.const 2824) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (return - (call $~lib/internal/number/dtoa - (f64.load offset=8 - (get_local $4) - ) - ) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $7 - (i32.add - (i32.mul - (i32.add - (get_local $5) - (i32.const 28) - ) - (get_local $1) - ) - (i32.const 28) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $3) - (get_local $1) - ) - ) - (set_local $8 - (call $~lib/internal/number/dtoa_stream - (get_local $2) - (get_local $0) - (f64.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $8) - ) - ) - (if - (get_local $6) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $2) - (get_local $0) - (i32.const 2824) - (i32.const 0) - (get_local $5) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $5) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $1 - (call $~lib/internal/number/dtoa_stream - (get_local $2) - (get_local $0) - (f64.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $3 - (get_local $2) - ) - (if - (i32.gt_s - (get_local $7) - (tee_local $0 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (set_local $3 - (call $~lib/string/String#substring - (get_local $2) - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (get_local $3) + i32.const 4348 + i32.load + i32.const 1 + i32.sub + tee_local $1 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 4344 + i32.load + set_local $4 + i32.const 2824 + i32.load + tee_local $5 + i32.const 0 + i32.ne + set_local $6 + get_local $1 + i32.eqz + if + get_local $4 + f64.load offset=8 + call $~lib/internal/number/dtoa + return + end + get_local $5 + i32.const 28 + i32.add + get_local $1 + i32.mul + i32.const 28 + i32.add + tee_local $7 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $break|0 + loop $repeat|0 + get_local $3 + get_local $1 + i32.ge_s + br_if $break|0 + get_local $2 + get_local $0 + get_local $4 + get_local $3 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + call $~lib/internal/number/dtoa_stream + set_local $8 + get_local $0 + get_local $8 + i32.add + set_local $0 + get_local $6 + if + get_local $2 + get_local $0 + i32.const 2824 + i32.const 0 + get_local $5 + call $~lib/internal/string/copyUnsafe + get_local $0 + get_local $5 + i32.add + set_local $0 + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $2 + get_local $0 + get_local $4 + get_local $1 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + call $~lib/internal/number/dtoa_stream + set_local $1 + get_local $2 + set_local $3 + get_local $7 + get_local $0 + get_local $1 + i32.add + tee_local $0 + i32.gt_s + if + get_local $2 + get_local $0 + call $~lib/string/String#substring + set_local $3 + get_local $2 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + end + get_local $3 ) - (func $~lib/array/Array#join (; 143 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 143 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11210,217 +8025,157 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (if - (i32.lt_s - (tee_local $5 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $6 - (i32.load - (get_local $0) - ) - ) - (set_local $8 - (i32.ne - (tee_local $7 - (i32.load - (get_local $1) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (return - (i32.load offset=8 - (get_local $6) - ) - ) - ) - (block $break|0 - (set_local $0 - (i32.const 0) - ) - (set_local $2 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (get_local $2) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.load - (i32.load offset=8 - (i32.add - (get_local $6) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $2 - (i32.const 0) - ) - (set_local $0 - (call $~lib/internal/string/allocateUnsafe - (i32.add - (get_local $3) - (i32.mul - (get_local $7) - (get_local $5) - ) - ) - ) - ) - (block $break|1 - (set_local $3 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $3) - (get_local $5) - ) - ) - (if - (tee_local $4 - (i32.load offset=8 - (i32.add - (get_local $6) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $0) - (get_local $2) - (get_local $4) - (i32.const 0) - (tee_local $4 - (i32.load - (get_local $4) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (get_local $4) - ) - ) - ) - ) - (if - (get_local $8) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $0) - (get_local $2) - (get_local $1) - (i32.const 0) - (get_local $7) - ) - (set_local $2 - (i32.add - (get_local $2) - (get_local $7) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (tee_local $4 - (i32.load offset=8 - (i32.add - (get_local $6) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $0) - (get_local $2) - (get_local $4) - (i32.const 0) - (i32.load - (get_local $4) - ) - ) - ) - (get_local $0) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + tee_local $5 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + get_local $0 + i32.load + set_local $6 + get_local $1 + i32.load + tee_local $7 + i32.const 0 + i32.ne + set_local $8 + get_local $5 + i32.eqz + if + get_local $6 + i32.load offset=8 + return + end + block $break|0 + i32.const 0 + set_local $0 + get_local $5 + i32.const 1 + i32.add + set_local $2 + loop $repeat|0 + get_local $0 + get_local $2 + i32.ge_s + br_if $break|0 + get_local $3 + get_local $6 + get_local $0 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + i32.load + i32.add + set_local $3 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 0 + set_local $2 + get_local $3 + get_local $7 + get_local $5 + i32.mul + i32.add + call $~lib/internal/string/allocateUnsafe + set_local $0 + block $break|1 + i32.const 0 + set_local $3 + loop $repeat|1 + get_local $3 + get_local $5 + i32.ge_s + br_if $break|1 + get_local $6 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $4 + if + get_local $0 + get_local $2 + get_local $4 + i32.const 0 + get_local $4 + i32.load + tee_local $4 + call $~lib/internal/string/copyUnsafe + get_local $2 + get_local $4 + i32.add + set_local $2 + end + get_local $8 + if + get_local $0 + get_local $2 + get_local $1 + i32.const 0 + get_local $7 + call $~lib/internal/string/copyUnsafe + get_local $2 + get_local $7 + i32.add + set_local $2 + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|1 + unreachable + end + unreachable + end + get_local $6 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $4 + if + get_local $0 + get_local $2 + get_local $4 + i32.const 0 + get_local $4 + i32.load + call $~lib/internal/string/copyUnsafe + end + get_local $0 ) - (func $std/array/Ref#constructor (; 144 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/memory/memory.allocate - (i32.const 0) - ) + (func $std/array/Ref#constructor (; 144 ;) (type $FUNCSIG$i) (result i32) + i32.const 0 + call $~lib/memory/memory.allocate ) - (func $~lib/array/Array#__unchecked_set (; 145 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) - (i32.store offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) + (func $~lib/array/Array#__unchecked_set (; 145 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + get_local $0 + i32.load + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 ) - (func $~lib/array/Array#join (; 146 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join (; 146 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11428,278 +8183,198 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (if - (i32.lt_s - (tee_local $3 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.ne - (tee_local $4 - (i32.load - (i32.const 1872) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 4528) - ) - ) - (set_local $0 - (call $~lib/internal/string/allocateUnsafe - (tee_local $7 - (i32.add - (i32.mul - (i32.add - (get_local $4) - (i32.const 15) - ) - (get_local $3) - ) - (i32.const 15) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (if - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $0) - (get_local $1) - (i32.const 4528) - (i32.const 0) - (i32.const 15) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - ) - (if - (get_local $6) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $0) - (get_local $1) - (i32.const 1872) - (i32.const 0) - (get_local $4) - ) - (set_local $1 - (i32.add - (get_local $1) - (get_local $4) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $0) - (get_local $1) - (i32.const 4528) - (i32.const 0) - (i32.const 15) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - ) - (set_local $2 - (get_local $0) - ) - (if - (i32.gt_s - (get_local $7) - (get_local $1) - ) - (block - (set_local $2 - (call $~lib/string/String#substring - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (get_local $2) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + tee_local $3 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + get_local $0 + i32.load + set_local $5 + i32.const 1872 + i32.load + tee_local $4 + i32.const 0 + i32.ne + set_local $6 + get_local $3 + i32.eqz + if + i32.const 4528 + return + end + get_local $4 + i32.const 15 + i32.add + get_local $3 + i32.mul + i32.const 15 + i32.add + tee_local $7 + call $~lib/internal/string/allocateUnsafe + set_local $0 + block $break|0 + loop $repeat|0 + get_local $2 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $5 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + if + get_local $0 + get_local $1 + i32.const 4528 + i32.const 0 + i32.const 15 + call $~lib/internal/string/copyUnsafe + get_local $1 + i32.const 15 + i32.add + set_local $1 + end + get_local $6 + if + get_local $0 + get_local $1 + i32.const 1872 + i32.const 0 + get_local $4 + call $~lib/internal/string/copyUnsafe + get_local $1 + get_local $4 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $5 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + if + get_local $0 + get_local $1 + i32.const 4528 + i32.const 0 + i32.const 15 + call $~lib/internal/string/copyUnsafe + get_local $1 + i32.const 15 + i32.add + set_local $1 + end + get_local $0 + set_local $2 + get_local $7 + get_local $1 + i32.gt_s + if + get_local $0 + get_local $1 + call $~lib/string/String#substring + set_local $2 + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + end + get_local $2 ) - (func $~lib/internal/number/itoa (; 147 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/internal/number/itoa32 - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - ) + (func $~lib/internal/number/itoa (; 147 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/number/itoa32 ) - (func $~lib/internal/number/itoa_stream (; 148 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/number/itoa_stream (; 148 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $2) - (i32.const 255) - ) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (i32.const 48) - ) - (return - (i32.const 1) - ) - ) - ) - (if - (tee_local $3 - (i32.lt_s - (i32.shr_s - (i32.shl - (get_local $2) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - ) - (set_local $2 - (i32.sub - (i32.const 0) - (get_local $2) - ) - ) - ) - (set_local $1 - (call $~lib/internal/number/decimalCount32 - (i32.shr_s - (i32.shl - (get_local $2) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (i32.shr_s - (i32.shl - (get_local $2) - (i32.const 24) - ) - (i32.const 24) - ) - (tee_local $1 - (i32.add - (get_local $1) - (get_local $3) - ) - ) - ) - (if - (get_local $3) - (i32.store16 offset=4 - (get_local $0) - (i32.const 45) - ) - ) - (get_local $1) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i32.const 255 + i32.and + i32.eqz + if + get_local $0 + i32.const 48 + i32.store16 offset=4 + i32.const 1 + return + end + get_local $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s + tee_local $3 + if + i32.const 0 + get_local $2 + i32.sub + set_local $2 + end + get_local $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/number/decimalCount32 + set_local $1 + get_local $0 + get_local $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $1 + get_local $3 + i32.add + tee_local $1 + call $~lib/internal/number/utoa32_lut + get_local $3 + if + get_local $0 + i32.const 45 + i32.store16 offset=4 + end + get_local $1 ) - (func $~lib/array/Array#join (; 149 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#join (; 149 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11709,224 +8384,158 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (if - (i32.lt_s - (tee_local $1 - (i32.sub - (i32.load - (i32.const 4724) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $4 - (i32.load - (i32.const 4720) - ) - ) - (set_local $6 - (i32.ne - (tee_local $5 - (i32.load - (i32.const 1872) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (return - (call $~lib/internal/number/itoa - (i32.load8_s offset=8 - (get_local $4) - ) - ) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $7 - (i32.add - (i32.mul - (i32.add - (get_local $5) - (i32.const 11) - ) - (get_local $1) - ) - (i32.const 11) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $3) - (get_local $1) - ) - ) - (set_local $8 - (call $~lib/internal/number/itoa_stream - (get_local $2) - (get_local $0) - (i32.load8_s offset=8 - (i32.add - (get_local $4) - (get_local $3) - ) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $8) - ) - ) - (if - (get_local $6) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $2) - (get_local $0) - (i32.const 1872) - (i32.const 0) - (get_local $5) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $5) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $1 - (call $~lib/internal/number/itoa_stream - (get_local $2) - (get_local $0) - (i32.load8_s offset=8 - (i32.add - (get_local $4) - (get_local $1) - ) - ) - ) - ) - (set_local $3 - (get_local $2) - ) - (if - (i32.gt_s - (get_local $7) - (tee_local $0 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (set_local $3 - (call $~lib/string/String#substring - (get_local $2) - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (get_local $3) + i32.const 4724 + i32.load + i32.const 1 + i32.sub + tee_local $1 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 4720 + i32.load + set_local $4 + i32.const 1872 + i32.load + tee_local $5 + i32.const 0 + i32.ne + set_local $6 + get_local $1 + i32.eqz + if + get_local $4 + i32.load8_s offset=8 + call $~lib/internal/number/itoa + return + end + get_local $5 + i32.const 11 + i32.add + get_local $1 + i32.mul + i32.const 11 + i32.add + tee_local $7 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $break|0 + loop $repeat|0 + get_local $3 + get_local $1 + i32.ge_s + br_if $break|0 + get_local $2 + get_local $0 + get_local $4 + get_local $3 + i32.add + i32.load8_s offset=8 + call $~lib/internal/number/itoa_stream + set_local $8 + get_local $0 + get_local $8 + i32.add + set_local $0 + get_local $6 + if + get_local $2 + get_local $0 + i32.const 1872 + i32.const 0 + get_local $5 + call $~lib/internal/string/copyUnsafe + get_local $0 + get_local $5 + i32.add + set_local $0 + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $2 + get_local $0 + get_local $4 + get_local $1 + i32.add + i32.load8_s offset=8 + call $~lib/internal/number/itoa_stream + set_local $1 + get_local $2 + set_local $3 + get_local $7 + get_local $0 + get_local $1 + i32.add + tee_local $0 + i32.gt_s + if + get_local $2 + get_local $0 + call $~lib/string/String#substring + set_local $3 + get_local $2 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + end + get_local $3 ) - (func $~lib/internal/number/itoa (; 150 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/internal/number/utoa32 - (i32.and - (get_local $0) - (i32.const 65535) - ) - ) + (func $~lib/internal/number/itoa (; 150 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 65535 + i32.and + call $~lib/internal/number/utoa32 ) - (func $~lib/internal/number/itoa_stream (; 151 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/number/itoa_stream (; 151 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $2) - (i32.const 65535) - ) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (i32.const 48) - ) - (return - (i32.const 1) - ) - ) - ) - (set_local $3 - (call $~lib/internal/number/decimalCount32 - (i32.and - (get_local $2) - (i32.const 65535) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (i32.and - (get_local $2) - (i32.const 65535) - ) - (get_local $3) - ) - (get_local $3) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i32.const 65535 + i32.and + i32.eqz + if + get_local $0 + i32.const 48 + i32.store16 offset=4 + i32.const 1 + return + end + get_local $2 + i32.const 65535 + i32.and + call $~lib/internal/number/decimalCount32 + set_local $3 + get_local $0 + get_local $2 + i32.const 65535 + i32.and + get_local $3 + call $~lib/internal/number/utoa32_lut + get_local $3 ) - (func $~lib/array/Array#join (; 152 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#join (; 152 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11936,504 +8545,356 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (if - (i32.lt_s - (tee_local $1 - (i32.sub - (i32.load - (i32.const 4788) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $4 - (i32.load - (i32.const 4784) - ) - ) - (set_local $6 - (i32.ne - (tee_local $5 - (i32.load - (i32.const 1872) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (return - (call $~lib/internal/number/itoa - (i32.load16_u offset=8 - (get_local $4) - ) - ) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $7 - (i32.add - (i32.mul - (i32.add - (get_local $5) - (i32.const 10) - ) - (get_local $1) - ) - (i32.const 10) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $3) - (get_local $1) - ) - ) - (set_local $8 - (call $~lib/internal/number/itoa_stream - (get_local $2) - (get_local $0) - (i32.load16_u offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $8) - ) - ) - (if - (get_local $6) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $2) - (get_local $0) - (i32.const 1872) - (i32.const 0) - (get_local $5) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $5) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $1 - (call $~lib/internal/number/itoa_stream - (get_local $2) - (get_local $0) - (i32.load16_u offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (get_local $2) - ) - (if - (i32.gt_s - (get_local $7) - (tee_local $0 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (set_local $3 - (call $~lib/string/String#substring - (get_local $2) - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (get_local $3) + i32.const 4788 + i32.load + i32.const 1 + i32.sub + tee_local $1 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 4784 + i32.load + set_local $4 + i32.const 1872 + i32.load + tee_local $5 + i32.const 0 + i32.ne + set_local $6 + get_local $1 + i32.eqz + if + get_local $4 + i32.load16_u offset=8 + call $~lib/internal/number/itoa + return + end + get_local $5 + i32.const 10 + i32.add + get_local $1 + i32.mul + i32.const 10 + i32.add + tee_local $7 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $break|0 + loop $repeat|0 + get_local $3 + get_local $1 + i32.ge_s + br_if $break|0 + get_local $2 + get_local $0 + get_local $4 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=8 + call $~lib/internal/number/itoa_stream + set_local $8 + get_local $0 + get_local $8 + i32.add + set_local $0 + get_local $6 + if + get_local $2 + get_local $0 + i32.const 1872 + i32.const 0 + get_local $5 + call $~lib/internal/string/copyUnsafe + get_local $0 + get_local $5 + i32.add + set_local $0 + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $2 + get_local $0 + get_local $4 + get_local $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=8 + call $~lib/internal/number/itoa_stream + set_local $1 + get_local $2 + set_local $3 + get_local $7 + get_local $0 + get_local $1 + i32.add + tee_local $0 + i32.gt_s + if + get_local $2 + get_local $0 + call $~lib/string/String#substring + set_local $3 + get_local $2 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + end + get_local $3 ) - (func $~lib/internal/number/decimalCount64 (; 153 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) - (if (result i32) - (i64.lt_u - (get_local $0) - (i64.const 1000000000000000) - ) - (if (result i32) - (i64.lt_u - (get_local $0) - (i64.const 1000000000000) - ) - (select - (i32.const 11) - (i32.const 12) - (i64.lt_u - (get_local $0) - (i64.const 100000000000) - ) - ) - (select - (i32.const 13) - (select - (i32.const 14) - (i32.const 15) - (i64.lt_u - (get_local $0) - (i64.const 100000000000000) - ) - ) - (i64.lt_u - (get_local $0) - (i64.const 10000000000000) - ) - ) - ) - (if (result i32) - (i64.lt_u - (get_local $0) - (i64.const 100000000000000000) - ) - (select - (i32.const 16) - (i32.const 17) - (i64.lt_u - (get_local $0) - (i64.const 10000000000000000) - ) - ) - (select - (i32.const 18) - (select - (i32.const 19) - (i32.const 20) - (i64.lt_u - (get_local $0) - (i64.const -8446744073709551616) - ) - ) - (i64.lt_u - (get_local $0) - (i64.const 1000000000000000000) - ) - ) - ) - ) + (func $~lib/internal/number/decimalCount64 (; 153 ;) (type $Ii) (param $0 i64) (result i32) + get_local $0 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + get_local $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + i32.const 11 + i32.const 12 + get_local $0 + i64.const 100000000000 + i64.lt_u + select + else + i32.const 13 + i32.const 14 + i32.const 15 + get_local $0 + i64.const 100000000000000 + i64.lt_u + select + get_local $0 + i64.const 10000000000000 + i64.lt_u + select + end + else + get_local $0 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + i32.const 16 + i32.const 17 + get_local $0 + i64.const 10000000000000000 + i64.lt_u + select + else + i32.const 18 + i32.const 19 + i32.const 20 + get_local $0 + i64.const -8446744073709551616 + i64.lt_u + select + get_local $0 + i64.const 1000000000000000000 + i64.lt_u + select + end + end ) - (func $~lib/internal/number/utoa64_lut (; 154 ;) (; has Stack IR ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/internal/number/utoa64_lut (; 154 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (i32.load - (i32.const 5368) - ) - ) - (loop $continue|0 - (if - (i64.ge_u - (get_local $1) - (i64.const 100000000) - ) - (block - (set_local $6 - (i32.div_u - (tee_local $5 - (i32.div_u - (tee_local $4 - (i32.wrap/i64 - (i64.sub - (get_local $1) - (i64.mul - (tee_local $1 - (i64.div_u - (get_local $1) - (i64.const 100000000) - ) - ) - (i64.const 100000000) - ) - ) - ) - ) - (i32.const 10000) - ) - ) - (i32.const 100) - ) - ) - (set_local $5 - (i32.rem_u - (get_local $5) - (i32.const 100) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i32.const 1) - ) - ) - (i64.or - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (i32.div_u - (tee_local $4 - (i32.rem_u - (get_local $4) - (i32.const 10000) - ) - ) - (i32.const 100) - ) - (i32.const 2) - ) - ) - ) - (i64.shl - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (i32.rem_u - (get_local $4) - (i32.const 100) - ) - (i32.const 2) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i32.const 1) - ) - ) - (i64.or - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - (i64.shl - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (i32.wrap/i64 - (get_local $1) - ) - (get_local $2) - ) + i32.const 5368 + i32.load + set_local $3 + loop $continue|0 + get_local $1 + i64.const 100000000 + i64.ge_u + if + get_local $1 + get_local $1 + i64.const 100000000 + i64.div_u + tee_local $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap/i64 + tee_local $4 + i32.const 10000 + i32.div_u + tee_local $5 + i32.const 100 + i32.div_u + set_local $6 + get_local $5 + i32.const 100 + i32.rem_u + set_local $5 + get_local $0 + get_local $2 + i32.const 4 + i32.sub + tee_local $2 + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $4 + i32.const 10000 + i32.rem_u + tee_local $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + get_local $3 + get_local $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + get_local $0 + get_local $2 + i32.const 4 + i32.sub + tee_local $2 + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + get_local $3 + get_local $5 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + br $continue|0 + end + end + get_local $0 + get_local $1 + i32.wrap/i64 + get_local $2 + call $~lib/internal/number/utoa32_lut ) - (func $~lib/internal/number/utoa64 (; 155 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/utoa64 (; 155 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i64.eqz - (get_local $0) - ) - (return - (i32.const 1968) - ) - ) - (if - (i64.le_u - (get_local $0) - (i64.const 4294967295) - ) - (call $~lib/internal/number/utoa32_lut - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $1 - (call $~lib/internal/number/decimalCount32 - (tee_local $3 - (i32.wrap/i64 - (get_local $0) - ) - ) - ) - ) - ) - ) - (get_local $3) - (get_local $1) - ) - (call $~lib/internal/number/utoa64_lut - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $1 - (call $~lib/internal/number/decimalCount64 - (get_local $0) - ) - ) - ) - ) - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) + get_local $0 + i64.eqz + if + i32.const 1968 + return + end + get_local $0 + i64.const 4294967295 + i64.le_u + if + get_local $0 + i32.wrap/i64 + tee_local $3 + call $~lib/internal/number/decimalCount32 + tee_local $1 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + get_local $3 + get_local $1 + call $~lib/internal/number/utoa32_lut + else + get_local $0 + call $~lib/internal/number/decimalCount64 + tee_local $1 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + get_local $0 + get_local $1 + call $~lib/internal/number/utoa64_lut + end + get_local $2 ) - (func $~lib/internal/number/itoa (; 156 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) - (call $~lib/internal/number/utoa64 - (get_local $0) - ) + (func $~lib/internal/number/itoa (; 156 ;) (type $Ii) (param $0 i64) (result i32) + get_local $0 + call $~lib/internal/number/utoa64 ) - (func $~lib/internal/number/itoa_stream (; 157 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/internal/number/itoa_stream (; 157 ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i64.eqz - (get_local $2) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (i32.const 48) - ) - (return - (i32.const 1) - ) - ) - ) - (if - (i64.le_u - (get_local $2) - (i64.const 4294967295) - ) - (block - (set_local $1 - (call $~lib/internal/number/decimalCount32 - (tee_local $3 - (i32.wrap/i64 - (get_local $2) - ) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $3) - (get_local $1) - ) - ) - (block - (set_local $1 - (call $~lib/internal/number/decimalCount64 - (get_local $2) - ) - ) - (call $~lib/internal/number/utoa64_lut - (get_local $0) - (get_local $2) - (get_local $1) - ) - ) - ) - (get_local $1) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i64.eqz + if + get_local $0 + i32.const 48 + i32.store16 offset=4 + i32.const 1 + return + end + get_local $2 + i64.const 4294967295 + i64.le_u + if + get_local $2 + i32.wrap/i64 + tee_local $3 + call $~lib/internal/number/decimalCount32 + set_local $1 + get_local $0 + get_local $3 + get_local $1 + call $~lib/internal/number/utoa32_lut + else + get_local $2 + call $~lib/internal/number/decimalCount64 + set_local $1 + get_local $0 + get_local $2 + get_local $1 + call $~lib/internal/number/utoa64_lut + end + get_local $1 ) - (func $~lib/array/Array#join (; 158 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#join (; 158 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12443,356 +8904,251 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (if - (i32.lt_s - (tee_local $1 - (i32.sub - (i32.load - (i32.const 5412) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $4 - (i32.load - (i32.const 5408) - ) - ) - (set_local $6 - (i32.ne - (tee_local $5 - (i32.load - (i32.const 1872) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (return - (call $~lib/internal/number/itoa - (i64.load offset=8 - (get_local $4) - ) - ) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $7 - (i32.add - (i32.mul - (i32.add - (get_local $5) - (i32.const 20) - ) - (get_local $1) - ) - (i32.const 20) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $3) - (get_local $1) - ) - ) - (set_local $8 - (call $~lib/internal/number/itoa_stream - (get_local $2) - (get_local $0) - (i64.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $8) - ) - ) - (if - (get_local $6) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $2) - (get_local $0) - (i32.const 1872) - (i32.const 0) - (get_local $5) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $5) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $1 - (call $~lib/internal/number/itoa_stream - (get_local $2) - (get_local $0) - (i64.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $3 - (get_local $2) - ) - (if - (i32.gt_s - (get_local $7) - (tee_local $0 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (set_local $3 - (call $~lib/string/String#substring - (get_local $2) - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (get_local $3) + i32.const 5412 + i32.load + i32.const 1 + i32.sub + tee_local $1 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 5408 + i32.load + set_local $4 + i32.const 1872 + i32.load + tee_local $5 + i32.const 0 + i32.ne + set_local $6 + get_local $1 + i32.eqz + if + get_local $4 + i64.load offset=8 + call $~lib/internal/number/itoa + return + end + get_local $5 + i32.const 20 + i32.add + get_local $1 + i32.mul + i32.const 20 + i32.add + tee_local $7 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $break|0 + loop $repeat|0 + get_local $3 + get_local $1 + i32.ge_s + br_if $break|0 + get_local $2 + get_local $0 + get_local $4 + get_local $3 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + call $~lib/internal/number/itoa_stream + set_local $8 + get_local $0 + get_local $8 + i32.add + set_local $0 + get_local $6 + if + get_local $2 + get_local $0 + i32.const 1872 + i32.const 0 + get_local $5 + call $~lib/internal/string/copyUnsafe + get_local $0 + get_local $5 + i32.add + set_local $0 + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $2 + get_local $0 + get_local $4 + get_local $1 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + call $~lib/internal/number/itoa_stream + set_local $1 + get_local $2 + set_local $3 + get_local $7 + get_local $0 + get_local $1 + i32.add + tee_local $0 + i32.gt_s + if + get_local $2 + get_local $0 + call $~lib/string/String#substring + set_local $3 + get_local $2 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + end + get_local $3 ) - (func $~lib/internal/number/itoa64 (; 159 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/itoa64 (; 159 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i64.eqz - (get_local $0) - ) - (return - (i32.const 1968) - ) - ) - (if - (tee_local $2 - (i64.lt_s - (get_local $0) - (i64.const 0) - ) - ) - (set_local $0 - (i64.sub - (i64.const 0) - (get_local $0) - ) - ) - ) - (if - (i64.le_u - (get_local $0) - (i64.const 4294967295) - ) - (call $~lib/internal/number/utoa32_lut - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (tee_local $3 - (i32.add - (tee_local $1 - (call $~lib/internal/number/decimalCount32 - (tee_local $4 - (i32.wrap/i64 - (get_local $0) - ) - ) - ) - ) - (get_local $2) - ) - ) - ) - ) - (get_local $4) - (get_local $3) - ) - (call $~lib/internal/number/utoa64_lut - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (tee_local $3 - (i32.add - (tee_local $1 - (call $~lib/internal/number/decimalCount64 - (get_local $0) - ) - ) - (get_local $2) - ) - ) - ) - ) - (get_local $0) - (get_local $3) - ) - ) - (if - (get_local $2) - (i32.store16 offset=4 - (get_local $1) - (i32.const 45) - ) - ) - (get_local $1) + get_local $0 + i64.eqz + if + i32.const 1968 + return + end + get_local $0 + i64.const 0 + i64.lt_s + tee_local $2 + if + i64.const 0 + get_local $0 + i64.sub + set_local $0 + end + get_local $0 + i64.const 4294967295 + i64.le_u + if + get_local $0 + i32.wrap/i64 + tee_local $4 + call $~lib/internal/number/decimalCount32 + tee_local $1 + get_local $2 + i32.add + tee_local $3 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $4 + get_local $3 + call $~lib/internal/number/utoa32_lut + else + get_local $0 + call $~lib/internal/number/decimalCount64 + tee_local $1 + get_local $2 + i32.add + tee_local $3 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $0 + get_local $3 + call $~lib/internal/number/utoa64_lut + end + get_local $2 + if + get_local $1 + i32.const 45 + i32.store16 offset=4 + end + get_local $1 ) - (func $~lib/internal/number/itoa (; 160 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) - (call $~lib/internal/number/itoa64 - (get_local $0) - ) + (func $~lib/internal/number/itoa (; 160 ;) (type $Ii) (param $0 i64) (result i32) + get_local $0 + call $~lib/internal/number/itoa64 ) - (func $~lib/internal/number/itoa_stream (; 161 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/internal/number/itoa_stream (; 161 ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i64.eqz - (get_local $2) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (i32.const 48) - ) - (return - (i32.const 1) - ) - ) - ) - (if - (tee_local $3 - (i64.lt_s - (get_local $2) - (i64.const 0) - ) - ) - (set_local $2 - (i64.sub - (i64.const 0) - (get_local $2) - ) - ) - ) - (if - (i64.le_u - (get_local $2) - (i64.const 4294967295) - ) - (block - (set_local $4 - (call $~lib/internal/number/decimalCount32 - (tee_local $1 - (i32.wrap/i64 - (get_local $2) - ) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $1) - (tee_local $1 - (i32.add - (get_local $4) - (get_local $3) - ) - ) - ) - ) - (block - (set_local $1 - (call $~lib/internal/number/decimalCount64 - (get_local $2) - ) - ) - (call $~lib/internal/number/utoa64_lut - (get_local $0) - (get_local $2) - (tee_local $1 - (i32.add - (get_local $1) - (get_local $3) - ) - ) - ) - ) - ) - (if - (get_local $3) - (i32.store16 offset=4 - (get_local $0) - (i32.const 45) - ) - ) - (get_local $1) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i64.eqz + if + get_local $0 + i32.const 48 + i32.store16 offset=4 + i32.const 1 + return + end + get_local $2 + i64.const 0 + i64.lt_s + tee_local $3 + if + i64.const 0 + get_local $2 + i64.sub + set_local $2 + end + get_local $2 + i64.const 4294967295 + i64.le_u + if + get_local $2 + i32.wrap/i64 + tee_local $1 + call $~lib/internal/number/decimalCount32 + set_local $4 + get_local $0 + get_local $1 + get_local $4 + get_local $3 + i32.add + tee_local $1 + call $~lib/internal/number/utoa32_lut + else + get_local $2 + call $~lib/internal/number/decimalCount64 + set_local $1 + get_local $0 + get_local $2 + get_local $1 + get_local $3 + i32.add + tee_local $1 + call $~lib/internal/number/utoa64_lut + end + get_local $3 + if + get_local $0 + i32.const 45 + i32.store16 offset=4 + end + get_local $1 ) - (func $~lib/array/Array#join (; 162 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#join (; 162 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12802,374 +9158,265 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (if - (i32.lt_s - (tee_local $1 - (i32.sub - (i32.load - (i32.const 5612) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $4 - (i32.load - (i32.const 5608) - ) - ) - (set_local $6 - (i32.ne - (tee_local $5 - (i32.load - (i32.const 1872) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (return - (call $~lib/internal/number/itoa - (i64.load offset=8 - (get_local $4) - ) - ) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $7 - (i32.add - (i32.mul - (i32.add - (get_local $5) - (i32.const 21) - ) - (get_local $1) - ) - (i32.const 21) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $3) - (get_local $1) - ) - ) - (set_local $8 - (call $~lib/internal/number/itoa_stream - (get_local $2) - (get_local $0) - (i64.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $8) - ) - ) - (if - (get_local $6) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $2) - (get_local $0) - (i32.const 1872) - (i32.const 0) - (get_local $5) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $5) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $1 - (call $~lib/internal/number/itoa_stream - (get_local $2) - (get_local $0) - (i64.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $3 - (get_local $2) - ) - (if - (i32.gt_s - (get_local $7) - (tee_local $0 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (set_local $3 - (call $~lib/string/String#substring - (get_local $2) - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (get_local $3) + i32.const 5612 + i32.load + i32.const 1 + i32.sub + tee_local $1 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 5608 + i32.load + set_local $4 + i32.const 1872 + i32.load + tee_local $5 + i32.const 0 + i32.ne + set_local $6 + get_local $1 + i32.eqz + if + get_local $4 + i64.load offset=8 + call $~lib/internal/number/itoa + return + end + get_local $5 + i32.const 21 + i32.add + get_local $1 + i32.mul + i32.const 21 + i32.add + tee_local $7 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $break|0 + loop $repeat|0 + get_local $3 + get_local $1 + i32.ge_s + br_if $break|0 + get_local $2 + get_local $0 + get_local $4 + get_local $3 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + call $~lib/internal/number/itoa_stream + set_local $8 + get_local $0 + get_local $8 + i32.add + set_local $0 + get_local $6 + if + get_local $2 + get_local $0 + i32.const 1872 + i32.const 0 + get_local $5 + call $~lib/internal/string/copyUnsafe + get_local $0 + get_local $5 + i32.add + set_local $0 + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $2 + get_local $0 + get_local $4 + get_local $1 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + call $~lib/internal/number/itoa_stream + set_local $1 + get_local $2 + set_local $3 + get_local $7 + get_local $0 + get_local $1 + i32.add + tee_local $0 + i32.gt_s + if + get_local $2 + get_local $0 + call $~lib/string/String#substring + set_local $3 + get_local $2 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + end + get_local $3 ) - (func $~lib/array/Array>#join (; 163 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#join (; 163 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.lt_s - (tee_local $3 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $1 - (i32.const 1560) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $5 - (i32.ne - (i32.load - (i32.const 1872) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (tee_local $0 - (if (result i32) - (tee_local $2 - (i32.load offset=8 - (get_local $4) - ) - ) - (call $~lib/array/Array#join - (get_local $2) - (i32.const 1872) - ) - (i32.const 1560) - ) - ) - ) - ) - (block $break|0 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (if - (tee_local $2 - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - ) - (block - (set_local $2 - (call $~lib/array/Array#join - (get_local $2) - (i32.const 1872) - ) - ) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (if - (get_local $5) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (i32.const 1872) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (tee_local $2 - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (block - (set_local $0 - (call $~lib/array/Array#join - (get_local $2) - (i32.const 1872) - ) - ) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (get_local $0) - ) - ) - ) - ) - (get_local $1) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + tee_local $3 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $1 + get_local $0 + i32.load + set_local $4 + i32.const 1872 + i32.load + i32.const 0 + i32.ne + set_local $5 + get_local $3 + i32.eqz + if + get_local $4 + i32.load offset=8 + tee_local $2 + if (result i32) + get_local $2 + i32.const 1872 + call $~lib/array/Array#join + else + i32.const 1560 + end + tee_local $0 + return + end + block $break|0 + i32.const 0 + set_local $0 + loop $repeat|0 + get_local $0 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $4 + get_local $0 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $2 + if + get_local $2 + i32.const 1872 + call $~lib/array/Array#join + set_local $2 + get_local $1 + get_local $2 + call $~lib/string/String.__concat + set_local $1 + end + get_local $5 + if + get_local $1 + i32.const 1872 + call $~lib/string/String.__concat + set_local $1 + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + get_local $4 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $2 + if + get_local $2 + i32.const 1872 + call $~lib/array/Array#join + set_local $0 + get_local $1 + get_local $0 + call $~lib/string/String.__concat + set_local $1 + end + get_local $1 ) - (func $~lib/internal/number/itoa (; 164 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/internal/number/utoa32 - (i32.and - (get_local $0) - (i32.const 255) - ) - ) + (func $~lib/internal/number/itoa (; 164 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 255 + i32.and + call $~lib/internal/number/utoa32 ) - (func $~lib/internal/number/itoa_stream (; 165 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/number/itoa_stream (; 165 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $2) - (i32.const 255) - ) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (i32.const 48) - ) - (return - (i32.const 1) - ) - ) - ) - (set_local $3 - (call $~lib/internal/number/decimalCount32 - (i32.and - (get_local $2) - (i32.const 255) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (i32.and - (get_local $2) - (i32.const 255) - ) - (get_local $3) - ) - (get_local $3) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i32.const 255 + i32.and + i32.eqz + if + get_local $0 + i32.const 48 + i32.store16 offset=4 + i32.const 1 + return + end + get_local $2 + i32.const 255 + i32.and + call $~lib/internal/number/decimalCount32 + set_local $3 + get_local $0 + get_local $2 + i32.const 255 + i32.and + get_local $3 + call $~lib/internal/number/utoa32_lut + get_local $3 ) - (func $~lib/array/Array#join (; 166 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 166 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13178,5027 +9425,3556 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (if - (i32.lt_s - (tee_local $4 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $7 - (i32.ne - (tee_local $6 - (i32.load - (get_local $1) - ) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (call $~lib/internal/number/itoa - (i32.load8_u offset=8 - (get_local $5) - ) - ) - ) - ) - (set_local $0 - (call $~lib/internal/string/allocateUnsafe - (tee_local $8 - (i32.add - (i32.mul - (i32.add - (get_local $6) - (i32.const 10) - ) - (get_local $4) - ) - (i32.const 10) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $3) - (get_local $4) - ) - ) - (set_local $9 - (call $~lib/internal/number/itoa_stream - (get_local $0) - (get_local $2) - (i32.load8_u offset=8 - (i32.add - (get_local $5) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (get_local $9) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $0) - (get_local $2) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $2 - (i32.add - (get_local $2) - (get_local $6) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $1 - (call $~lib/internal/number/itoa_stream - (get_local $0) - (get_local $2) - (i32.load8_u offset=8 - (i32.add - (get_local $5) - (get_local $4) - ) - ) - ) - ) - (set_local $3 - (get_local $0) - ) - (if - (i32.gt_s - (get_local $8) - (tee_local $2 - (i32.add - (get_local $2) - (get_local $1) - ) - ) - ) - (block - (set_local $3 - (call $~lib/string/String#substring - (get_local $0) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (get_local $3) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + tee_local $4 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + tee_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $4 + i32.eqz + if + get_local $5 + i32.load8_u offset=8 + call $~lib/internal/number/itoa + return + end + get_local $6 + i32.const 10 + i32.add + get_local $4 + i32.mul + i32.const 10 + i32.add + tee_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $0 + block $break|0 + loop $repeat|0 + get_local $3 + get_local $4 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $2 + get_local $5 + get_local $3 + i32.add + i32.load8_u offset=8 + call $~lib/internal/number/itoa_stream + set_local $9 + get_local $2 + get_local $9 + i32.add + set_local $2 + get_local $7 + if + get_local $0 + get_local $2 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $2 + get_local $6 + i32.add + set_local $2 + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + get_local $2 + get_local $5 + get_local $4 + i32.add + i32.load8_u offset=8 + call $~lib/internal/number/itoa_stream + set_local $1 + get_local $0 + set_local $3 + get_local $8 + get_local $2 + get_local $1 + i32.add + tee_local $2 + i32.gt_s + if + get_local $0 + get_local $2 + call $~lib/string/String#substring + set_local $3 + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + end + get_local $3 ) - (func $~lib/array/Array>#join (; 167 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#join (; 167 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.lt_s - (tee_local $3 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $1 - (i32.const 1560) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $5 - (i32.ne - (i32.load - (i32.const 1872) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (tee_local $0 - (if (result i32) - (tee_local $2 - (i32.load offset=8 - (get_local $4) - ) - ) - (call $~lib/array/Array#join - (get_local $2) - (i32.const 1872) - ) - (i32.const 1560) - ) - ) - ) - ) - (block $break|0 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (if - (tee_local $2 - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - ) - (block - (set_local $2 - (call $~lib/array/Array#join - (get_local $2) - (i32.const 1872) - ) - ) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (if - (get_local $5) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (i32.const 1872) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (tee_local $2 - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (block - (set_local $0 - (call $~lib/array/Array#join - (get_local $2) - (i32.const 1872) - ) - ) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (get_local $0) - ) - ) - ) - ) - (get_local $1) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + tee_local $3 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $1 + get_local $0 + i32.load + set_local $4 + i32.const 1872 + i32.load + i32.const 0 + i32.ne + set_local $5 + get_local $3 + i32.eqz + if + get_local $4 + i32.load offset=8 + tee_local $2 + if (result i32) + get_local $2 + i32.const 1872 + call $~lib/array/Array#join + else + i32.const 1560 + end + tee_local $0 + return + end + block $break|0 + i32.const 0 + set_local $0 + loop $repeat|0 + get_local $0 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $4 + get_local $0 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $2 + if + get_local $2 + i32.const 1872 + call $~lib/array/Array#join + set_local $2 + get_local $1 + get_local $2 + call $~lib/string/String.__concat + set_local $1 + end + get_local $5 + if + get_local $1 + i32.const 1872 + call $~lib/string/String.__concat + set_local $1 + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + get_local $4 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $2 + if + get_local $2 + i32.const 1872 + call $~lib/array/Array#join + set_local $0 + get_local $1 + get_local $0 + call $~lib/string/String.__concat + set_local $1 + end + get_local $1 ) - (func $~lib/array/Array>#join (; 168 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#join (; 168 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.lt_s - (tee_local $4 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $2 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.ne - (i32.load - (get_local $1) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (tee_local $0 - (if (result i32) - (tee_local $3 - (i32.load offset=8 - (get_local $5) - ) - ) - (call $~lib/array/Array#join - (get_local $3) - (get_local $1) - ) - (i32.const 1560) - ) - ) - ) - ) - (block $break|0 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (get_local $4) - ) - ) - (if - (tee_local $3 - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - ) - (block - (set_local $3 - (call $~lib/array/Array#join - (get_local $3) - (get_local $1) - ) - ) - (set_local $2 - (call $~lib/string/String.__concat - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (if - (get_local $6) - (set_local $2 - (call $~lib/string/String.__concat - (get_local $2) - (get_local $1) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (tee_local $3 - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - (block - (set_local $0 - (call $~lib/array/Array#join - (get_local $3) - (get_local $1) - ) - ) - (set_local $2 - (call $~lib/string/String.__concat - (get_local $2) - (get_local $0) - ) - ) - ) - ) - (get_local $2) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + tee_local $4 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $2 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + i32.const 0 + i32.ne + set_local $6 + get_local $4 + i32.eqz + if + get_local $5 + i32.load offset=8 + tee_local $3 + if (result i32) + get_local $3 + get_local $1 + call $~lib/array/Array#join + else + i32.const 1560 + end + tee_local $0 + return + end + block $break|0 + i32.const 0 + set_local $0 + loop $repeat|0 + get_local $0 + get_local $4 + i32.ge_s + br_if $break|0 + get_local $5 + get_local $0 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $3 + if + get_local $3 + get_local $1 + call $~lib/array/Array#join + set_local $3 + get_local $2 + get_local $3 + call $~lib/string/String.__concat + set_local $2 + end + get_local $6 + if + get_local $2 + get_local $1 + call $~lib/string/String.__concat + set_local $2 + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + get_local $5 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $3 + if + get_local $3 + get_local $1 + call $~lib/array/Array#join + set_local $0 + get_local $2 + get_local $0 + call $~lib/string/String.__concat + set_local $2 + end + get_local $2 ) - (func $~lib/array/Array>>#join (; 169 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>>#join (; 169 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.lt_s - (tee_local $3 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $1 - (i32.const 1560) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $5 - (i32.ne - (i32.load - (i32.const 1872) - ) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (tee_local $0 - (if (result i32) - (tee_local $2 - (i32.load offset=8 - (get_local $4) - ) - ) - (call $~lib/array/Array>#join - (get_local $2) - (i32.const 1872) - ) - (i32.const 1560) - ) - ) - ) - ) - (block $break|0 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (if - (tee_local $2 - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - ) - (block - (set_local $2 - (call $~lib/array/Array>#join - (get_local $2) - (i32.const 1872) - ) - ) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (if - (get_local $5) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (i32.const 1872) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (tee_local $2 - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (block - (set_local $0 - (call $~lib/array/Array>#join - (get_local $2) - (i32.const 1872) - ) - ) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (get_local $0) - ) - ) - ) - ) - (get_local $1) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + tee_local $3 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $1 + get_local $0 + i32.load + set_local $4 + i32.const 1872 + i32.load + i32.const 0 + i32.ne + set_local $5 + get_local $3 + i32.eqz + if + get_local $4 + i32.load offset=8 + tee_local $2 + if (result i32) + get_local $2 + i32.const 1872 + call $~lib/array/Array>#join + else + i32.const 1560 + end + tee_local $0 + return + end + block $break|0 + i32.const 0 + set_local $0 + loop $repeat|0 + get_local $0 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $4 + get_local $0 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $2 + if + get_local $2 + i32.const 1872 + call $~lib/array/Array>#join + set_local $2 + get_local $1 + get_local $2 + call $~lib/string/String.__concat + set_local $1 + end + get_local $5 + if + get_local $1 + i32.const 1872 + call $~lib/string/String.__concat + set_local $1 + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + get_local $4 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + tee_local $2 + if + get_local $2 + i32.const 1872 + call $~lib/array/Array>#join + set_local $0 + get_local $1 + get_local $0 + call $~lib/string/String.__concat + set_local $1 + end + get_local $1 ) - (func $start (; 170 ;) (; has Stack IR ;) (type $v) + (func $start (; 170 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 f32) (local $3 f32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 6088) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/array/arr - (call $~lib/array/Array#constructor - (i32.const 0) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr8) - (i32.const 1) - (i32.const 1) - (i32.const 3) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr8) - (i32.const 144) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 36) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (drop - (call $~lib/array/Array#fill|trampoline - (get_global $std/array/arr8) - (i32.const 0) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr8) - (i32.const 200) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr8) - (i32.const 1) - (i32.const 0) - (i32.const -3) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr8) - (i32.const 224) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 42) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (drop - (call $~lib/array/Array#fill|trampoline - (get_global $std/array/arr8) - (i32.const 2) - (i32.const -2) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr8) - (i32.const 248) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 45) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr8) - (i32.const 0) - (i32.const 1) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr8) - (i32.const 272) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 48) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr32) - (i32.const 1) - (i32.const 1) - (i32.const 3) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr32) - (i32.const 352) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 53) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (drop - (call $~lib/array/Array#fill|trampoline - (get_global $std/array/arr32) - (i32.const 0) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr32) - (i32.const 392) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 56) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr32) - (i32.const 1) - (i32.const 0) - (i32.const -3) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr32) - (i32.const 432) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 59) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (drop - (call $~lib/array/Array#fill|trampoline - (get_global $std/array/arr32) - (i32.const 2) - (i32.const -2) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr32) - (i32.const 472) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 62) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr32) - (i32.const 0) - (i32.const 1) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr32) - (i32.const 512) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 65) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (get_global $std/array/arr) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 69) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 70) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 42) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 74) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 75) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 76) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 80) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (get_global $std/array/arr) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 81) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 82) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 43) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 86) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 87) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 43) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 88) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 44) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 92) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 93) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 43) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 94) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 44) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 95) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 45) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 99) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 100) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 43) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 44) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 45) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 103) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/other - (call $~lib/array/Array#constructor - (i32.const 0) - ) - ) - (set_global $std/array/out - (call $~lib/array/Array#concat - (get_global $std/array/arr) - (get_global $std/array/other) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/out) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 112) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#concat - (get_global $std/array/out) - (i32.const 528) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 0) - ) - (i32.const 43) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 1) - ) - (i32.const 44) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 118) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 2) - ) - (i32.const 45) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 119) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/other) - (i32.const 46) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/other) - (i32.const 47) - ) - ) - (set_global $std/array/out - (call $~lib/array/Array#concat - (get_global $std/array/arr) - (get_global $std/array/other) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/other) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/out) - ) - (i32.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 0) - ) - (i32.const 43) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 1) - ) - (i32.const 44) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 2) - ) - (i32.const 45) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 3) - ) - (i32.const 46) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 4) - ) - (i32.const 47) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/out) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/out) - ) - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 136) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/out - (call $~lib/array/Array#concat - (get_global $std/array/arr) - (i32.const 0) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/out) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 139) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 2) - ) - (i32.const 45) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 140) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (get_global $std/array/source) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 143) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/out - (call $~lib/array/Array#concat - (get_global $std/array/source) - (get_global $std/array/arr) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/out) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 145) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (get_global $std/array/source) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 146) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#unshift - (get_global $std/array/arr) - (i32.const 42) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 152) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 153) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 154) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 43) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 44) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 156) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 3) - ) - (i32.const 45) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 157) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#unshift - (get_global $std/array/arr) - (i32.const 41) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 161) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 162) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 41) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 163) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 164) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 43) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 3) - ) - (i32.const 44) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 166) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 4) - ) - (i32.const 45) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 167) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#shift - (get_global $std/array/arr) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 41) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 173) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 174) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 175) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 176) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 43) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 177) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 44) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 178) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 3) - ) - (i32.const 45) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 179) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 45) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 183) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 184) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 185) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 186) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 43) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 187) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 44) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 188) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#reverse - (get_global $std/array/arr) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 194) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 195) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 44) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 196) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 43) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 197) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 198) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 43) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 44) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 44) - (i32.const 0) - ) - ) - (if - (get_global $std/array/i) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 207) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 42) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 211) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 45) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 215) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 100) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 219) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const -100) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 223) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const -2) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 227) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const -4) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 231) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 235) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 1) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 239) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 2) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 243) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 44) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/includes) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 249) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 42) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/includes) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 253) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 45) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (if - (get_global $std/array/includes) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 257) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 100) - ) - (i32.const 0) - ) - ) - (if - (get_global $std/array/includes) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 261) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const -100) - ) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/includes) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 265) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const -2) - ) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/includes) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 269) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const -4) - ) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/includes) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 273) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/includes) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 277) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 1) - ) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/includes) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 281) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/includes) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 285) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#splice - (get_global $std/array/arr) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 289) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 290) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 44) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 291) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 42) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 292) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__set - (get_global $std/array/arr) - (i32.const 0) - (i32.const 0) - ) - (call $~lib/array/Array#__set - (get_global $std/array/arr) - (i32.const 1) - (i32.const 1) - ) - (call $~lib/array/Array#__set - (get_global $std/array/arr) - (i32.const 2) - (i32.const 2) - ) - (call $~lib/array/Array#__set - (get_global $std/array/arr) - (i32.const 3) - (i32.const 3) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 1) - ) - ) - (if - (get_global $std/array/i) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 302) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 305) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 308) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 4) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 316) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 317) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 5) - ) - ) - (if - (i32.eq - (get_global $std/array/i) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 319) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 6) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 332) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 333) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/every - (call $~lib/array/Array#every - (get_global $std/array/arr) - (i32.const 7) - ) - ) - (if - (i32.ne - (get_global $std/array/every) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 341) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/every - (call $~lib/array/Array#every - (get_global $std/array/arr) - (i32.const 8) - ) - ) - (if - (get_global $std/array/every) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 344) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/every - (call $~lib/array/Array#every - (get_global $std/array/arr) - (i32.const 9) - ) - ) - (if - (i32.ne - (get_global $std/array/every) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 352) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 353) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/every - (call $~lib/array/Array#every - (get_global $std/array/arr) - (i32.const 10) - ) - ) - (if - (get_global $std/array/every) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 355) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/every - (call $~lib/array/Array#every - (get_global $std/array/arr) - (i32.const 11) - ) - ) - (if - (i32.ne - (get_global $std/array/every) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 368) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 369) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/some - (call $~lib/array/Array#some - (get_global $std/array/arr) - (i32.const 12) - ) - ) - (if - (i32.ne - (get_global $std/array/some) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 377) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/some - (call $~lib/array/Array#some - (get_global $std/array/arr) - (i32.const 13) - ) - ) - (if - (get_global $std/array/some) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 380) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/some - (call $~lib/array/Array#some - (get_global $std/array/arr) - (i32.const 14) - ) - ) - (if - (get_global $std/array/some) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 388) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 389) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/some - (call $~lib/array/Array#some - (get_global $std/array/arr) - (i32.const 15) - ) - ) - (if - (i32.ne - (get_global $std/array/some) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 391) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/some - (call $~lib/array/Array#some - (get_global $std/array/arr) - (i32.const 16) - ) - ) - (if - (get_global $std/array/some) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 404) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 405) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (call $~lib/array/Array#forEach - (get_global $std/array/arr) - (i32.const 17) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 6) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 414) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (call $~lib/array/Array#forEach - (get_global $std/array/arr) - (i32.const 18) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 6) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 423) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 424) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (call $~lib/array/Array#forEach - (get_global $std/array/arr) - (i32.const 19) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 406) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 427) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (call $~lib/array/Array#forEach - (get_global $std/array/arr) - (i32.const 20) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 441) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 442) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/newArr - (call $~lib/array/Array#map - (get_global $std/array/arr) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/newArr) - ) - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 451) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_local $2 - (call $~lib/array/Array#__get - (get_global $std/array/newArr) - (i32.const 0) - ) - ) - (set_local $3 - (f32.convert_s/i32 - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - ) - ) - (if - (f32.ne - (get_local $2) - (get_local $3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 452) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#map - (get_global $std/array/arr) - (i32.const 22) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 6) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 461) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 462) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#map - (get_global $std/array/arr) - (i32.const 23) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 406) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 469) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#map - (get_global $std/array/arr) - (i32.const 24) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 484) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 485) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/filteredArr - (call $~lib/array/Array#filter - (get_global $std/array/arr) - (i32.const 25) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/filteredArr) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 493) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#filter - (get_global $std/array/arr) - (i32.const 26) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 6) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 502) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 503) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#filter - (get_global $std/array/arr) - (i32.const 27) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 406) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 510) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#filter - (get_global $std/array/arr) - (i32.const 28) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 525) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 526) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 29) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 6) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 534) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 30) - (i32.const 4) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 10) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 538) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/boolVal - (i32.and - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 31) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (if - (i32.ne - (get_global $std/array/boolVal) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 541) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/boolVal - (i32.and - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 32) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (if - (get_global $std/array/boolVal) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 544) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 33) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 6) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 552) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 553) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 34) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 10) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 555) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 35) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 568) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 569) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 36) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 6) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 577) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 37) - (i32.const 4) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 10) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 581) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/boolVal - (i32.and - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 38) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (if - (i32.ne - (get_global $std/array/boolVal) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 584) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/boolVal - (i32.and - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 39) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (if - (get_global $std/array/boolVal) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 587) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 40) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 6) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 595) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/array/arr) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 596) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 41) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 10) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 598) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 42) - (i32.const 0) - ) - ) - (if - (i32.ne - (get_global $std/array/i) - (i32.const 6) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 611) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (get_global $std/array/arr) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 612) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 0) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 1) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (call $~lib/math/NativeMath.seedRandom - (i64.reinterpret/f64 - (call $~lib/bindings/Math/random) - ) - ) - (set_global $~argc - (i32.const 0) - ) - (drop - (call $~lib/array/Array#sort|trampoline - (get_global $std/array/f32ArrayTyped) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/f32ArrayTyped) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 699) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 0) - ) - (drop - (call $~lib/array/Array#sort|trampoline - (get_global $std/array/f64ArrayTyped) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/f64ArrayTyped) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 703) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 0) - ) - (drop - (call $~lib/array/Array#sort|trampoline - (get_global $std/array/i32ArrayTyped) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/i32ArrayTyped) - (i32.const 1248) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 707) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 0) - ) - (drop - (call $~lib/array/Array#sort|trampoline - (get_global $std/array/u32ArrayTyped) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/u32ArrayTyped) - (i32.const 1328) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 711) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/reversed64 - (call $std/array/createReverseOrderedArray - (i32.const 64) - ) - ) - (set_global $std/array/reversed128 - (call $std/array/createReverseOrderedArray - (i32.const 128) - ) - ) - (set_global $std/array/reversed1024 - (call $std/array/createReverseOrderedArray - (i32.const 1024) - ) - ) - (set_global $std/array/reversed10000 - (call $std/array/createReverseOrderedArray - (i32.const 10000) - ) - ) - (set_global $std/array/randomized512 - (call $std/array/createRandomOrderedArray - (i32.const 512) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed0) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed1) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed1) - (i32.const 1496) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 731) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed2) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed2) - (i32.const 1520) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 734) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed4) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed4) - (get_global $std/array/expected4) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 737) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed64) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed64) - (get_global $std/array/expected4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 740) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed128) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed128) - (get_global $std/array/expected4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 743) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed1024) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed1024) - (get_global $std/array/expected4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 746) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed10000) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed10000) - (get_global $std/array/expected4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 749) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/randomized512) - ) - (set_global $std/array/randomized64 - (call $std/array/createRandomOrderedArray - (i32.const 64) - ) - ) - (set_global $std/array/randomized257 - (call $std/array/createRandomOrderedArray - (i32.const 257) - ) - ) - (call $std/array/assertSorted - (get_global $std/array/randomized64) - (i32.const 48) - ) - (call $std/array/assertSorted - (get_global $std/array/randomized64) - (i32.const 49) - ) - (call $std/array/assertSorted - (get_global $std/array/randomized257) - (i32.const 50) - ) - (call $std/array/assertSorted - (get_global $std/array/randomized257) - (i32.const 51) - ) - (set_global $std/array/reversedNested512 - (call $std/array/createReverseOrderedNestedArray) - ) - (call $std/array/assertSorted> - (get_global $std/array/reversedNested512) - (i32.const 52) - ) - (set_global $std/array/reversedElements512 - (call $std/array/createReverseOrderedElementsArray) - ) - (call $std/array/assertSorted> - (get_global $std/array/reversedElements512) - (i32.const 53) - ) - (call $std/array/assertSorted> - (get_global $std/array/randomStringsActual) - (i32.const 54) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/randomStringsActual) - (get_global $std/array/randomStringsExpected) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 778) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/randomStrings400 - (call $std/array/createRandomStringArray) - ) - (call $std/array/assertSorted> - (get_global $std/array/randomStrings400) - (i32.const 55) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join) - (i32.const 1904) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 787) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 2528) - (i32.const 1560) - ) - (i32.const 2536) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 788) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 2632) - (i32.const 2592) - ) - (i32.const 2536) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 789) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 2688) - (i32.const 2664) - ) - (i32.const 2696) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 790) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join) - (i32.const 4352) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 791) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 4520) - (i32.const 1560) - ) - (i32.const 4440) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 792) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_local $0 - (call $~lib/array/Array#constructor - (i32.const 3) - ) - ) - (set_local $1 - (call $std/array/Ref#constructor) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 0) - (get_local $1) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 1) - (i32.const 0) - ) - (set_local $1 - (call $std/array/Ref#constructor) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $0) - (i32.const 2) - (get_local $1) - ) - (set_global $std/array/refArr - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (get_global $std/array/refArr) - ) - (i32.const 4568) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 794) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (get_global $std/array/reversed0) - (i32.const 1872) - ) - (i32.const 1560) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 798) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (get_global $std/array/reversed1) - (i32.const 1872) - ) - (i32.const 4440) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 799) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (get_global $std/array/reversed2) - (i32.const 1872) - ) - (i32.const 4640) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 800) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (get_global $std/array/reversed4) - (i32.const 1872) - ) - (i32.const 4656) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 801) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join) - (i32.const 4728) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 803) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join) - (i32.const 4792) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 804) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join) - (i32.const 5416) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 805) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join) - (i32.const 5616) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 806) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (get_global $std/array/randomStringsExpected) - (i32.const 1872) - ) - (i32.const 5704) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 807) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 5824) - (i32.const 1872) - ) - (i32.const 5832) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 808) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array>#join - (get_global $std/array/subarr32) - ) - (i32.const 5920) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 811) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array>#join - (get_global $std/array/subarr8) - ) - (i32.const 5920) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 814) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array>>#join - (get_global $std/array/subarrU32) - ) - (i32.const 4440) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 817) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 6088 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + call $~lib/array/Array#constructor + set_global $std/array/arr + get_global $std/array/arr8 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + drop + get_global $std/array/arr8 + i32.const 144 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 36 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/array/arr8 + i32.const 0 + i32.const 0 + call $~lib/array/Array#fill|trampoline + drop + get_global $std/array/arr8 + i32.const 200 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr8 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + drop + get_global $std/array/arr8 + i32.const 224 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 42 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + set_global $~argc + get_global $std/array/arr8 + i32.const 2 + i32.const -2 + call $~lib/array/Array#fill|trampoline + drop + get_global $std/array/arr8 + i32.const 248 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 45 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr8 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + drop + get_global $std/array/arr8 + i32.const 272 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 48 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr32 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + drop + get_global $std/array/arr32 + i32.const 352 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 53 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/array/arr32 + i32.const 0 + i32.const 0 + call $~lib/array/Array#fill|trampoline + drop + get_global $std/array/arr32 + i32.const 392 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 56 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr32 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + drop + get_global $std/array/arr32 + i32.const 432 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 59 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + set_global $~argc + get_global $std/array/arr32 + i32.const 2 + i32.const -2 + call $~lib/array/Array#fill|trampoline + drop + get_global $std/array/arr32 + i32.const 472 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 62 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr32 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + drop + get_global $std/array/arr32 + i32.const 512 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 65 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + if + i32.const 0 + i32.const 152 + i32.const 69 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + if + i32.const 0 + i32.const 152 + i32.const 70 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 42 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 74 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 75 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 76 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + set_global $std/array/i + get_global $std/array/i + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 80 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + if + i32.const 0 + i32.const 152 + i32.const 81 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 82 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.load offset=4 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 86 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 87 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 88 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 44 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 92 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 93 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 94 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 95 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 45 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 99 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 100 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 101 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 102 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 103 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/array/Array#constructor + set_global $std/array/other + get_global $std/array/arr + get_global $std/array/other + call $~lib/array/Array#concat + set_global $std/array/out + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 110 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 111 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 112 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 528 + call $~lib/array/Array#concat + drop + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 115 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 117 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 118 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 119 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/other + i32.const 46 + call $~lib/array/Array#push + drop + get_global $std/array/other + i32.const 47 + call $~lib/array/Array#push + drop + get_global $std/array/arr + get_global $std/array/other + call $~lib/array/Array#concat + set_global $std/array/out + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/other + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 127 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.load offset=4 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 129 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 130 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 131 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 3 + call $~lib/array/Array#__get + i32.const 46 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 132 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 4 + call $~lib/array/Array#__get + i32.const 47 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 133 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + call $~lib/array/Array#pop + drop + get_global $std/array/out + i32.load offset=4 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 136 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#concat + set_global $std/array/out + get_global $std/array/out + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 139 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 140 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/source + i32.load offset=4 + if + i32.const 0 + i32.const 152 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/source + get_global $std/array/arr + call $~lib/array/Array#concat + set_global $std/array/out + get_global $std/array/out + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 145 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/source + i32.load offset=4 + if + i32.const 0 + i32.const 152 + i32.const 146 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 42 + call $~lib/array/Array#unshift + drop + get_global $std/array/arr + i32.load offset=4 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 152 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 153 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 154 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 156 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 157 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 41 + call $~lib/array/Array#unshift + drop + get_global $std/array/arr + i32.load offset=4 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 161 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 162 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 41 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 163 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 164 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 166 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 4 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 167 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#shift + set_global $std/array/i + get_global $std/array/i + i32.const 41 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 173 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 174 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 175 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 176 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 177 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 178 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 179 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + set_global $std/array/i + get_global $std/array/i + i32.const 45 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 183 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 184 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 185 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 186 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 187 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 188 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#reverse + drop + get_global $std/array/arr + i32.load offset=4 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 194 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 195 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 196 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 197 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 198 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 44 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 44 + i32.const 0 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + if + i32.const 0 + i32.const 152 + i32.const 207 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 211 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 45 + i32.const 0 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 215 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 100 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 219 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const -100 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 223 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const -2 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 227 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const -4 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 231 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 0 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 235 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 1 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 239 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 2 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 243 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 44 + i32.const 0 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 253 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 45 + i32.const 0 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + set_global $std/array/includes + get_global $std/array/includes + if + i32.const 0 + i32.const 152 + i32.const 257 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 100 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + set_global $std/array/includes + get_global $std/array/includes + if + i32.const 0 + i32.const 152 + i32.const 261 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const -100 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 265 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const -2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 269 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const -4 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 273 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 0 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 277 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 1 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 281 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 285 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#splice + get_global $std/array/arr + i32.load offset=4 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 289 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 290 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 291 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 292 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + i32.const 0 + call $~lib/array/Array#__set + get_global $std/array/arr + i32.const 1 + i32.const 1 + call $~lib/array/Array#__set + get_global $std/array/arr + i32.const 2 + i32.const 2 + call $~lib/array/Array#__set + get_global $std/array/arr + i32.const 3 + i32.const 3 + call $~lib/array/Array#__set + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + if + i32.const 0 + i32.const 152 + i32.const 302 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 305 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 308 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 4 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 316 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 317 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 5 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.eq + if + i32.const 0 + i32.const 152 + i32.const 319 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + i32.const 6 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 332 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 333 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 7 + call $~lib/array/Array#every + set_global $std/array/every + get_global $std/array/every + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 341 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 8 + call $~lib/array/Array#every + set_global $std/array/every + get_global $std/array/every + if + i32.const 0 + i32.const 152 + i32.const 344 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 9 + call $~lib/array/Array#every + set_global $std/array/every + get_global $std/array/every + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 352 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 353 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 10 + call $~lib/array/Array#every + set_global $std/array/every + get_global $std/array/every + if + i32.const 0 + i32.const 152 + i32.const 355 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + i32.const 11 + call $~lib/array/Array#every + set_global $std/array/every + get_global $std/array/every + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 368 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 369 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 12 + call $~lib/array/Array#some + set_global $std/array/some + get_global $std/array/some + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 377 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 13 + call $~lib/array/Array#some + set_global $std/array/some + get_global $std/array/some + if + i32.const 0 + i32.const 152 + i32.const 380 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 14 + call $~lib/array/Array#some + set_global $std/array/some + get_global $std/array/some + if + i32.const 0 + i32.const 152 + i32.const 388 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 389 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 15 + call $~lib/array/Array#some + set_global $std/array/some + get_global $std/array/some + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 391 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + i32.const 16 + call $~lib/array/Array#some + set_global $std/array/some + get_global $std/array/some + if + i32.const 0 + i32.const 152 + i32.const 404 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 405 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 17 + call $~lib/array/Array#forEach + get_global $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 414 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 18 + call $~lib/array/Array#forEach + get_global $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 423 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 424 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 19 + call $~lib/array/Array#forEach + get_global $std/array/i + i32.const 406 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 427 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 20 + call $~lib/array/Array#forEach + get_global $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 441 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 442 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + call $~lib/array/Array#map + set_global $std/array/newArr + get_global $std/array/newArr + i32.load offset=4 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 451 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/newArr + i32.const 0 + call $~lib/array/Array#__get + set_local $2 + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + f32.convert_s/i32 + set_local $3 + get_local $2 + get_local $3 + f32.ne + if + i32.const 0 + i32.const 152 + i32.const 452 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 22 + call $~lib/array/Array#map + drop + get_global $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 461 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 462 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 23 + call $~lib/array/Array#map + drop + get_global $std/array/i + i32.const 406 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 469 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 24 + call $~lib/array/Array#map + drop + get_global $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 484 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 485 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 25 + call $~lib/array/Array#filter + set_global $std/array/filteredArr + get_global $std/array/filteredArr + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 493 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 26 + call $~lib/array/Array#filter + drop + get_global $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 502 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 503 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 27 + call $~lib/array/Array#filter + drop + get_global $std/array/i + i32.const 406 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 510 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 28 + call $~lib/array/Array#filter + drop + get_global $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 525 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 526 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 29 + i32.const 0 + call $~lib/array/Array#reduce + set_global $std/array/i + get_global $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 534 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 30 + i32.const 4 + call $~lib/array/Array#reduce + set_global $std/array/i + get_global $std/array/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 538 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 31 + i32.const 0 + call $~lib/array/Array#reduce + i32.const 1 + i32.and + set_global $std/array/boolVal + get_global $std/array/boolVal + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 541 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 32 + i32.const 0 + call $~lib/array/Array#reduce + i32.const 1 + i32.and + set_global $std/array/boolVal + get_global $std/array/boolVal + if + i32.const 0 + i32.const 152 + i32.const 544 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 33 + i32.const 0 + call $~lib/array/Array#reduce + set_global $std/array/i + get_global $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 552 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 553 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 34 + i32.const 0 + call $~lib/array/Array#reduce + set_global $std/array/i + get_global $std/array/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 555 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + i32.const 35 + i32.const 0 + call $~lib/array/Array#reduce + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 568 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 569 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 36 + i32.const 0 + call $~lib/array/Array#reduceRight + set_global $std/array/i + get_global $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 577 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 37 + i32.const 4 + call $~lib/array/Array#reduceRight + set_global $std/array/i + get_global $std/array/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 581 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 38 + i32.const 0 + call $~lib/array/Array#reduceRight + i32.const 1 + i32.and + set_global $std/array/boolVal + get_global $std/array/boolVal + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 584 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 39 + i32.const 0 + call $~lib/array/Array#reduceRight + i32.const 1 + i32.and + set_global $std/array/boolVal + get_global $std/array/boolVal + if + i32.const 0 + i32.const 152 + i32.const 587 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 40 + i32.const 0 + call $~lib/array/Array#reduceRight + set_global $std/array/i + get_global $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 595 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 596 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 41 + i32.const 0 + call $~lib/array/Array#reduceRight + set_global $std/array/i + get_global $std/array/i + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 598 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#reduceRight + set_global $std/array/i + get_global $std/array/i + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 152 + i32.const 611 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.load offset=4 + if + i32.const 0 + i32.const 152 + i32.const 612 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + call $~lib/bindings/Math/random + i64.reinterpret/f64 + call $~lib/math/NativeMath.seedRandom + i32.const 0 + set_global $~argc + get_global $std/array/f32ArrayTyped + call $~lib/array/Array#sort|trampoline + drop + get_global $std/array/f32ArrayTyped + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 699 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $~argc + get_global $std/array/f64ArrayTyped + call $~lib/array/Array#sort|trampoline + drop + get_global $std/array/f64ArrayTyped + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 703 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $~argc + get_global $std/array/i32ArrayTyped + call $~lib/array/Array#sort|trampoline + drop + get_global $std/array/i32ArrayTyped + i32.const 1248 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 707 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $~argc + get_global $std/array/u32ArrayTyped + call $~lib/array/Array#sort|trampoline + drop + get_global $std/array/u32ArrayTyped + i32.const 1328 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 711 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 64 + call $std/array/createReverseOrderedArray + set_global $std/array/reversed64 + i32.const 128 + call $std/array/createReverseOrderedArray + set_global $std/array/reversed128 + i32.const 1024 + call $std/array/createReverseOrderedArray + set_global $std/array/reversed1024 + i32.const 10000 + call $std/array/createReverseOrderedArray + set_global $std/array/reversed10000 + i32.const 512 + call $std/array/createRandomOrderedArray + set_global $std/array/randomized512 + get_global $std/array/reversed0 + call $std/array/assertSortedDefault + get_global $std/array/reversed1 + call $std/array/assertSortedDefault + get_global $std/array/reversed1 + i32.const 1496 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 731 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed2 + call $std/array/assertSortedDefault + get_global $std/array/reversed2 + i32.const 1520 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 734 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed4 + call $std/array/assertSortedDefault + get_global $std/array/reversed4 + get_global $std/array/expected4 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 737 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed64 + call $std/array/assertSortedDefault + get_global $std/array/reversed64 + get_global $std/array/expected4 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 740 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed128 + call $std/array/assertSortedDefault + get_global $std/array/reversed128 + get_global $std/array/expected4 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 743 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed1024 + call $std/array/assertSortedDefault + get_global $std/array/reversed1024 + get_global $std/array/expected4 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 746 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed10000 + call $std/array/assertSortedDefault + get_global $std/array/reversed10000 + get_global $std/array/expected4 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 749 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/randomized512 + call $std/array/assertSortedDefault + i32.const 64 + call $std/array/createRandomOrderedArray + set_global $std/array/randomized64 + i32.const 257 + call $std/array/createRandomOrderedArray + set_global $std/array/randomized257 + get_global $std/array/randomized64 + i32.const 48 + call $std/array/assertSorted + get_global $std/array/randomized64 + i32.const 49 + call $std/array/assertSorted + get_global $std/array/randomized257 + i32.const 50 + call $std/array/assertSorted + get_global $std/array/randomized257 + i32.const 51 + call $std/array/assertSorted + call $std/array/createReverseOrderedNestedArray + set_global $std/array/reversedNested512 + get_global $std/array/reversedNested512 + i32.const 52 + call $std/array/assertSorted> + call $std/array/createReverseOrderedElementsArray + set_global $std/array/reversedElements512 + get_global $std/array/reversedElements512 + i32.const 53 + call $std/array/assertSorted> + get_global $std/array/randomStringsActual + i32.const 54 + call $std/array/assertSorted> + get_global $std/array/randomStringsActual + get_global $std/array/randomStringsExpected + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 778 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $std/array/createRandomStringArray + set_global $std/array/randomStrings400 + get_global $std/array/randomStrings400 + i32.const 55 + call $std/array/assertSorted> + call $~lib/array/Array#join + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 787 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2528 + i32.const 1560 + call $~lib/array/Array#join + i32.const 2536 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 788 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2632 + i32.const 2592 + call $~lib/array/Array#join + i32.const 2536 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 789 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2688 + i32.const 2664 + call $~lib/array/Array#join + i32.const 2696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 790 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#join + i32.const 4352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 791 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4520 + i32.const 1560 + call $~lib/array/Array#join + i32.const 4440 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 792 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + call $~lib/array/Array#constructor + set_local $0 + call $std/array/Ref#constructor + set_local $1 + get_local $0 + i32.const 0 + get_local $1 + call $~lib/array/Array#__unchecked_set + get_local $0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#__unchecked_set + call $std/array/Ref#constructor + set_local $1 + get_local $0 + i32.const 2 + get_local $1 + call $~lib/array/Array#__unchecked_set + get_local $0 + set_global $std/array/refArr + get_global $std/array/refArr + call $~lib/array/Array#join + i32.const 4568 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 794 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed0 + i32.const 1872 + call $~lib/array/Array#join + i32.const 1560 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 798 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed1 + i32.const 1872 + call $~lib/array/Array#join + i32.const 4440 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 799 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed2 + i32.const 1872 + call $~lib/array/Array#join + i32.const 4640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 800 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed4 + i32.const 1872 + call $~lib/array/Array#join + i32.const 4656 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 801 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#join + i32.const 4728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 803 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#join + i32.const 4792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 804 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#join + i32.const 5416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 805 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#join + i32.const 5616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 806 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/randomStringsExpected + i32.const 1872 + call $~lib/array/Array#join + i32.const 5704 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 807 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 5824 + i32.const 1872 + call $~lib/array/Array#join + i32.const 5832 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 808 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/subarr32 + call $~lib/array/Array>#join + i32.const 5920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 811 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/subarr8 + call $~lib/array/Array>#join + i32.const 5920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 814 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/subarrU32 + call $~lib/array/Array>>#join + i32.const 4440 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 817 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 171 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 171 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 183d9ae6..0e21d756 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -26,6 +26,8 @@ (type $iIiv (func (param i32 i64 i32))) (type $iiIi (func (param i32 i32 i64) (result i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) + (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 40) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") @@ -203,10 +205,8 @@ (data (i32.const 6056) "\98\17\00\00\01\00\00\00") (data (i32.const 6064) "\04\00\00\00\00\00\00\00\a8\17\00\00\00\00\00\00") (data (i32.const 6080) "\b0\17\00\00\01\00\00\00") - (table 56 anyfunc) + (table $0 56 anyfunc) (elem (i32.const 0) $null $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|4 $start~anonymous|5 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|17 $start~anonymous|18 $start~anonymous|19 $start~anonymous|20 $start~anonymous|21 $start~anonymous|22 $start~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|26 $start~anonymous|27 $start~anonymous|28 $start~anonymous|29 $start~anonymous|30 $start~anonymous|31 $start~anonymous|32 $start~anonymous|33 $start~anonymous|34 $start~anonymous|35 $start~anonymous|36 $start~anonymous|37 $start~anonymous|38 $start~anonymous|39 $start~anonymous|40 $start~anonymous|41 $start~anonymous|42 $~lib/array/Array#sort|trampoline~anonymous|43 $~lib/array/Array#sort|trampoline~anonymous|44 $~lib/array/Array#sort|trampoline~anonymous|45 $~lib/array/Array#sort|trampoline~anonymous|46 $std/array/assertSortedDefault~anonymous|47 $start~anonymous|48 $start~anonymous|49 $start~anonymous|50 $start~anonymous|51 $start~anonymous|52 $start~anonymous|53 $start~anonymous|54 $start~anonymous|55) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) - (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -309,21 +309,16 @@ (export "table" (table $0)) (start $start) (func $~lib/internal/arraybuffer/computeSize (; 2 ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.sub - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/allocator/arena/__memory_allocate (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -332,3153 +327,2248 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $2 - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_local $0 + call $~lib/internal/arraybuffer/computeSize + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/memory/memory.allocate (; 5 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $~lib/internal/memory/memset (; 6 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/array/Array#constructor (; 7 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.0 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array#fill (; 8 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $5 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $2 - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (select - (tee_local $6 - (i32.add - (get_local $5) - (get_local $2) - ) - ) - (tee_local $7 - (i32.const 0) - ) - (i32.gt_s - (get_local $6) - (get_local $7) - ) - ) - (select - (tee_local $6 - (get_local $2) - ) - (tee_local $7 - (get_local $5) - ) - (i32.lt_s - (get_local $6) - (get_local $7) - ) - ) - ) - ) - (set_local $3 - (if (result i32) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (select - (tee_local $6 - (i32.add - (get_local $5) - (get_local $3) - ) - ) - (tee_local $7 - (i32.const 0) - ) - (i32.gt_s - (get_local $6) - (get_local $7) - ) - ) - (select - (tee_local $6 - (get_local $3) - ) - (tee_local $7 - (get_local $5) - ) - (i32.lt_s - (get_local $6) - (get_local $7) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (get_local $3) - ) - (block $~lib/memory/memory.fill|inlined.1 - (set_local $6 - (i32.add - (i32.add - (get_local $4) - (get_local $2) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.sub - (get_local $3) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memset - (get_local $6) - (get_local $1) - (get_local $7) - ) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $4 + get_local $0 + i32.load offset=4 + set_local $5 + get_local $2 + i32.const 0 + i32.lt_s + if (result i32) + get_local $5 + get_local $2 + i32.add + tee_local $6 + i32.const 0 + tee_local $7 + get_local $6 + get_local $7 + i32.gt_s + select + else + get_local $2 + tee_local $6 + get_local $5 + tee_local $7 + get_local $6 + get_local $7 + i32.lt_s + select + end + set_local $2 + get_local $3 + i32.const 0 + i32.lt_s + if (result i32) + get_local $5 + get_local $3 + i32.add + tee_local $6 + i32.const 0 + tee_local $7 + get_local $6 + get_local $7 + i32.gt_s + select + else + get_local $3 + tee_local $6 + get_local $5 + tee_local $7 + get_local $6 + get_local $7 + i32.lt_s + select + end + set_local $3 + get_local $2 + get_local $3 + i32.lt_s + if + get_local $4 + get_local $2 + i32.add + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $3 + get_local $2 + i32.sub + set_local $7 + get_local $6 + get_local $1 + get_local $7 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array#__get (; 9 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 0) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load8_u offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 0 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=8 + else + unreachable + end ) (func $std/array/isArraysEqual (; 10 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $2 - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (if - (i32.ne - (get_local $2) - (block $~lib/array/Array#get:length|inlined.2 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - ) - ) - (block $break|0 - (set_local $3 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $3) - (get_local $2) - ) - ) - ) - (if - (i32.ne - (i32.and - (call $~lib/array/Array#__get - (get_local $0) - (get_local $3) - ) - (i32.const 255) - ) - (i32.and - (call $~lib/array/Array#__get - (get_local $1) - (get_local $3) - ) - (i32.const 255) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + get_local $2 + i32.eqz + if + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_local $0 + i32.load offset=4 + end + set_local $2 + get_local $2 + block $~lib/array/Array#get:length|inlined.2 (result i32) + get_local $1 + i32.load offset=4 + end + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + end + block $break|0 + i32.const 0 + set_local $3 + loop $repeat|0 + get_local $3 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + get_local $0 + get_local $3 + call $~lib/array/Array#__get + i32.const 255 + i32.and + get_local $1 + get_local $3 + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + if + i32.const 0 + return + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $~lib/array/Array#fill|trampoline (; 11 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 0) - ) - ) - (set_local $3 - (get_global $~lib/builtins/i32.MAX_VALUE) - ) - ) - (call $~lib/array/Array#fill - (get_local $0) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $2 + end + get_global $~lib/builtins/i32.MAX_VALUE + set_local $3 + end + get_local $0 + get_local $1 + get_local $2 + get_local $3 + call $~lib/array/Array#fill ) (func $~lib/array/Array#fill (; 12 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $5 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $2 - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (select - (tee_local $6 - (i32.add - (get_local $5) - (get_local $2) - ) - ) - (tee_local $7 - (i32.const 0) - ) - (i32.gt_s - (get_local $6) - (get_local $7) - ) - ) - (select - (tee_local $6 - (get_local $2) - ) - (tee_local $7 - (get_local $5) - ) - (i32.lt_s - (get_local $6) - (get_local $7) - ) - ) - ) - ) - (set_local $3 - (if (result i32) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (select - (tee_local $6 - (i32.add - (get_local $5) - (get_local $3) - ) - ) - (tee_local $7 - (i32.const 0) - ) - (i32.gt_s - (get_local $6) - (get_local $7) - ) - ) - (select - (tee_local $6 - (get_local $3) - ) - (tee_local $7 - (get_local $5) - ) - (i32.lt_s - (get_local $6) - (get_local $7) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (i32.store offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (get_local $1) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $4 + get_local $0 + i32.load offset=4 + set_local $5 + get_local $2 + i32.const 0 + i32.lt_s + if (result i32) + get_local $5 + get_local $2 + i32.add + tee_local $6 + i32.const 0 + tee_local $7 + get_local $6 + get_local $7 + i32.gt_s + select + else + get_local $2 + tee_local $6 + get_local $5 + tee_local $7 + get_local $6 + get_local $7 + i32.lt_s + select + end + set_local $2 + get_local $3 + i32.const 0 + i32.lt_s + if (result i32) + get_local $5 + get_local $3 + i32.add + tee_local $6 + i32.const 0 + tee_local $7 + get_local $6 + get_local $7 + i32.gt_s + select + else + get_local $3 + tee_local $6 + get_local $5 + tee_local $7 + get_local $6 + get_local $7 + i32.lt_s + select + end + set_local $3 + block $break|0 + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + get_local $4 + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store offset=8 + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 ) (func $~lib/array/Array#__get (; 13 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $std/array/isArraysEqual (; 14 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $2 - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (if - (i32.ne - (get_local $2) - (block $~lib/array/Array#get:length|inlined.2 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - ) - ) - (block $break|0 - (set_local $3 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $3) - (get_local $2) - ) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_local $0) - (get_local $3) - ) - (call $~lib/array/Array#__get - (get_local $1) - (get_local $3) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + get_local $2 + i32.eqz + if + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_local $0 + i32.load offset=4 + end + set_local $2 + get_local $2 + block $~lib/array/Array#get:length|inlined.2 (result i32) + get_local $1 + i32.load offset=4 + end + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + end + block $break|0 + i32.const 0 + set_local $3 + loop $repeat|0 + get_local $3 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + get_local $0 + get_local $3 + call $~lib/array/Array#__get + get_local $1 + get_local $3 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $~lib/array/Array#fill|trampoline (; 15 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 0) - ) - ) - (set_local $3 - (get_global $~lib/builtins/i32.MAX_VALUE) - ) - ) - (call $~lib/array/Array#fill - (get_local $0) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $2 + end + get_global $~lib/builtins/i32.MAX_VALUE + set_local $3 + end + get_local $0 + get_local $1 + get_local $2 + get_local $3 + call $~lib/array/Array#fill ) (func $std/array/internalCapacity (; 16 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (set_local $1 - (i32.load - (get_local $0) - ) - ) - (i32.shr_s - (i32.load - (get_local $1) - ) - (i32.const 2) - ) + get_local $0 + i32.load + set_local $1 + get_local $1 + i32.load + i32.const 2 + i32.shr_s ) (func $~lib/internal/memory/memcpy (; 17 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (block - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $5 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (br_if $case0|2 - (i32.eq - (get_local $5) - (i32.const 1) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $5) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $5) - (i32.const 3) - ) - ) - (br $break|2) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - (br $break|2) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) + block $break|0 + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + if + block + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|0 + end + end + end + get_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + block + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|1 + end + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $0 + i32.const 3 + i32.and + set_local $5 + get_local $5 + i32.const 1 + i32.eq + br_if $case0|2 + get_local $5 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + block $break|3 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + block + get_local $1 + i32.const 1 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 5 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 9 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 13 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|3 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $break|4 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + block + get_local $1 + i32.const 2 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 6 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 10 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 14 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|4 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block $break|5 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + block + get_local $1 + i32.const 3 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 7 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 11 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 15 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|5 + end + end + end + br $break|2 + unreachable + end + unreachable + end + end + get_local $2 + i32.const 16 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end ) (func $~lib/internal/memory/memmove (; 18 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (if (result i32) - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - (get_local $3) - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|0 - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (get_local $2) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|3 - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (i64.store - (i32.add - (get_local $0) - (get_local $2) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + end + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|0 + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + end + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + get_local $2 + if + block + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|2 + end + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|3 + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + end + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + end + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end ) (func $~lib/internal/arraybuffer/reallocateUnsafe (; 19 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3486,333 +2576,237 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if - (i32.gt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.eqz - (i32.le_s - (get_local $1) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 37) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.le_s - (get_local $1) - (i32.sub - (call $~lib/internal/arraybuffer/computeSize - (get_local $2) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.2 - (set_local $3 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (get_local $2) - ) - ) - (set_local $4 - (i32.const 0) - ) - (set_local $5 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memset - (get_local $3) - (get_local $4) - (get_local $5) - ) - ) - ) - (block - (set_local $5 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (block $~lib/memory/memory.copy|inlined.0 - (set_local $4 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $3 - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $4) - (get_local $3) - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.3 - (set_local $3 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (get_local $2) - ) - ) - (set_local $4 - (i32.const 0) - ) - (set_local $6 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memset - (get_local $3) - (get_local $4) - (get_local $6) - ) - ) - (return - (get_local $5) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.eqz - (i32.ge_s - (get_local $1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 61) - (i32.const 4) - ) - (unreachable) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.gt_s + if + get_local $1 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_s + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 37 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $2 + call $~lib/internal/arraybuffer/computeSize + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.sub + i32.le_s + if + get_local $0 + get_local $1 + i32.store + block $~lib/memory/memory.fill|inlined.2 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $2 + i32.add + set_local $3 + i32.const 0 + set_local $4 + get_local $1 + get_local $2 + i32.sub + set_local $5 + get_local $3 + get_local $4 + get_local $5 + call $~lib/internal/memory/memset + end + else + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $5 + block $~lib/memory/memory.copy|inlined.0 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $3 + get_local $4 + get_local $3 + get_local $2 + call $~lib/internal/memory/memmove + end + block $~lib/memory/memory.fill|inlined.3 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $2 + i32.add + set_local $3 + i32.const 0 + set_local $4 + get_local $1 + get_local $2 + i32.sub + set_local $6 + get_local $3 + get_local $4 + get_local $6 + call $~lib/internal/memory/memset + end + get_local $5 + return + end + else + get_local $1 + get_local $2 + i32.lt_s + if + get_local $1 + i32.const 0 + i32.ge_s + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 61 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.store + end + end + get_local $0 ) (func $~lib/array/Array#push (; 20 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 2) - ) - ) - (set_local $5 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (if - (i32.ge_u - (get_local $2) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $2) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 174) - (i32.const 42) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - ) - ) - (i32.store offset=4 - (get_local $0) - (get_local $5) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (get_local $1) - ) - ) - (get_local $5) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 2 + i32.shr_u + set_local $4 + get_local $2 + i32.const 1 + i32.add + set_local $5 + get_local $2 + get_local $4 + i32.ge_u + if + get_local $2 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 8 + i32.const 174 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $5 + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + end + get_local $0 + get_local $5 + i32.store offset=4 + block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + get_local $3 + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store offset=8 + end + get_local $5 ) (func $~lib/array/Array#__get (; 21 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $~lib/array/Array#pop (; 22 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $1 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 205) - (i32.const 20) - ) - (unreachable) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (set_local $3 - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (get_local $4) + get_local $0 + i32.load offset=4 + set_local $1 + get_local $1 + i32.const 1 + i32.lt_s + if + i32.const 0 + i32.const 8 + i32.const 205 + i32.const 20 + call $~lib/env/abort + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + get_local $0 + i32.load + set_local $2 + get_local $1 + i32.const 1 + i32.sub + tee_local $1 + set_local $3 + get_local $2 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $0 + get_local $1 + i32.store offset=4 + get_local $4 ) (func $~lib/array/Array#concat (; 23 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3822,106 +2816,74 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $3 - (if (result i32) - (i32.eq - (get_local $1) - (i32.const 0) - ) - (i32.const 0) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (call $~lib/array/Array#constructor - (i32.const 0) - (get_local $4) - ) - ) - (if - (get_local $2) - (block $~lib/memory/memory.copy|inlined.1 - (set_local $6 - (i32.add - (i32.load - (get_local $5) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (i32.load - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $8 - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $6) - (get_local $7) - (get_local $8) - ) - ) - ) - (if - (get_local $3) - (block $~lib/memory/memory.copy|inlined.2 - (set_local $8 - (i32.add - (i32.add - (i32.load - (get_local $5) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - (set_local $7 - (i32.add - (i32.load - (get_local $1) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $6 - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $8) - (get_local $7) - (get_local $6) - ) - ) - ) - (get_local $5) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + else + get_local $1 + i32.load offset=4 + end + set_local $3 + get_local $2 + get_local $3 + i32.add + set_local $4 + i32.const 0 + get_local $4 + call $~lib/array/Array#constructor + set_local $5 + get_local $2 + if + get_local $5 + i32.load + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $0 + i32.load + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $7 + get_local $2 + i32.const 2 + i32.shl + set_local $8 + get_local $6 + get_local $7 + get_local $8 + call $~lib/internal/memory/memmove + end + get_local $3 + if + get_local $5 + i32.load + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $2 + i32.const 2 + i32.shl + i32.add + set_local $8 + get_local $1 + i32.load + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $7 + get_local $3 + i32.const 2 + i32.shl + set_local $6 + get_local $8 + get_local $7 + get_local $6 + call $~lib/internal/memory/memmove + end + get_local $5 ) (func $~lib/array/Array#unshift (; 24 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3931,125 +2893,88 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (set_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $5 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (if - (i32.ge_u - (get_local $4) - (get_local $3) - ) - (block - (if - (i32.ge_u - (get_local $4) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 295) - (i32.const 42) - ) - (unreachable) - ) - ) - (set_local $2 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $2) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (i32.store - (get_local $0) - (get_local $2) - ) - ) - ) - (block $~lib/memory/memory.copy|inlined.3 - (set_local $6 - (i32.add - (i32.add - (get_local $2) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 4) - ) - ) - (set_local $7 - (i32.add - (get_local $2) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $8 - (i32.shl - (i32.sub - (get_local $3) - (i32.const 1) - ) - (i32.const 2) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $6) - (get_local $7) - (get_local $8) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 - (set_local $8 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $1) - ) - ) - (i32.store offset=4 - (get_local $0) - (get_local $5) - ) - (get_local $5) + get_local $0 + i32.load + set_local $2 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + set_local $3 + get_local $0 + i32.load offset=4 + set_local $4 + get_local $4 + i32.const 1 + i32.add + set_local $5 + get_local $4 + get_local $3 + i32.ge_u + if + get_local $4 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 8 + i32.const 295 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $2 + get_local $5 + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $2 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + set_local $3 + get_local $0 + get_local $2 + i32.store + end + block $~lib/memory/memory.copy|inlined.3 + get_local $2 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 4 + i32.add + set_local $6 + get_local $2 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $7 + get_local $3 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + set_local $8 + get_local $6 + get_local $7 + get_local $8 + call $~lib/internal/memory/memmove + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 + i32.const 0 + set_local $8 + get_local $2 + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store offset=8 + end + get_local $0 + get_local $5 + i32.store offset=4 + get_local $5 ) (func $~lib/array/Array#shift (; 25 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -4059,101 +2984,73 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $1 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 266) - (i32.const 20) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) - (set_local $3 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $5 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - (block $~lib/memory/memory.copy|inlined.4 - (set_local $3 - (i32.add - (get_local $2) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $6 - (i32.add - (i32.add - (get_local $2) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 4) - ) - ) - (set_local $7 - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $3) - (get_local $6) - (get_local $7) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.2 - (set_local $7 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - (get_local $7) - ) - ) - (i32.store offset=4 - (get_local $0) - (get_local $5) - ) - (get_local $4) + get_local $0 + i32.load offset=4 + set_local $1 + get_local $1 + i32.const 1 + i32.lt_s + if + i32.const 0 + i32.const 8 + i32.const 266 + i32.const 20 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + set_local $2 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + i32.const 0 + set_local $3 + get_local $2 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $1 + i32.const 1 + i32.sub + set_local $5 + block $~lib/memory/memory.copy|inlined.4 + get_local $2 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $3 + get_local $2 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 4 + i32.add + set_local $6 + get_local $5 + i32.const 2 + i32.shl + set_local $7 + get_local $3 + get_local $6 + get_local $7 + call $~lib/internal/memory/memmove + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.2 + i32.const 0 + set_local $7 + get_local $2 + get_local $5 + i32.const 2 + i32.shl + i32.add + get_local $7 + i32.store offset=8 + end + get_local $0 + get_local $5 + i32.store offset=4 + get_local $4 ) (func $~lib/array/Array#reverse (; 26 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -4161,202 +3058,153 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $1 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (block - (set_local $2 - (i32.const 0) - ) - (set_local $3 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) - (i32.load offset=8 - (i32.add - (get_local $1) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.3 - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i32) - (i32.load offset=8 - (i32.add - (get_local $1) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $1) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.4 - (i32.store offset=8 - (i32.add - (get_local $1) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - (get_local $4) - ) - ) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $repeat|0) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $1 + block $break|0 + block + i32.const 0 + set_local $2 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $3 + end + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) + get_local $1 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + block $~lib/internal/arraybuffer/storeUnsafe|inlined.3 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i32) + get_local $1 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + get_local $1 + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.4 + get_local $1 + get_local $3 + i32.const 2 + i32.shl + i32.add + get_local $4 + i32.store offset=8 + end + end + block + get_local $2 + i32.const 1 + i32.add + set_local $2 + get_local $3 + i32.const 1 + i32.sub + set_local $3 + end + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 ) (func $~lib/array/Array#indexOf (; 27 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eq - (get_local $3) - (i32.const 0) - ) - ) - (get_local $4) - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (return - (i32.const -1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (set_local $2 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $2) - ) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (set_local $6 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.lt_s - (get_local $2) - (get_local $3) - ) - (block - (block - (if - (i32.eq - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i32) - (i32.load offset=8 - (i32.add - (get_local $6) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - (get_local $1) - ) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const -1) + get_local $0 + i32.load offset=4 + set_local $3 + get_local $3 + i32.const 0 + i32.eq + tee_local $4 + if (result i32) + get_local $4 + else + get_local $2 + get_local $3 + i32.ge_s + end + if + i32.const -1 + return + end + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $2 + i32.add + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $2 + end + get_local $0 + i32.load + set_local $6 + block $break|0 + loop $continue|0 + get_local $2 + get_local $3 + i32.lt_s + if + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i32) + get_local $6 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $1 + i32.eq + if + get_local $2 + return + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + end + br $continue|0 + end + end + end + i32.const -1 ) (func $~lib/array/Array#splice (; 28 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -4364,766 +3212,584 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (if - (i32.lt_s - (get_local $2) - (i32.const 1) - ) - (return) - ) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $1) - ) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (if - (i32.ge_s - (get_local $1) - (get_local $3) - ) - (return) - ) - (set_local $2 - (select - (tee_local $4 - (get_local $2) - ) - (tee_local $5 - (i32.sub - (get_local $3) - (get_local $1) - ) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $6 - (i32.load - (get_local $0) - ) - ) - (block $~lib/memory/memory.copy|inlined.5 - (set_local $4 - (i32.add - (i32.add - (get_local $6) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - (set_local $5 - (i32.add - (i32.add - (get_local $6) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.shl - (i32.add - (get_local $1) - (get_local $2) - ) - (i32.const 2) - ) - ) - ) - (set_local $7 - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $4) - (get_local $5) - (get_local $7) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_local $3) - (get_local $2) - ) - ) + get_local $2 + i32.const 1 + i32.lt_s + if + return + end + get_local $0 + i32.load offset=4 + set_local $3 + get_local $1 + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $1 + i32.add + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $1 + end + get_local $1 + get_local $3 + i32.ge_s + if + return + end + get_local $2 + tee_local $4 + get_local $3 + get_local $1 + i32.sub + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $2 + get_local $0 + i32.load + set_local $6 + block $~lib/memory/memory.copy|inlined.5 + get_local $6 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $1 + i32.const 2 + i32.shl + i32.add + set_local $4 + get_local $6 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $1 + get_local $2 + i32.add + i32.const 2 + i32.shl + i32.add + set_local $5 + get_local $2 + i32.const 2 + i32.shl + set_local $7 + get_local $4 + get_local $5 + get_local $7 + call $~lib/internal/memory/memmove + end + get_local $0 + get_local $3 + get_local $2 + i32.sub + i32.store offset=4 ) (func $~lib/array/Array#__set (; 29 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 2) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.5 - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 2 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + get_local $1 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 8 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.5 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 + end ) (func $start~anonymous|1 (; 30 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.eq - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.eq ) (func $~lib/array/Array#findIndex (; 31 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (block - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (if (result i32) - (tee_local $5 - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - (i32.lt_s - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $5) - ) - ) - ) - (if - (i32.and - (block (result i32) - (set_global $~argc - (i32.const 3) - ) - (call_indirect (type $iiii) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.8 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (get_local $3) - (get_local $0) - (get_local $1) - ) - ) - (i32.const 1) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const -1) + get_local $0 + i32.load + set_local $2 + block $break|0 + block + i32.const 0 + set_local $3 + get_local $0 + i32.load offset=4 + set_local $4 + end + loop $repeat|0 + get_local $3 + get_local $4 + i32.lt_s + tee_local $5 + if (result i32) + get_local $3 + get_local $0 + i32.load offset=4 + i32.lt_s + else + get_local $5 + end + i32.eqz + br_if $break|0 + block (result i32) + i32.const 3 + set_global $~argc + block $~lib/internal/arraybuffer/loadUnsafe|inlined.8 (result i32) + get_local $2 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $3 + get_local $0 + get_local $1 + call_indirect (type $iiii) + end + i32.const 1 + i32.and + if + get_local $3 + return + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + i32.const -1 ) (func $start~anonymous|2 (; 32 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.eq - (get_local $0) - (i32.const 1) - ) + get_local $0 + i32.const 1 + i32.eq ) (func $start~anonymous|3 (; 33 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.eq - (get_local $0) - (i32.const 100) - ) + get_local $0 + i32.const 100 + i32.eq ) (func $start~anonymous|4 (; 34 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (i32.eq - (get_local $0) - (i32.const 100) - ) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_local $0 + i32.const 100 + i32.eq ) (func $start~anonymous|5 (; 35 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.eq - (get_local $0) - (i32.const 100) - ) + get_local $0 + i32.const 100 + i32.eq ) (func $start~anonymous|6 (; 36 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (i32.eq - (get_local $0) - (i32.const 100) - ) + get_local $2 + call $~lib/array/Array#pop + drop + get_local $0 + i32.const 100 + i32.eq ) (func $start~anonymous|7 (; 37 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.ge_s - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.ge_s ) (func $~lib/array/Array#every (; 38 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (block - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (if (result i32) - (tee_local $5 - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - (i32.lt_s - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $5) - ) - ) - ) - (if - (i32.eqz - (i32.and - (block (result i32) - (set_global $~argc - (i32.const 3) - ) - (call_indirect (type $iiii) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.10 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (get_local $3) - (get_local $0) - (get_local $1) - ) - ) - (i32.const 1) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + get_local $0 + i32.load + set_local $2 + block $break|0 + block + i32.const 0 + set_local $3 + get_local $0 + i32.load offset=4 + set_local $4 + end + loop $repeat|0 + get_local $3 + get_local $4 + i32.lt_s + tee_local $5 + if (result i32) + get_local $3 + get_local $0 + i32.load offset=4 + i32.lt_s + else + get_local $5 + end + i32.eqz + br_if $break|0 + block (result i32) + i32.const 3 + set_global $~argc + block $~lib/internal/arraybuffer/loadUnsafe|inlined.10 (result i32) + get_local $2 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $3 + get_local $0 + get_local $1 + call_indirect (type $iiii) + end + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + return + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $start~anonymous|8 (; 39 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.le_s - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.le_s ) (func $start~anonymous|9 (; 40 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (i32.lt_s - (get_local $0) - (i32.const 10) - ) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_local $0 + i32.const 10 + i32.lt_s ) (func $start~anonymous|10 (; 41 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.lt_s - (get_local $0) - (i32.const 10) - ) + get_local $0 + i32.const 10 + i32.lt_s ) (func $start~anonymous|11 (; 42 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (i32.lt_s - (get_local $0) - (i32.const 3) - ) + get_local $2 + call $~lib/array/Array#pop + drop + get_local $0 + i32.const 3 + i32.lt_s ) (func $start~anonymous|12 (; 43 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.ge_s - (get_local $0) - (i32.const 3) - ) + get_local $0 + i32.const 3 + i32.ge_s ) (func $~lib/array/Array#some (; 44 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (block - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (if (result i32) - (tee_local $5 - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - (i32.lt_s - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $5) - ) - ) - ) - (if - (i32.and - (block (result i32) - (set_global $~argc - (i32.const 3) - ) - (call_indirect (type $iiii) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.12 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (get_local $3) - (get_local $0) - (get_local $1) - ) - ) - (i32.const 1) - ) - (return - (i32.const 1) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 0) + get_local $0 + i32.load + set_local $2 + block $break|0 + block + i32.const 0 + set_local $3 + get_local $0 + i32.load offset=4 + set_local $4 + end + loop $repeat|0 + get_local $3 + get_local $4 + i32.lt_s + tee_local $5 + if (result i32) + get_local $3 + get_local $0 + i32.load offset=4 + i32.lt_s + else + get_local $5 + end + i32.eqz + br_if $break|0 + block (result i32) + i32.const 3 + set_global $~argc + block $~lib/internal/arraybuffer/loadUnsafe|inlined.12 (result i32) + get_local $2 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $3 + get_local $0 + get_local $1 + call_indirect (type $iiii) + end + i32.const 1 + i32.and + if + i32.const 1 + return + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 0 ) (func $start~anonymous|13 (; 45 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.le_s - (get_local $0) - (i32.const -1) - ) + get_local $0 + i32.const -1 + i32.le_s ) (func $start~anonymous|14 (; 46 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (i32.gt_s - (get_local $0) - (i32.const 10) - ) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_local $0 + i32.const 10 + i32.gt_s ) (func $start~anonymous|15 (; 47 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.gt_s - (get_local $0) - (i32.const 10) - ) + get_local $0 + i32.const 10 + i32.gt_s ) (func $start~anonymous|16 (; 48 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (i32.gt_s - (get_local $0) - (i32.const 3) - ) + get_local $2 + call $~lib/array/Array#pop + drop + get_local $0 + i32.const 3 + i32.gt_s ) (func $start~anonymous|17 (; 49 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i ) (func $~lib/array/Array#forEach (; 50 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (block - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (if (result i32) - (tee_local $5 - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - (i32.lt_s - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $5) - ) - ) - ) - (block - (set_global $~argc - (i32.const 3) - ) - (call_indirect (type $iiiv) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.13 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (get_local $3) - (get_local $0) - (get_local $1) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + get_local $0 + i32.load + set_local $2 + block $break|0 + block + i32.const 0 + set_local $3 + get_local $0 + i32.load offset=4 + set_local $4 + end + loop $repeat|0 + get_local $3 + get_local $4 + i32.lt_s + tee_local $5 + if (result i32) + get_local $3 + get_local $0 + i32.load offset=4 + i32.lt_s + else + get_local $5 + end + i32.eqz + br_if $break|0 + block + i32.const 3 + set_global $~argc + block $~lib/internal/arraybuffer/loadUnsafe|inlined.13 (result i32) + get_local $2 + get_local $3 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $3 + get_local $0 + get_local $1 + call_indirect (type $iiiv) + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end ) (func $start~anonymous|18 (; 51 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i ) (func $start~anonymous|19 (; 52 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i ) (func $start~anonymous|20 (; 53 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) + get_local $2 + call $~lib/array/Array#pop + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i ) (func $start~anonymous|21 (; 54 ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) - (f32.convert_s/i32 - (get_local $0) - ) + get_local $0 + f32.convert_s/i32 ) (func $~lib/array/Array#constructor (; 55 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.4 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.4 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array#map (; 56 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -5133,142 +3799,106 @@ (local $6 i32) (local $7 i32) (local $8 f32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $4 - (call $~lib/array/Array#constructor - (i32.const 0) - (get_local $3) - ) - ) - (set_local $5 - (i32.load - (get_local $4) - ) - ) - (block $break|0 - (set_local $6 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (if (result i32) - (tee_local $7 - (i32.lt_s - (get_local $6) - (get_local $3) - ) - ) - (i32.lt_s - (get_local $6) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $7) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (set_local $8 - (block (result f32) - (set_global $~argc - (i32.const 3) - ) - (call_indirect (type $iiif) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.14 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - (get_local $6) - (get_local $0) - (get_local $1) - ) - ) - ) - (f32.store offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $8) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $4) + get_local $0 + i32.load + set_local $2 + get_local $0 + i32.load offset=4 + set_local $3 + i32.const 0 + get_local $3 + call $~lib/array/Array#constructor + set_local $4 + get_local $4 + i32.load + set_local $5 + block $break|0 + i32.const 0 + set_local $6 + loop $repeat|0 + get_local $6 + get_local $3 + i32.lt_s + tee_local $7 + if (result i32) + get_local $6 + get_local $0 + i32.load offset=4 + i32.lt_s + else + get_local $7 + end + i32.eqz + br_if $break|0 + block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + block (result f32) + i32.const 3 + set_global $~argc + block $~lib/internal/arraybuffer/loadUnsafe|inlined.14 (result i32) + get_local $2 + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $6 + get_local $0 + get_local $1 + call_indirect (type $iiif) + end + set_local $8 + get_local $5 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $8 + f32.store offset=8 + end + get_local $6 + i32.const 1 + i32.add + set_local $6 + br $repeat|0 + unreachable + end + unreachable + end + get_local $4 ) (func $~lib/array/Array#__get (; 57 ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result f32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result f32) - (f32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result f32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + else + unreachable + end ) (func $start~anonymous|22 (; 58 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (get_local $0) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 ) (func $~lib/array/Array#map (; 59 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -5277,125 +3907,95 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $4 - (call $~lib/array/Array#constructor - (i32.const 0) - (get_local $3) - ) - ) - (set_local $5 - (i32.load - (get_local $4) - ) - ) - (block $break|0 - (set_local $6 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (if (result i32) - (tee_local $7 - (i32.lt_s - (get_local $6) - (get_local $3) - ) - ) - (i32.lt_s - (get_local $6) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $7) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.6 - (set_local $7 - (block (result i32) - (set_global $~argc - (i32.const 3) - ) - (call_indirect (type $iiii) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.15 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - (get_local $6) - (get_local $0) - (get_local $1) - ) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $7) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $4) + get_local $0 + i32.load + set_local $2 + get_local $0 + i32.load offset=4 + set_local $3 + i32.const 0 + get_local $3 + call $~lib/array/Array#constructor + set_local $4 + get_local $4 + i32.load + set_local $5 + block $break|0 + i32.const 0 + set_local $6 + loop $repeat|0 + get_local $6 + get_local $3 + i32.lt_s + tee_local $7 + if (result i32) + get_local $6 + get_local $0 + i32.load offset=4 + i32.lt_s + else + get_local $7 + end + i32.eqz + br_if $break|0 + block $~lib/internal/arraybuffer/storeUnsafe|inlined.6 + block (result i32) + i32.const 3 + set_global $~argc + block $~lib/internal/arraybuffer/loadUnsafe|inlined.15 (result i32) + get_local $2 + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $6 + get_local $0 + get_local $1 + call_indirect (type $iiii) + end + set_local $7 + get_local $5 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $7 + i32.store offset=8 + end + get_local $6 + i32.const 1 + i32.add + set_local $6 + br $repeat|0 + unreachable + end + unreachable + end + get_local $4 ) (func $start~anonymous|23 (; 60 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (get_local $0) + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 ) (func $start~anonymous|24 (; 61 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (get_local $0) + get_local $2 + call $~lib/array/Array#pop + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 ) (func $start~anonymous|25 (; 62 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (i32.ge_s - (get_local $0) - (i32.const 2) - ) + get_local $0 + i32.const 2 + i32.ge_s ) (func $~lib/array/Array#filter (; 63 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -5403,146 +4003,111 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $4 - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 0) - ) - ) - (block $break|0 - (set_local $5 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (if (result i32) - (tee_local $6 - (i32.lt_s - (get_local $5) - (get_local $3) - ) - ) - (i32.lt_s - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $6) - ) - ) - ) - (block - (set_local $6 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.16 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.and - (block (result i32) - (set_global $~argc - (i32.const 3) - ) - (call_indirect (type $iiii) - (get_local $6) - (get_local $5) - (get_local $0) - (get_local $1) - ) - ) - (i32.const 1) - ) - (drop - (call $~lib/array/Array#push - (get_local $4) - (get_local $6) - ) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $4) + get_local $0 + i32.load + set_local $2 + get_local $0 + i32.load offset=4 + set_local $3 + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + set_local $4 + block $break|0 + i32.const 0 + set_local $5 + loop $repeat|0 + get_local $5 + get_local $3 + i32.lt_s + tee_local $6 + if (result i32) + get_local $5 + get_local $0 + i32.load offset=4 + i32.lt_s + else + get_local $6 + end + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.16 (result i32) + get_local $2 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $6 + block (result i32) + i32.const 3 + set_global $~argc + get_local $6 + get_local $5 + get_local $0 + get_local $1 + call_indirect (type $iiii) + end + i32.const 1 + i32.and + if + get_local $4 + get_local $6 + call $~lib/array/Array#push + drop + end + end + get_local $5 + i32.const 1 + i32.add + set_local $5 + br $repeat|0 + unreachable + end + unreachable + end + get_local $4 ) (func $start~anonymous|26 (; 64 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $2) - (i32.const 100) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (i32.ge_s - (get_local $0) - (i32.const 2) - ) + get_local $2 + i32.const 100 + call $~lib/array/Array#push + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 + i32.const 2 + i32.ge_s ) (func $start~anonymous|27 (; 65 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (i32.ge_s - (get_local $0) - (i32.const 2) - ) + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 + i32.const 2 + i32.ge_s ) (func $start~anonymous|28 (; 66 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $2) - ) - ) - (set_global $std/array/i - (i32.add - (get_global $std/array/i) - (get_local $0) - ) - ) - (i32.ge_s - (get_local $0) - (i32.const 2) - ) + get_local $2 + call $~lib/array/Array#pop + drop + get_global $std/array/i + get_local $0 + i32.add + set_global $std/array/i + get_local $0 + i32.const 2 + i32.ge_s ) (func $start~anonymous|29 (; 67 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $~lib/array/Array#reduce (; 68 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5550,98 +4115,79 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $3 - (get_local $2) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (block - (set_local $5 - (i32.const 0) - ) - (set_local $6 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (if (result i32) - (tee_local $7 - (i32.lt_s - (get_local $5) - (get_local $6) - ) - ) - (i32.lt_s - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $7) - ) - ) - ) - (set_local $3 - (block (result i32) - (set_global $~argc - (i32.const 4) - ) - (call_indirect (type $iiiii) - (get_local $3) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.17 (result i32) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - (get_local $5) - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $3) + get_local $2 + set_local $3 + get_local $0 + i32.load + set_local $4 + block $break|0 + block + i32.const 0 + set_local $5 + get_local $0 + i32.load offset=4 + set_local $6 + end + loop $repeat|0 + get_local $5 + get_local $6 + i32.lt_s + tee_local $7 + if (result i32) + get_local $5 + get_local $0 + i32.load offset=4 + i32.lt_s + else + get_local $7 + end + i32.eqz + br_if $break|0 + block (result i32) + i32.const 4 + set_global $~argc + get_local $3 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.17 (result i32) + get_local $4 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $5 + get_local $0 + get_local $1 + call_indirect (type $iiiii) + end + set_local $3 + get_local $5 + i32.const 1 + i32.add + set_local $5 + br $repeat|0 + unreachable + end + unreachable + end + get_local $3 ) (func $start~anonymous|30 (; 69 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $start~anonymous|31 (; 70 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (if (result i32) - (i32.and - (get_local $0) - (i32.const 1) - ) - (get_local $0) - (i32.gt_s - (get_local $1) - (i32.const 2) - ) - ) + get_local $0 + i32.const 1 + i32.and + if (result i32) + get_local $0 + else + get_local $1 + i32.const 2 + i32.gt_s + end ) (func $~lib/array/Array#reduce (; 71 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5649,455 +4195,345 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $3 - (get_local $2) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (block - (set_local $5 - (i32.const 0) - ) - (set_local $6 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (if (result i32) - (tee_local $7 - (i32.lt_s - (get_local $5) - (get_local $6) - ) - ) - (i32.lt_s - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $7) - ) - ) - ) - (set_local $3 - (block (result i32) - (set_global $~argc - (i32.const 4) - ) - (call_indirect (type $iiiii) - (get_local $3) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.18 (result i32) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - (get_local $5) - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $3) + get_local $2 + set_local $3 + get_local $0 + i32.load + set_local $4 + block $break|0 + block + i32.const 0 + set_local $5 + get_local $0 + i32.load offset=4 + set_local $6 + end + loop $repeat|0 + get_local $5 + get_local $6 + i32.lt_s + tee_local $7 + if (result i32) + get_local $5 + get_local $0 + i32.load offset=4 + i32.lt_s + else + get_local $7 + end + i32.eqz + br_if $break|0 + block (result i32) + i32.const 4 + set_global $~argc + get_local $3 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.18 (result i32) + get_local $4 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $5 + get_local $0 + get_local $1 + call_indirect (type $iiiii) + end + set_local $3 + get_local $5 + i32.const 1 + i32.add + set_local $5 + br $repeat|0 + unreachable + end + unreachable + end + get_local $3 ) (func $start~anonymous|32 (; 72 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (if (result i32) - (i32.and - (get_local $0) - (i32.const 1) - ) - (get_local $0) - (i32.gt_s - (get_local $1) - (i32.const 100) - ) - ) + get_local $0 + i32.const 1 + i32.and + if (result i32) + get_local $0 + else + get_local $1 + i32.const 100 + i32.gt_s + end ) (func $start~anonymous|33 (; 73 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $3) - (i32.const 1) - ) - ) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $3 + i32.const 1 + call $~lib/array/Array#push + drop + get_local $0 + get_local $1 + i32.add ) (func $start~anonymous|34 (; 74 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $start~anonymous|35 (; 75 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $3) - ) - ) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $3 + call $~lib/array/Array#pop + drop + get_local $0 + get_local $1 + i32.add ) (func $start~anonymous|36 (; 76 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $~lib/array/Array#reduceRight (; 77 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $3 - (get_local $2) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $5 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - ) - ) - (set_local $3 - (block (result i32) - (set_global $~argc - (i32.const 4) - ) - (call_indirect (type $iiiii) - (get_local $3) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.19 (result i32) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - (get_local $5) - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $5 - (i32.sub - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $3) + get_local $2 + set_local $3 + get_local $0 + i32.load + set_local $4 + block $break|0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $5 + loop $repeat|0 + get_local $5 + i32.const 0 + i32.ge_s + i32.eqz + br_if $break|0 + block (result i32) + i32.const 4 + set_global $~argc + get_local $3 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.19 (result i32) + get_local $4 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $5 + get_local $0 + get_local $1 + call_indirect (type $iiiii) + end + set_local $3 + get_local $5 + i32.const 1 + i32.sub + set_local $5 + br $repeat|0 + unreachable + end + unreachable + end + get_local $3 ) (func $start~anonymous|37 (; 78 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $start~anonymous|38 (; 79 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (if (result i32) - (i32.and - (get_local $0) - (i32.const 1) - ) - (get_local $0) - (i32.gt_s - (get_local $1) - (i32.const 2) - ) - ) + get_local $0 + i32.const 1 + i32.and + if (result i32) + get_local $0 + else + get_local $1 + i32.const 2 + i32.gt_s + end ) (func $~lib/array/Array#reduceRight (; 80 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $3 - (get_local $2) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $5 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - ) - ) - (set_local $3 - (block (result i32) - (set_global $~argc - (i32.const 4) - ) - (call_indirect (type $iiiii) - (get_local $3) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.20 (result i32) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - (get_local $5) - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $5 - (i32.sub - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $3) + get_local $2 + set_local $3 + get_local $0 + i32.load + set_local $4 + block $break|0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $5 + loop $repeat|0 + get_local $5 + i32.const 0 + i32.ge_s + i32.eqz + br_if $break|0 + block (result i32) + i32.const 4 + set_global $~argc + get_local $3 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.20 (result i32) + get_local $4 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + get_local $5 + get_local $0 + get_local $1 + call_indirect (type $iiiii) + end + set_local $3 + get_local $5 + i32.const 1 + i32.sub + set_local $5 + br $repeat|0 + unreachable + end + unreachable + end + get_local $3 ) (func $start~anonymous|39 (; 81 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (if (result i32) - (i32.and - (get_local $0) - (i32.const 1) - ) - (get_local $0) - (i32.gt_s - (get_local $1) - (i32.const 100) - ) - ) + get_local $0 + i32.const 1 + i32.and + if (result i32) + get_local $0 + else + get_local $1 + i32.const 100 + i32.gt_s + end ) (func $start~anonymous|40 (; 82 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $3) - (i32.const 1) - ) - ) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $3 + i32.const 1 + call $~lib/array/Array#push + drop + get_local $0 + get_local $1 + i32.add ) (func $start~anonymous|41 (; 83 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.add ) (func $start~anonymous|42 (; 84 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $3) - ) - ) - (i32.add - (get_local $0) - (get_local $1) - ) + get_local $3 + call $~lib/array/Array#pop + drop + get_local $0 + get_local $1 + i32.add ) (func $~lib/math/murmurHash3 (; 85 ;) (type $II) (param $0 i64) (result i64) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (i64.const -49064778989728563) - ) - ) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (i64.const -4265267296055464877) - ) - ) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) - ) - (get_local $0) + get_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor + set_local $0 + get_local $0 + i64.const -49064778989728563 + i64.mul + set_local $0 + get_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor + set_local $0 + get_local $0 + i64.const -4265267296055464877 + i64.mul + set_local $0 + get_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor + set_local $0 + get_local $0 ) (func $~lib/math/splitMix32 (; 86 ;) (type $ii) (param $0 i32) (result i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1831565813) - ) - ) - (set_local $0 - (i32.mul - (i32.xor - (get_local $0) - (i32.shr_u - (get_local $0) - (i32.const 15) - ) - ) - (i32.or - (get_local $0) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i32.xor - (get_local $0) - (i32.add - (get_local $0) - (i32.mul - (i32.xor - (get_local $0) - (i32.shr_u - (get_local $0) - (i32.const 7) - ) - ) - (i32.or - (get_local $0) - (i32.const 61) - ) - ) - ) - ) - ) - (i32.xor - (get_local $0) - (i32.shr_u - (get_local $0) - (i32.const 14) - ) - ) + get_local $0 + i32.const 1831565813 + i32.add + set_local $0 + get_local $0 + get_local $0 + i32.const 15 + i32.shr_u + i32.xor + get_local $0 + i32.const 1 + i32.or + i32.mul + set_local $0 + get_local $0 + get_local $0 + get_local $0 + get_local $0 + i32.const 7 + i32.shr_u + i32.xor + get_local $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + set_local $0 + get_local $0 + get_local $0 + i32.const 14 + i32.shr_u + i32.xor ) (func $~lib/math/NativeMath.seedRandom (; 87 ;) (type $Iv) (param $0 i64) - (if - (i64.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 552) - (i32.const 955) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_global $~lib/math/random_seeded - (i32.const 1) - ) - (set_global $~lib/math/random_state0_64 - (call $~lib/math/murmurHash3 - (get_local $0) - ) - ) - (set_global $~lib/math/random_state1_64 - (call $~lib/math/murmurHash3 - (i64.xor - (get_global $~lib/math/random_state0_64) - (i64.const -1) - ) - ) - ) - (set_global $~lib/math/random_state0_32 - (call $~lib/math/splitMix32 - (i32.wrap/i64 - (get_local $0) - ) - ) - ) - (set_global $~lib/math/random_state1_32 - (call $~lib/math/splitMix32 - (get_global $~lib/math/random_state0_32) - ) - ) + get_local $0 + i64.eqz + if + i32.const 0 + i32.const 552 + i32.const 955 + i32.const 4 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~lib/math/random_seeded + get_local $0 + call $~lib/math/murmurHash3 + set_global $~lib/math/random_state0_64 + get_global $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + set_global $~lib/math/random_state1_64 + get_local $0 + i32.wrap/i64 + call $~lib/math/splitMix32 + set_global $~lib/math/random_state0_32 + get_global $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + set_global $~lib/math/random_state1_32 ) (func $~lib/internal/array/insertionSort (; 88 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -6105,154 +4541,116 @@ (local $6 i32) (local $7 f32) (local $8 i32) - (block $break|0 - (set_local $4 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $4) - (get_local $2) - ) - ) - ) - (block - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result f32) - (f32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $6) - (i32.const 0) - ) - (block - (block - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result f32) - (f32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $ffi) - (get_local $5) - (get_local $7) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 - (set_local $8 - (i32.add - (block (result i32) - (set_local $6 - (i32.sub - (tee_local $8 - (get_local $6) - ) - (i32.const 1) - ) - ) - (get_local $8) - ) - (i32.const 1) - ) - ) - (f32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $7) - ) - ) - (br $break|1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 - (set_local $8 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (f32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + i32.const 0 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result f32) + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $5 + get_local $4 + i32.const 1 + i32.sub + set_local $6 + block $break|1 + loop $continue|1 + get_local $6 + i32.const 0 + i32.ge_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result f32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $5 + get_local $7 + get_local $3 + call_indirect (type $ffi) + end + i32.const 0 + i32.lt_s + if + block (result i32) + get_local $6 + tee_local $8 + i32.const 1 + i32.sub + set_local $6 + get_local $8 + end + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $7 + f32.store offset=8 + else + br $break|1 + end + end + br $continue|1 + end + end + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 + get_local $6 + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $5 + f32.store offset=8 + end + end + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) (func $~lib/allocator/arena/__memory_free (; 89 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $~lib/internal/array/weakHeapSort (; 90 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -6264,593 +4662,426 @@ (local $10 f32) (local $11 i32) (local $12 f32) - (set_local $4 - (i32.shl - (i32.shr_s - (i32.add - (get_local $2) - (i32.const 31) - ) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (set_local $5 - (block $~lib/memory/memory.allocate|inlined.1 (result i32) - (br $~lib/memory/memory.allocate|inlined.1 - (call $~lib/allocator/arena/__memory_allocate - (get_local $4) - ) - ) - ) - ) - (block $~lib/memory/memory.fill|inlined.5 - (set_local $6 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $5) - (get_local $6) - (get_local $4) - ) - ) - (block $break|0 - (set_local $6 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.gt_s - (get_local $6) - (i32.const 0) - ) - ) - ) - (block - (set_local $7 - (get_local $6) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.eq - (i32.and - (get_local $7) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $7) - (i32.const 6) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - (block - (set_local $7 - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.2 (result f32) - (f32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.3 (result f32) - (f32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $ffi) - (get_local $9) - (get_local $10) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (i32.xor - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $6) - (i32.const 31) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.2 - (f32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $9) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.3 - (f32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $10) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|2 - (set_local $6 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.ge_s - (get_local $6) - (i32.const 2) - ) - ) - ) - (block - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.4 (result f32) - (set_local $8 - (i32.const 0) - ) - (f32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.4 - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.5 (result f32) - (f32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (f32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $9) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.5 - (f32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $10) - ) - ) - (set_local $8 - (i32.const 1) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.lt_s - (tee_local $7 - (i32.add - (i32.shl - (get_local $8) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (get_local $8) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - ) - (get_local $6) - ) - (block - (set_local $8 - (get_local $7) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.gt_s - (get_local $8) - (i32.const 0) - ) - (block - (block - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.6 (result f32) - (set_local $11 - (i32.const 0) - ) - (f32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $11) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.7 (result f32) - (f32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $ffi) - (get_local $10) - (get_local $9) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (i32.xor - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $8) - (i32.const 31) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.6 - (f32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $10) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.7 - (set_local $11 - (i32.const 0) - ) - (f32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $11) - (i32.const 2) - ) - ) - (get_local $9) - ) - ) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $8) - (i32.const 1) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (block $~lib/memory/memory.free|inlined.0 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $5) - ) - (br $~lib/memory/memory.free|inlined.0) - ) - ) - (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.8 (result f32) - (set_local $6 - (i32.const 1) - ) - (f32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.8 - (set_local $6 - (i32.const 1) - ) - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.9 (result f32) - (set_local $7 - (i32.const 0) - ) - (f32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - ) - ) - ) - (f32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $10) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.9 - (set_local $6 - (i32.const 0) - ) - (f32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $12) - ) - ) + get_local $2 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + set_local $4 + block $~lib/memory/memory.allocate|inlined.1 (result i32) + get_local $4 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.1 + end + set_local $5 + block $~lib/memory/memory.fill|inlined.5 + i32.const 0 + set_local $6 + get_local $5 + get_local $6 + get_local $4 + call $~lib/internal/memory/memset + end + block $break|0 + get_local $2 + i32.const 1 + i32.sub + set_local $6 + loop $repeat|0 + get_local $6 + i32.const 0 + i32.gt_s + i32.eqz + br_if $break|0 + block + get_local $6 + set_local $7 + block $break|1 + loop $continue|1 + get_local $7 + i32.const 1 + i32.and + get_local $5 + get_local $7 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $7 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + get_local $7 + i32.const 1 + i32.shr_s + set_local $7 + br $continue|1 + end + end + end + get_local $7 + i32.const 1 + i32.shr_s + set_local $8 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.2 (result f32) + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $9 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.3 (result f32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $10 + block (result i32) + i32.const 2 + set_global $~argc + get_local $9 + get_local $10 + get_local $3 + call_indirect (type $ffi) + end + i32.const 0 + i32.lt_s + if + get_local $5 + get_local $6 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + get_local $5 + get_local $6 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + get_local $6 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.2 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $9 + f32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.3 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $10 + f32.store offset=8 + end + end + end + get_local $6 + i32.const 1 + i32.sub + set_local $6 + br $repeat|0 + unreachable + end + unreachable + end + block $break|2 + get_local $2 + i32.const 1 + i32.sub + set_local $6 + loop $repeat|2 + get_local $6 + i32.const 2 + i32.ge_s + i32.eqz + br_if $break|2 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.4 (result f32) + i32.const 0 + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $10 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.4 + i32.const 0 + set_local $8 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.5 (result f32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $9 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $9 + f32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.5 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $10 + f32.store offset=8 + end + i32.const 1 + set_local $8 + block $break|3 + loop $continue|3 + get_local $8 + i32.const 1 + i32.shl + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $8 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + tee_local $7 + get_local $6 + i32.lt_s + if + get_local $7 + set_local $8 + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $8 + i32.const 0 + i32.gt_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.6 (result f32) + i32.const 0 + set_local $11 + get_local $0 + get_local $1 + i32.add + get_local $11 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $10 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.7 (result f32) + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $9 + block (result i32) + i32.const 2 + set_global $~argc + get_local $10 + get_local $9 + get_local $3 + call_indirect (type $ffi) + end + i32.const 0 + i32.lt_s + if + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + get_local $8 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.6 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $10 + f32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.7 + i32.const 0 + set_local $11 + get_local $0 + get_local $1 + i32.add + get_local $11 + i32.const 2 + i32.shl + i32.add + get_local $9 + f32.store offset=8 + end + end + get_local $8 + i32.const 1 + i32.shr_s + set_local $8 + end + br $continue|4 + end + end + end + end + get_local $6 + i32.const 1 + i32.sub + set_local $6 + br $repeat|2 + unreachable + end + unreachable + end + block $~lib/memory/memory.free|inlined.0 + block + get_local $5 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.8 (result f32) + i32.const 1 + set_local $6 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $12 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.8 + i32.const 1 + set_local $6 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.9 (result f32) + i32.const 0 + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $7 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $10 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $10 + f32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.9 + i32.const 0 + set_local $6 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $12 + f32.store offset=8 + end ) (func $~lib/array/Array#sort (; 91 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -6858,325 +5089,242 @@ (local $4 i32) (local $5 f32) (local $6 f32) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.le_s - (get_local $2) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 2) - ) - (block - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result f32) - (set_local $4 - (i32.const 1) - ) - (f32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $6 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result f32) - (set_local $4 - (i32.const 0) - ) - (f32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $ffi) - (get_local $5) - (get_local $6) - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 - (set_local $4 - (i32.const 1) - ) - (f32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - (get_local $6) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.2 - (set_local $4 - (i32.const 0) - ) - (f32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 256) - ) - (call $~lib/internal/array/insertionSort - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - (call $~lib/internal/array/weakHeapSort - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - ) - (return - (get_local $0) - ) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + set_local $2 + get_local $2 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.const 2 + i32.eq + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result f32) + i32.const 1 + set_local $4 + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $5 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result f32) + i32.const 0 + set_local $4 + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + end + set_local $6 + block (result i32) + i32.const 2 + set_global $~argc + get_local $5 + get_local $6 + get_local $1 + call_indirect (type $ffi) + end + i32.const 0 + i32.lt_s + if + block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 + i32.const 1 + set_local $4 + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + get_local $6 + f32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.2 + i32.const 0 + set_local $4 + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + get_local $5 + f32.store offset=8 + end + end + get_local $0 + return + end + get_local $2 + i32.const 256 + i32.lt_s + if + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/insertionSort + else + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/weakHeapSort + end + get_local $0 + return ) (func $~lib/array/Array#sort|trampoline~anonymous|43 (; 92 ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) - (set_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $3 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $2 - (i32.xor - (get_local $2) - (i32.shr_u - (i32.shr_s - (get_local $2) - (i32.const 31) - ) - (i32.const 1) - ) - ) - ) - (set_local $3 - (i32.xor - (get_local $3) - (i32.shr_u - (i32.shr_s - (get_local $3) - (i32.const 31) - ) - (i32.const 1) - ) - ) - ) - (i32.sub - (i32.gt_s - (get_local $2) - (get_local $3) - ) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) + get_local $0 + i32.reinterpret/f32 + set_local $2 + get_local $1 + i32.reinterpret/f32 + set_local $3 + get_local $2 + get_local $2 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + set_local $2 + get_local $3 + get_local $3 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + set_local $3 + get_local $2 + get_local $3 + i32.gt_s + get_local $2 + get_local $3 + i32.lt_s + i32.sub ) (func $~lib/array/Array#sort|trampoline (; 93 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (block $~lib/internal/array/defaultComparator|inlined.0 (result i32) - (br $~lib/internal/array/defaultComparator|inlined.0 - (i32.const 43) - ) - ) - ) - ) - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + block $~lib/internal/array/defaultComparator|inlined.0 (result i32) + i32.const 43 + br $~lib/internal/array/defaultComparator|inlined.0 + end + set_local $1 + end + get_local $0 + get_local $1 + call $~lib/array/Array#sort ) (func $~lib/builtins/isNaN (; 94 ;) (type $fi) (param $0 f32) (result i32) - (f32.ne - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + f32.ne ) (func $std/array/isArraysEqual (; 95 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $2 - (block $~lib/array/Array#get:length|inlined.1 (result i32) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (if - (i32.ne - (get_local $2) - (block $~lib/array/Array#get:length|inlined.3 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - ) - ) - (block $break|0 - (set_local $3 - (i32.const 0) - ) - (loop $repeat|0 - (block $continue|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $3) - (get_local $2) - ) - ) - ) - (block - (if - (i32.eq - (call $~lib/builtins/isNaN - (call $~lib/array/Array#__get - (get_local $0) - (get_local $3) - ) - ) - (call $~lib/builtins/isNaN - (call $~lib/array/Array#__get - (get_local $1) - (get_local $3) - ) - ) - ) - (br $continue|0) - ) - (if - (f32.ne - (call $~lib/array/Array#__get - (get_local $0) - (get_local $3) - ) - (call $~lib/array/Array#__get - (get_local $1) - (get_local $3) - ) - ) - (return - (i32.const 0) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + get_local $2 + i32.eqz + if + block $~lib/array/Array#get:length|inlined.1 (result i32) + get_local $0 + i32.load offset=4 + end + set_local $2 + get_local $2 + block $~lib/array/Array#get:length|inlined.3 (result i32) + get_local $1 + i32.load offset=4 + end + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + end + block $break|0 + i32.const 0 + set_local $3 + loop $repeat|0 + block $continue|0 + get_local $3 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $3 + call $~lib/array/Array#__get + call $~lib/builtins/isNaN + get_local $1 + get_local $3 + call $~lib/array/Array#__get + call $~lib/builtins/isNaN + i32.eq + if + br $continue|0 + end + get_local $0 + get_local $3 + call $~lib/array/Array#__get + get_local $1 + get_local $3 + call $~lib/array/Array#__get + f32.ne + if + i32.const 0 + return + end + end + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $~lib/internal/array/insertionSort (; 96 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -7184,151 +5332,113 @@ (local $6 i32) (local $7 f64) (local $8 i32) - (block $break|0 - (set_local $4 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $4) - (get_local $2) - ) - ) - ) - (block - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $6) - (i32.const 0) - ) - (block - (block - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $FFi) - (get_local $5) - (get_local $7) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 - (set_local $8 - (i32.add - (block (result i32) - (set_local $6 - (i32.sub - (tee_local $8 - (get_local $6) - ) - (i32.const 1) - ) - ) - (get_local $8) - ) - (i32.const 1) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - (get_local $7) - ) - ) - (br $break|1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 - (set_local $8 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + i32.const 0 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $5 + get_local $4 + i32.const 1 + i32.sub + set_local $6 + block $break|1 + loop $continue|1 + get_local $6 + i32.const 0 + i32.ge_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $5 + get_local $7 + get_local $3 + call_indirect (type $FFi) + end + i32.const 0 + i32.lt_s + if + block (result i32) + get_local $6 + tee_local $8 + i32.const 1 + i32.sub + set_local $6 + get_local $8 + end + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + get_local $7 + f64.store offset=8 + else + br $break|1 + end + end + br $continue|1 + end + end + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 + get_local $6 + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + get_local $5 + f64.store offset=8 + end + end + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) (func $~lib/internal/array/weakHeapSort (; 97 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -7340,593 +5450,426 @@ (local $10 f64) (local $11 i32) (local $12 f64) - (set_local $4 - (i32.shl - (i32.shr_s - (i32.add - (get_local $2) - (i32.const 31) - ) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (set_local $5 - (block $~lib/memory/memory.allocate|inlined.2 (result i32) - (br $~lib/memory/memory.allocate|inlined.2 - (call $~lib/allocator/arena/__memory_allocate - (get_local $4) - ) - ) - ) - ) - (block $~lib/memory/memory.fill|inlined.6 - (set_local $6 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $5) - (get_local $6) - (get_local $4) - ) - ) - (block $break|0 - (set_local $6 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.gt_s - (get_local $6) - (i32.const 0) - ) - ) - ) - (block - (set_local $7 - (get_local $6) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.eq - (i32.and - (get_local $7) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $7) - (i32.const 6) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - (block - (set_local $7 - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.2 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.3 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $FFi) - (get_local $9) - (get_local $10) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (i32.xor - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $6) - (i32.const 31) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.2 - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - (get_local $9) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.3 - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - (get_local $10) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|2 - (set_local $6 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.ge_s - (get_local $6) - (i32.const 2) - ) - ) - ) - (block - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.4 (result f64) - (set_local $8 - (i32.const 0) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.4 - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.5 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - (get_local $9) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.5 - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - (get_local $10) - ) - ) - (set_local $8 - (i32.const 1) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.lt_s - (tee_local $7 - (i32.add - (i32.shl - (get_local $8) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (get_local $8) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - ) - (get_local $6) - ) - (block - (set_local $8 - (get_local $7) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.gt_s - (get_local $8) - (i32.const 0) - ) - (block - (block - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.6 (result f64) - (set_local $11 - (i32.const 0) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $11) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.7 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $FFi) - (get_local $10) - (get_local $9) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (i32.xor - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $8) - (i32.const 31) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.6 - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - (get_local $10) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.7 - (set_local $11 - (i32.const 0) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $11) - (i32.const 3) - ) - ) - (get_local $9) - ) - ) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $8) - (i32.const 1) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (block $~lib/memory/memory.free|inlined.1 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $5) - ) - (br $~lib/memory/memory.free|inlined.1) - ) - ) - (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.8 (result f64) - (set_local $6 - (i32.const 1) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.8 - (set_local $6 - (i32.const 1) - ) - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.9 (result f64) - (set_local $7 - (i32.const 0) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $7) - (i32.const 3) - ) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - (get_local $10) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.9 - (set_local $6 - (i32.const 0) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - (get_local $12) - ) - ) + get_local $2 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + set_local $4 + block $~lib/memory/memory.allocate|inlined.2 (result i32) + get_local $4 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.2 + end + set_local $5 + block $~lib/memory/memory.fill|inlined.6 + i32.const 0 + set_local $6 + get_local $5 + get_local $6 + get_local $4 + call $~lib/internal/memory/memset + end + block $break|0 + get_local $2 + i32.const 1 + i32.sub + set_local $6 + loop $repeat|0 + get_local $6 + i32.const 0 + i32.gt_s + i32.eqz + br_if $break|0 + block + get_local $6 + set_local $7 + block $break|1 + loop $continue|1 + get_local $7 + i32.const 1 + i32.and + get_local $5 + get_local $7 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $7 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + get_local $7 + i32.const 1 + i32.shr_s + set_local $7 + br $continue|1 + end + end + end + get_local $7 + i32.const 1 + i32.shr_s + set_local $8 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.2 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $9 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.3 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $10 + block (result i32) + i32.const 2 + set_global $~argc + get_local $9 + get_local $10 + get_local $3 + call_indirect (type $FFi) + end + i32.const 0 + i32.lt_s + if + get_local $5 + get_local $6 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + get_local $5 + get_local $6 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + get_local $6 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.2 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + get_local $9 + f64.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.3 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + get_local $10 + f64.store offset=8 + end + end + end + get_local $6 + i32.const 1 + i32.sub + set_local $6 + br $repeat|0 + unreachable + end + unreachable + end + block $break|2 + get_local $2 + i32.const 1 + i32.sub + set_local $6 + loop $repeat|2 + get_local $6 + i32.const 2 + i32.ge_s + i32.eqz + br_if $break|2 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.4 (result f64) + i32.const 0 + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $10 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.4 + i32.const 0 + set_local $8 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.5 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $9 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + get_local $9 + f64.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.5 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + get_local $10 + f64.store offset=8 + end + i32.const 1 + set_local $8 + block $break|3 + loop $continue|3 + get_local $8 + i32.const 1 + i32.shl + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $8 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + tee_local $7 + get_local $6 + i32.lt_s + if + get_local $7 + set_local $8 + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $8 + i32.const 0 + i32.gt_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.6 (result f64) + i32.const 0 + set_local $11 + get_local $0 + get_local $1 + i32.add + get_local $11 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $10 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.7 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $9 + block (result i32) + i32.const 2 + set_global $~argc + get_local $10 + get_local $9 + get_local $3 + call_indirect (type $FFi) + end + i32.const 0 + i32.lt_s + if + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + get_local $8 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.6 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + get_local $10 + f64.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.7 + i32.const 0 + set_local $11 + get_local $0 + get_local $1 + i32.add + get_local $11 + i32.const 3 + i32.shl + i32.add + get_local $9 + f64.store offset=8 + end + end + get_local $8 + i32.const 1 + i32.shr_s + set_local $8 + end + br $continue|4 + end + end + end + end + get_local $6 + i32.const 1 + i32.sub + set_local $6 + br $repeat|2 + unreachable + end + unreachable + end + block $~lib/memory/memory.free|inlined.1 + block + get_local $5 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.1 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.8 (result f64) + i32.const 1 + set_local $6 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $12 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.8 + i32.const 1 + set_local $6 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.9 (result f64) + i32.const 0 + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $7 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $10 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + get_local $10 + f64.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.9 + i32.const 0 + set_local $6 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + get_local $12 + f64.store offset=8 + end ) (func $~lib/array/Array#sort (; 98 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -7934,356 +5877,264 @@ (local $4 i32) (local $5 f64) (local $6 f64) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.le_s - (get_local $2) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 2) - ) - (block - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result f64) - (set_local $4 - (i32.const 1) - ) - (f64.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $6 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result f64) - (set_local $4 - (i32.const 0) - ) - (f64.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $FFi) - (get_local $5) - (get_local $6) - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (set_local $4 - (i32.const 1) - ) - (f64.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - (get_local $6) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 - (set_local $4 - (i32.const 0) - ) - (f64.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - (get_local $5) - ) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 256) - ) - (call $~lib/internal/array/insertionSort - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - (call $~lib/internal/array/weakHeapSort - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - ) - (return - (get_local $0) - ) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + set_local $2 + get_local $2 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.const 2 + i32.eq + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result f64) + i32.const 1 + set_local $4 + get_local $3 + get_local $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $5 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result f64) + i32.const 0 + set_local $4 + get_local $3 + get_local $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $6 + block (result i32) + i32.const 2 + set_global $~argc + get_local $5 + get_local $6 + get_local $1 + call_indirect (type $FFi) + end + i32.const 0 + i32.lt_s + if + block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + i32.const 1 + set_local $4 + get_local $3 + get_local $4 + i32.const 3 + i32.shl + i32.add + get_local $6 + f64.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 + i32.const 0 + set_local $4 + get_local $3 + get_local $4 + i32.const 3 + i32.shl + i32.add + get_local $5 + f64.store offset=8 + end + end + get_local $0 + return + end + get_local $2 + i32.const 256 + i32.lt_s + if + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/insertionSort + else + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/weakHeapSort + end + get_local $0 + return ) (func $~lib/array/Array#sort|trampoline~anonymous|44 (; 99 ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $2 - (i64.xor - (get_local $2) - (i64.shr_u - (i64.shr_s - (get_local $2) - (i64.const 63) - ) - (i64.const 1) - ) - ) - ) - (set_local $3 - (i64.xor - (get_local $3) - (i64.shr_u - (i64.shr_s - (get_local $3) - (i64.const 63) - ) - (i64.const 1) - ) - ) - ) - (i32.sub - (i64.gt_s - (get_local $2) - (get_local $3) - ) - (i64.lt_s - (get_local $2) - (get_local $3) - ) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $2 + get_local $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + set_local $2 + get_local $3 + get_local $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + set_local $3 + get_local $2 + get_local $3 + i64.gt_s + get_local $2 + get_local $3 + i64.lt_s + i32.sub ) (func $~lib/array/Array#sort|trampoline (; 100 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (block $~lib/internal/array/defaultComparator|inlined.0 (result i32) - (br $~lib/internal/array/defaultComparator|inlined.0 - (i32.const 44) - ) - ) - ) - ) - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + block $~lib/internal/array/defaultComparator|inlined.0 (result i32) + i32.const 44 + br $~lib/internal/array/defaultComparator|inlined.0 + end + set_local $1 + end + get_local $0 + get_local $1 + call $~lib/array/Array#sort ) (func $~lib/array/Array#__get (; 101 ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result f64) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 3) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result f64) - (f64.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 3 + i32.shr_u + i32.lt_u + if (result f64) + get_local $2 + get_local $1 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + else + unreachable + end ) (func $~lib/builtins/isNaN (; 102 ;) (type $Fi) (param $0 f64) (result i32) - (f64.ne - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + f64.ne ) (func $std/array/isArraysEqual (; 103 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $2 - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (if - (i32.ne - (get_local $2) - (block $~lib/array/Array#get:length|inlined.2 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - ) - ) - (block $break|0 - (set_local $3 - (i32.const 0) - ) - (loop $repeat|0 - (block $continue|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $3) - (get_local $2) - ) - ) - ) - (block - (if - (i32.eq - (call $~lib/builtins/isNaN - (call $~lib/array/Array#__get - (get_local $0) - (get_local $3) - ) - ) - (call $~lib/builtins/isNaN - (call $~lib/array/Array#__get - (get_local $1) - (get_local $3) - ) - ) - ) - (br $continue|0) - ) - (if - (f64.ne - (call $~lib/array/Array#__get - (get_local $0) - (get_local $3) - ) - (call $~lib/array/Array#__get - (get_local $1) - (get_local $3) - ) - ) - (return - (i32.const 0) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + get_local $2 + i32.eqz + if + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_local $0 + i32.load offset=4 + end + set_local $2 + get_local $2 + block $~lib/array/Array#get:length|inlined.2 (result i32) + get_local $1 + i32.load offset=4 + end + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + end + block $break|0 + i32.const 0 + set_local $3 + loop $repeat|0 + block $continue|0 + get_local $3 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $3 + call $~lib/array/Array#__get + call $~lib/builtins/isNaN + get_local $1 + get_local $3 + call $~lib/array/Array#__get + call $~lib/builtins/isNaN + i32.eq + if + br $continue|0 + end + get_local $0 + get_local $3 + call $~lib/array/Array#__get + get_local $1 + get_local $3 + call $~lib/array/Array#__get + f64.ne + if + i32.const 0 + return + end + end + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $~lib/internal/array/insertionSort (; 104 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -8291,151 +6142,113 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (block $break|0 - (set_local $4 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $4) - (get_local $2) - ) - ) - ) - (block - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $6) - (i32.const 0) - ) - (block - (block - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $5) - (get_local $7) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 - (set_local $8 - (i32.add - (block (result i32) - (set_local $6 - (i32.sub - (tee_local $8 - (get_local $6) - ) - (i32.const 1) - ) - ) - (get_local $8) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $7) - ) - ) - (br $break|1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 - (set_local $7 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + i32.const 0 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + get_local $4 + i32.const 1 + i32.sub + set_local $6 + block $break|1 + loop $continue|1 + get_local $6 + i32.const 0 + i32.ge_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $5 + get_local $7 + get_local $3 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + block (result i32) + get_local $6 + tee_local $8 + i32.const 1 + i32.sub + set_local $6 + get_local $8 + end + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $7 + i32.store offset=8 + else + br $break|1 + end + end + br $continue|1 + end + end + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 + get_local $6 + i32.const 1 + i32.add + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $7 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + end + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) (func $~lib/internal/array/weakHeapSort (; 105 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -8447,593 +6260,426 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $4 - (i32.shl - (i32.shr_s - (i32.add - (get_local $2) - (i32.const 31) - ) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (set_local $5 - (block $~lib/memory/memory.allocate|inlined.3 (result i32) - (br $~lib/memory/memory.allocate|inlined.3 - (call $~lib/allocator/arena/__memory_allocate - (get_local $4) - ) - ) - ) - ) - (block $~lib/memory/memory.fill|inlined.7 - (set_local $6 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $5) - (get_local $6) - (get_local $4) - ) - ) - (block $break|0 - (set_local $6 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.gt_s - (get_local $6) - (i32.const 0) - ) - ) - ) - (block - (set_local $7 - (get_local $6) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.eq - (i32.and - (get_local $7) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $7) - (i32.const 6) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - (block - (set_local $7 - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.2 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.3 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $9) - (get_local $10) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (i32.xor - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $6) - (i32.const 31) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.2 - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $9) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.3 - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $10) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|2 - (set_local $6 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.ge_s - (get_local $6) - (i32.const 2) - ) - ) - ) - (block - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.4 (result i32) - (set_local $10 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $10) - (i32.const 2) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.4 - (set_local $9 - (i32.const 0) - ) - (set_local $8 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.5 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - (get_local $8) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.5 - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $10) - ) - ) - (set_local $8 - (i32.const 1) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.lt_s - (tee_local $9 - (i32.add - (i32.shl - (get_local $8) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (get_local $8) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - ) - (get_local $6) - ) - (block - (set_local $8 - (get_local $9) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.gt_s - (get_local $8) - (i32.const 0) - ) - (block - (block - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.6 (result i32) - (set_local $7 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.7 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $10) - (get_local $7) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (i32.xor - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $8) - (i32.const 31) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.6 - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $10) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.7 - (set_local $11 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $11) - (i32.const 2) - ) - ) - (get_local $7) - ) - ) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $8) - (i32.const 1) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (block $~lib/memory/memory.free|inlined.2 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $5) - ) - (br $~lib/memory/memory.free|inlined.2) - ) - ) - (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.8 (result i32) - (set_local $6 - (i32.const 1) - ) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.8 - (set_local $6 - (i32.const 1) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.9 (result i32) - (set_local $9 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $9) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.9 - (set_local $9 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - (get_local $12) - ) - ) + get_local $2 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + set_local $4 + block $~lib/memory/memory.allocate|inlined.3 (result i32) + get_local $4 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.3 + end + set_local $5 + block $~lib/memory/memory.fill|inlined.7 + i32.const 0 + set_local $6 + get_local $5 + get_local $6 + get_local $4 + call $~lib/internal/memory/memset + end + block $break|0 + get_local $2 + i32.const 1 + i32.sub + set_local $6 + loop $repeat|0 + get_local $6 + i32.const 0 + i32.gt_s + i32.eqz + br_if $break|0 + block + get_local $6 + set_local $7 + block $break|1 + loop $continue|1 + get_local $7 + i32.const 1 + i32.and + get_local $5 + get_local $7 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $7 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + get_local $7 + i32.const 1 + i32.shr_s + set_local $7 + br $continue|1 + end + end + end + get_local $7 + i32.const 1 + i32.shr_s + set_local $8 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.2 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $9 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.3 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $10 + block (result i32) + i32.const 2 + set_global $~argc + get_local $9 + get_local $10 + get_local $3 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + get_local $5 + get_local $6 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + get_local $5 + get_local $6 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + get_local $6 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.2 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $9 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.3 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $10 + i32.store offset=8 + end + end + end + get_local $6 + i32.const 1 + i32.sub + set_local $6 + br $repeat|0 + unreachable + end + unreachable + end + block $break|2 + get_local $2 + i32.const 1 + i32.sub + set_local $6 + loop $repeat|2 + get_local $6 + i32.const 2 + i32.ge_s + i32.eqz + br_if $break|2 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.4 (result i32) + i32.const 0 + set_local $10 + get_local $0 + get_local $1 + i32.add + get_local $10 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $10 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.4 + i32.const 0 + set_local $9 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.5 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $9 + i32.const 2 + i32.shl + i32.add + get_local $8 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.5 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $10 + i32.store offset=8 + end + i32.const 1 + set_local $8 + block $break|3 + loop $continue|3 + get_local $8 + i32.const 1 + i32.shl + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $8 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + tee_local $9 + get_local $6 + i32.lt_s + if + get_local $9 + set_local $8 + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $8 + i32.const 0 + i32.gt_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.6 (result i32) + i32.const 0 + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $10 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.7 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $10 + get_local $7 + get_local $3 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + get_local $8 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.6 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $10 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.7 + i32.const 0 + set_local $11 + get_local $0 + get_local $1 + i32.add + get_local $11 + i32.const 2 + i32.shl + i32.add + get_local $7 + i32.store offset=8 + end + end + get_local $8 + i32.const 1 + i32.shr_s + set_local $8 + end + br $continue|4 + end + end + end + end + get_local $6 + i32.const 1 + i32.sub + set_local $6 + br $repeat|2 + unreachable + end + unreachable + end + block $~lib/memory/memory.free|inlined.2 + block + get_local $5 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.2 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.8 (result i32) + i32.const 1 + set_local $6 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $12 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.8 + i32.const 1 + set_local $6 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.9 (result i32) + i32.const 0 + set_local $9 + get_local $0 + get_local $1 + i32.add + get_local $9 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $9 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $9 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.9 + i32.const 0 + set_local $9 + get_local $0 + get_local $1 + i32.add + get_local $9 + i32.const 2 + i32.shl + i32.add + get_local $12 + i32.store offset=8 + end ) (func $~lib/array/Array#sort (; 106 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9041,256 +6687,193 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.le_s - (get_local $2) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 2) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.21 (result i32) - (set_local $4 - (i32.const 1) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.22 (result i32) - (set_local $5 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $4) - (get_local $5) - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.7 - (set_local $6 - (i32.const 1) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.8 - (set_local $6 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $4) - ) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 256) - ) - (call $~lib/internal/array/insertionSort - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - (call $~lib/internal/array/weakHeapSort - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - ) - (return - (get_local $0) - ) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + set_local $2 + get_local $2 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.const 2 + i32.eq + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.21 (result i32) + i32.const 1 + set_local $4 + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.22 (result i32) + i32.const 0 + set_local $5 + get_local $3 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + block (result i32) + i32.const 2 + set_global $~argc + get_local $4 + get_local $5 + get_local $1 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + block $~lib/internal/arraybuffer/storeUnsafe|inlined.7 + i32.const 1 + set_local $6 + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.8 + i32.const 0 + set_local $6 + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $4 + i32.store offset=8 + end + end + get_local $0 + return + end + get_local $2 + i32.const 256 + i32.lt_s + if + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/insertionSort + else + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/weakHeapSort + end + get_local $0 + return ) (func $~lib/array/Array#sort|trampoline~anonymous|45 (; 107 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.sub ) (func $~lib/array/Array#sort|trampoline (; 108 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (block $~lib/internal/array/defaultComparator|inlined.0 (result i32) - (br $~lib/internal/array/defaultComparator|inlined.0 - (i32.const 45) - ) - ) - ) - ) - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + block $~lib/internal/array/defaultComparator|inlined.0 (result i32) + i32.const 45 + br $~lib/internal/array/defaultComparator|inlined.0 + end + set_local $1 + end + get_local $0 + get_local $1 + call $~lib/array/Array#sort ) (func $std/array/isArraysEqual (; 109 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $2 - (block $~lib/array/Array#get:length|inlined.38 (result i32) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (if - (i32.ne - (get_local $2) - (block $~lib/array/Array#get:length|inlined.40 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - ) - ) - (block $break|0 - (set_local $3 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $3) - (get_local $2) - ) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (get_local $0) - (get_local $3) - ) - (call $~lib/array/Array#__get - (get_local $1) - (get_local $3) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + get_local $2 + i32.eqz + if + block $~lib/array/Array#get:length|inlined.38 (result i32) + get_local $0 + i32.load offset=4 + end + set_local $2 + get_local $2 + block $~lib/array/Array#get:length|inlined.40 (result i32) + get_local $1 + i32.load offset=4 + end + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + end + block $break|0 + i32.const 0 + set_local $3 + loop $repeat|0 + get_local $3 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + get_local $0 + get_local $3 + call $~lib/array/Array#__get + get_local $1 + get_local $3 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $~lib/internal/array/insertionSort (; 110 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -9298,151 +6881,113 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (block $break|0 - (set_local $4 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $4) - (get_local $2) - ) - ) - ) - (block - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $6) - (i32.const 0) - ) - (block - (block - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $5) - (get_local $7) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 - (set_local $8 - (i32.add - (block (result i32) - (set_local $6 - (i32.sub - (tee_local $8 - (get_local $6) - ) - (i32.const 1) - ) - ) - (get_local $8) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $7) - ) - ) - (br $break|1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 - (set_local $7 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + i32.const 0 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + get_local $4 + i32.const 1 + i32.sub + set_local $6 + block $break|1 + loop $continue|1 + get_local $6 + i32.const 0 + i32.ge_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $5 + get_local $7 + get_local $3 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + block (result i32) + get_local $6 + tee_local $8 + i32.const 1 + i32.sub + set_local $6 + get_local $8 + end + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $7 + i32.store offset=8 + else + br $break|1 + end + end + br $continue|1 + end + end + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 + get_local $6 + i32.const 1 + i32.add + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $7 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + end + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) (func $~lib/internal/array/weakHeapSort (; 111 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -9454,593 +6999,426 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $4 - (i32.shl - (i32.shr_s - (i32.add - (get_local $2) - (i32.const 31) - ) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (set_local $5 - (block $~lib/memory/memory.allocate|inlined.4 (result i32) - (br $~lib/memory/memory.allocate|inlined.4 - (call $~lib/allocator/arena/__memory_allocate - (get_local $4) - ) - ) - ) - ) - (block $~lib/memory/memory.fill|inlined.8 - (set_local $6 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $5) - (get_local $6) - (get_local $4) - ) - ) - (block $break|0 - (set_local $6 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.gt_s - (get_local $6) - (i32.const 0) - ) - ) - ) - (block - (set_local $7 - (get_local $6) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.eq - (i32.and - (get_local $7) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $7) - (i32.const 6) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - (block - (set_local $7 - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.2 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.3 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $9) - (get_local $10) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (i32.xor - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $6) - (i32.const 31) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.2 - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $9) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.3 - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $10) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|2 - (set_local $6 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.ge_s - (get_local $6) - (i32.const 2) - ) - ) - ) - (block - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.4 (result i32) - (set_local $10 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $10) - (i32.const 2) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.4 - (set_local $9 - (i32.const 0) - ) - (set_local $8 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.5 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - (get_local $8) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.5 - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $10) - ) - ) - (set_local $8 - (i32.const 1) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.lt_s - (tee_local $9 - (i32.add - (i32.shl - (get_local $8) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (get_local $8) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - ) - (get_local $6) - ) - (block - (set_local $8 - (get_local $9) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.gt_s - (get_local $8) - (i32.const 0) - ) - (block - (block - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.6 (result i32) - (set_local $7 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.7 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $10) - (get_local $7) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (i32.xor - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $8) - (i32.const 31) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.6 - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $10) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.7 - (set_local $11 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $11) - (i32.const 2) - ) - ) - (get_local $7) - ) - ) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $8) - (i32.const 1) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (block $~lib/memory/memory.free|inlined.3 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $5) - ) - (br $~lib/memory/memory.free|inlined.3) - ) - ) - (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.8 (result i32) - (set_local $6 - (i32.const 1) - ) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.8 - (set_local $6 - (i32.const 1) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.9 (result i32) - (set_local $9 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $9) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.9 - (set_local $9 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - (get_local $12) - ) - ) + get_local $2 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + set_local $4 + block $~lib/memory/memory.allocate|inlined.4 (result i32) + get_local $4 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.4 + end + set_local $5 + block $~lib/memory/memory.fill|inlined.8 + i32.const 0 + set_local $6 + get_local $5 + get_local $6 + get_local $4 + call $~lib/internal/memory/memset + end + block $break|0 + get_local $2 + i32.const 1 + i32.sub + set_local $6 + loop $repeat|0 + get_local $6 + i32.const 0 + i32.gt_s + i32.eqz + br_if $break|0 + block + get_local $6 + set_local $7 + block $break|1 + loop $continue|1 + get_local $7 + i32.const 1 + i32.and + get_local $5 + get_local $7 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $7 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + get_local $7 + i32.const 1 + i32.shr_s + set_local $7 + br $continue|1 + end + end + end + get_local $7 + i32.const 1 + i32.shr_s + set_local $8 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.2 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $9 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.3 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $10 + block (result i32) + i32.const 2 + set_global $~argc + get_local $9 + get_local $10 + get_local $3 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + get_local $5 + get_local $6 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + get_local $5 + get_local $6 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + get_local $6 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.2 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $9 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.3 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $10 + i32.store offset=8 + end + end + end + get_local $6 + i32.const 1 + i32.sub + set_local $6 + br $repeat|0 + unreachable + end + unreachable + end + block $break|2 + get_local $2 + i32.const 1 + i32.sub + set_local $6 + loop $repeat|2 + get_local $6 + i32.const 2 + i32.ge_s + i32.eqz + br_if $break|2 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.4 (result i32) + i32.const 0 + set_local $10 + get_local $0 + get_local $1 + i32.add + get_local $10 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $10 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.4 + i32.const 0 + set_local $9 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.5 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $9 + i32.const 2 + i32.shl + i32.add + get_local $8 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.5 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $10 + i32.store offset=8 + end + i32.const 1 + set_local $8 + block $break|3 + loop $continue|3 + get_local $8 + i32.const 1 + i32.shl + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $8 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + tee_local $9 + get_local $6 + i32.lt_s + if + get_local $9 + set_local $8 + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $8 + i32.const 0 + i32.gt_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.6 (result i32) + i32.const 0 + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $10 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.7 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $10 + get_local $7 + get_local $3 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + get_local $8 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.6 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $10 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.7 + i32.const 0 + set_local $11 + get_local $0 + get_local $1 + i32.add + get_local $11 + i32.const 2 + i32.shl + i32.add + get_local $7 + i32.store offset=8 + end + end + get_local $8 + i32.const 1 + i32.shr_s + set_local $8 + end + br $continue|4 + end + end + end + end + get_local $6 + i32.const 1 + i32.sub + set_local $6 + br $repeat|2 + unreachable + end + unreachable + end + block $~lib/memory/memory.free|inlined.3 + block + get_local $5 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.3 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.8 (result i32) + i32.const 1 + set_local $6 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $12 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.8 + i32.const 1 + set_local $6 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.9 (result i32) + i32.const 0 + set_local $9 + get_local $0 + get_local $1 + i32.add + get_local $9 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $9 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $9 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.9 + i32.const 0 + set_local $9 + get_local $0 + get_local $1 + i32.add + get_local $9 + i32.const 2 + i32.shl + i32.add + get_local $12 + i32.store offset=8 + end ) (func $~lib/array/Array#sort (; 112 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -10048,760 +7426,572 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.le_s - (get_local $2) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 2) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) - (set_local $4 - (i32.const 1) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) - (set_local $5 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $4) - (get_local $5) - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 - (set_local $6 - (i32.const 1) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.2 - (set_local $6 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $4) - ) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 256) - ) - (call $~lib/internal/array/insertionSort - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - (call $~lib/internal/array/weakHeapSort - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - ) - (return - (get_local $0) - ) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + set_local $2 + get_local $2 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.const 2 + i32.eq + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + i32.const 1 + set_local $4 + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + i32.const 0 + set_local $5 + get_local $3 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + block (result i32) + i32.const 2 + set_global $~argc + get_local $4 + get_local $5 + get_local $1 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 + i32.const 1 + set_local $6 + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.2 + i32.const 0 + set_local $6 + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $4 + i32.store offset=8 + end + end + get_local $0 + return + end + get_local $2 + i32.const 256 + i32.lt_s + if + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/insertionSort + else + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/weakHeapSort + end + get_local $0 + return ) (func $~lib/array/Array#sort|trampoline~anonymous|46 (; 113 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (i32.gt_u - (get_local $0) - (get_local $1) - ) - (i32.lt_u - (get_local $0) - (get_local $1) - ) - ) + get_local $0 + get_local $1 + i32.gt_u + get_local $0 + get_local $1 + i32.lt_u + i32.sub ) (func $~lib/array/Array#sort|trampoline (; 114 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (block $~lib/internal/array/defaultComparator|inlined.0 (result i32) - (br $~lib/internal/array/defaultComparator|inlined.0 - (i32.const 46) - ) - ) - ) - ) - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + block $~lib/internal/array/defaultComparator|inlined.0 (result i32) + i32.const 46 + br $~lib/internal/array/defaultComparator|inlined.0 + end + set_local $1 + end + get_local $0 + get_local $1 + call $~lib/array/Array#sort ) (func $std/array/createReverseOrderedArray (; 115 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/array/Array#constructor - (i32.const 0) - (get_local $0) - ) - ) - (block $break|0 - (set_local $2 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (block $~lib/array/Array#get:length|inlined.42 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - ) - (call $~lib/array/Array#__set - (get_local $1) - (get_local $2) - (i32.sub - (i32.sub - (block $~lib/array/Array#get:length|inlined.43 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 1) - ) - (get_local $2) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + i32.const 0 + get_local $0 + call $~lib/array/Array#constructor + set_local $1 + block $break|0 + i32.const 0 + set_local $2 + loop $repeat|0 + get_local $2 + block $~lib/array/Array#get:length|inlined.42 (result i32) + get_local $1 + i32.load offset=4 + end + i32.lt_s + i32.eqz + br_if $break|0 + get_local $1 + get_local $2 + block $~lib/array/Array#get:length|inlined.43 (result i32) + get_local $1 + i32.load offset=4 + end + i32.const 1 + i32.sub + get_local $2 + i32.sub + call $~lib/array/Array#__set + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) (func $~lib/math/NativeMath.random (; 116 ;) (type $F) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) - (if - (i32.eqz - (get_global $~lib/math/random_seeded) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 552) - (i32.const 964) - (i32.const 24) - ) - (unreachable) - ) - ) - (set_local $0 - (get_global $~lib/math/random_state0_64) - ) - (set_local $1 - (get_global $~lib/math/random_state1_64) - ) - (set_global $~lib/math/random_state0_64 - (get_local $1) - ) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shl - (get_local $0) - (i64.const 23) - ) - ) - ) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $0) - (i64.const 17) - ) - ) - ) - (set_local $0 - (i64.xor - (get_local $0) - (get_local $1) - ) - ) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $1) - (i64.const 26) - ) - ) - ) - (set_global $~lib/math/random_state1_64 - (get_local $0) - ) - (set_local $2 - (i64.or - (i64.and - (i64.add - (get_local $1) - (get_local $0) - ) - (i64.const 4503599627370495) - ) - (i64.const 4607182418800017408) - ) - ) - (f64.sub - (f64.reinterpret/i64 - (get_local $2) - ) - (f64.const 1) - ) + get_global $~lib/math/random_seeded + i32.eqz + if + i32.const 0 + i32.const 552 + i32.const 964 + i32.const 24 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/random_state0_64 + set_local $0 + get_global $~lib/math/random_state1_64 + set_local $1 + get_local $1 + set_global $~lib/math/random_state0_64 + get_local $0 + get_local $0 + i64.const 23 + i64.shl + i64.xor + set_local $0 + get_local $0 + get_local $0 + i64.const 17 + i64.shr_u + i64.xor + set_local $0 + get_local $0 + get_local $1 + i64.xor + set_local $0 + get_local $0 + get_local $1 + i64.const 26 + i64.shr_u + i64.xor + set_local $0 + get_local $0 + set_global $~lib/math/random_state1_64 + get_local $1 + get_local $0 + i64.add + i64.const 4503599627370495 + i64.and + i64.const 4607182418800017408 + i64.or + set_local $2 + get_local $2 + f64.reinterpret/i64 + f64.const 1 + f64.sub ) (func $std/array/createRandomOrderedArray (; 117 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/array/Array#constructor - (i32.const 0) - (get_local $0) - ) - ) - (block $break|0 - (set_local $2 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (block $~lib/array/Array#get:length|inlined.45 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - ) - (call $~lib/array/Array#__set - (get_local $1) - (get_local $2) - (i32.trunc_s/f64 - (f64.mul - (call $~lib/math/NativeMath.random) - (f64.convert_s/i32 - (block $~lib/array/Array#get:length|inlined.46 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + i32.const 0 + get_local $0 + call $~lib/array/Array#constructor + set_local $1 + block $break|0 + i32.const 0 + set_local $2 + loop $repeat|0 + get_local $2 + block $~lib/array/Array#get:length|inlined.45 (result i32) + get_local $1 + i32.load offset=4 + end + i32.lt_s + i32.eqz + br_if $break|0 + get_local $1 + get_local $2 + call $~lib/math/NativeMath.random + block $~lib/array/Array#get:length|inlined.46 (result i32) + get_local $1 + i32.load offset=4 + end + f64.convert_s/i32 + f64.mul + i32.trunc_s/f64 + call $~lib/array/Array#__set + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) (func $std/array/assertSortedDefault~anonymous|47 (; 118 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.sub ) (func $std/array/isSorted (; 119 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (block $break|0 - (block - (set_local $2 - (i32.const 1) - ) - (set_local $3 - (block $~lib/array/Array#get:length|inlined.47 (result i32) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (if - (i32.gt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (call $~lib/array/Array#__get - (get_local $0) - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (call $~lib/array/Array#__get - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + block $break|0 + block + i32.const 1 + set_local $2 + block $~lib/array/Array#get:length|inlined.47 (result i32) + get_local $0 + i32.load offset=4 + end + set_local $3 + end + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + block (result i32) + i32.const 2 + set_global $~argc + get_local $0 + get_local $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + get_local $0 + get_local $2 + call $~lib/array/Array#__get + get_local $1 + call_indirect (type $iii) + end + i32.const 0 + i32.gt_s + if + i32.const 0 + return + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $std/array/assertSorted (; 120 ;) (type $iiv) (param $0 i32) (param $1 i32) - (if - (i32.eqz - (call $std/array/isSorted - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 688) - (i32.const 2) - ) - (unreachable) - ) - ) + get_local $0 + get_local $1 + call $~lib/array/Array#sort + get_local $1 + call $std/array/isSorted + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 688 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $std/array/assertSortedDefault (; 121 ;) (type $iv) (param $0 i32) - (call $std/array/assertSorted - (get_local $0) - (block $~lib/internal/array/defaultComparator|inlined.1 (result i32) - (br $~lib/internal/array/defaultComparator|inlined.1 - (i32.const 47) - ) - ) - ) + get_local $0 + block $~lib/internal/array/defaultComparator|inlined.1 (result i32) + i32.const 47 + br $~lib/internal/array/defaultComparator|inlined.1 + end + call $std/array/assertSorted ) (func $start~anonymous|48 (; 122 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.sub ) (func $start~anonymous|49 (; 123 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $1) - (get_local $0) - ) + get_local $1 + get_local $0 + i32.sub ) (func $start~anonymous|50 (; 124 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + i32.sub ) (func $start~anonymous|51 (; 125 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (get_local $1) - (get_local $0) - ) + get_local $1 + get_local $0 + i32.sub ) (func $~lib/array/Array>#constructor (; 126 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.9 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.9 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array>#__set (; 127 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 2) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe,Array>|inlined.0 - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 2 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + get_local $1 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 8 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + block $~lib/internal/arraybuffer/storeUnsafe,Array>|inlined.0 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 + end ) (func $~lib/array/Array>#__get (; 128 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $std/array/createReverseOrderedNestedArray (; 129 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/array/Array>#constructor - (i32.const 0) - (get_local $0) - ) - ) - (block $break|0 - (set_local $2 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (block $~lib/array/Array>#get:length|inlined.1 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - ) - (block - (call $~lib/array/Array>#__set - (get_local $1) - (get_local $2) - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 1) - ) - ) - (call $~lib/array/Array#__set - (call $~lib/array/Array>#__get - (get_local $1) - (get_local $2) - ) - (i32.const 0) - (i32.sub - (i32.sub - (block $~lib/array/Array>#get:length|inlined.2 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 1) - ) - (get_local $2) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + i32.const 0 + get_local $0 + call $~lib/array/Array>#constructor + set_local $1 + block $break|0 + i32.const 0 + set_local $2 + loop $repeat|0 + get_local $2 + block $~lib/array/Array>#get:length|inlined.1 (result i32) + get_local $1 + i32.load offset=4 + end + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $1 + get_local $2 + i32.const 0 + i32.const 1 + call $~lib/array/Array#constructor + call $~lib/array/Array>#__set + get_local $1 + get_local $2 + call $~lib/array/Array>#__get + i32.const 0 + block $~lib/array/Array>#get:length|inlined.2 (result i32) + get_local $1 + i32.load offset=4 + end + i32.const 1 + i32.sub + get_local $2 + i32.sub + call $~lib/array/Array#__set + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) (func $start~anonymous|52 (; 130 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (call $~lib/array/Array#__get - (get_local $0) - (i32.const 0) - ) - (call $~lib/array/Array#__get - (get_local $1) - (i32.const 0) - ) - ) + get_local $0 + i32.const 0 + call $~lib/array/Array#__get + get_local $1 + i32.const 0 + call $~lib/array/Array#__get + i32.sub ) (func $~lib/internal/array/insertionSort> (; 131 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -10809,151 +7999,113 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (block $break|0 - (set_local $4 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $4) - (get_local $2) - ) - ) - ) - (block - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset,Array>|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $6) - (i32.const 0) - ) - (block - (block - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset,Array>|inlined.1 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $5) - (get_local $7) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset,Array>|inlined.0 - (set_local $8 - (i32.add - (block (result i32) - (set_local $6 - (i32.sub - (tee_local $8 - (get_local $6) - ) - (i32.const 1) - ) - ) - (get_local $8) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $7) - ) - ) - (br $break|1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset,Array>|inlined.1 - (set_local $7 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + i32.const 0 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset,Array>|inlined.0 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + get_local $4 + i32.const 1 + i32.sub + set_local $6 + block $break|1 + loop $continue|1 + get_local $6 + i32.const 0 + i32.ge_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset,Array>|inlined.1 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $5 + get_local $7 + get_local $3 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + block (result i32) + get_local $6 + tee_local $8 + i32.const 1 + i32.sub + set_local $6 + get_local $8 + end + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $7 + i32.store offset=8 + else + br $break|1 + end + end + br $continue|1 + end + end + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset,Array>|inlined.1 + get_local $6 + i32.const 1 + i32.add + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $7 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + end + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) (func $~lib/array/Array>#sort (; 132 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -10961,466 +8113,348 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.le_s - (get_local $2) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 2) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.1 (result i32) - (set_local $4 - (i32.const 1) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.2 (result i32) - (set_local $5 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $4) - (get_local $5) - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (block $~lib/internal/arraybuffer/storeUnsafe,Array>|inlined.1 - (set_local $6 - (i32.const 1) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe,Array>|inlined.2 - (set_local $6 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $4) - ) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (call $~lib/internal/array/insertionSort> - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - (return - (get_local $0) - ) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + set_local $2 + get_local $2 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.const 2 + i32.eq + if + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.1 (result i32) + i32.const 1 + set_local $4 + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.2 (result i32) + i32.const 0 + set_local $5 + get_local $3 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + block (result i32) + i32.const 2 + set_global $~argc + get_local $4 + get_local $5 + get_local $1 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + block $~lib/internal/arraybuffer/storeUnsafe,Array>|inlined.1 + i32.const 1 + set_local $6 + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafe,Array>|inlined.2 + i32.const 0 + set_local $6 + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $4 + i32.store offset=8 + end + end + get_local $0 + return + end + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/insertionSort> + get_local $0 + return ) (func $std/array/isSorted> (; 133 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (block $break|0 - (block - (set_local $2 - (i32.const 1) - ) - (set_local $3 - (block $~lib/array/Array>#get:length|inlined.3 (result i32) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (if - (i32.gt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (call $~lib/array/Array>#__get - (get_local $0) - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (call $~lib/array/Array>#__get - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + block $break|0 + block + i32.const 1 + set_local $2 + block $~lib/array/Array>#get:length|inlined.3 (result i32) + get_local $0 + i32.load offset=4 + end + set_local $3 + end + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + block (result i32) + i32.const 2 + set_global $~argc + get_local $0 + get_local $2 + i32.const 1 + i32.sub + call $~lib/array/Array>#__get + get_local $0 + get_local $2 + call $~lib/array/Array>#__get + get_local $1 + call_indirect (type $iii) + end + i32.const 0 + i32.gt_s + if + i32.const 0 + return + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $std/array/assertSorted> (; 134 ;) (type $iiv) (param $0 i32) (param $1 i32) - (if - (i32.eqz - (call $std/array/isSorted> - (call $~lib/array/Array>#sort - (get_local $0) - (get_local $1) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 688) - (i32.const 2) - ) - (unreachable) - ) - ) + get_local $0 + get_local $1 + call $~lib/array/Array>#sort + get_local $1 + call $std/array/isSorted> + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 688 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/array/Array>#constructor (; 135 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.10 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.10 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $std/array/Proxy#constructor (; 136 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $2 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.store - (get_local $2) - (get_local $1) - ) - (get_local $2) - ) - ) - ) - ) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 4 + call $~lib/memory/memory.allocate + set_local $2 + get_local $2 + get_local $1 + i32.store + get_local $2 + end + tee_local $0 + end + tee_local $0 ) (func $~lib/array/Array>#__set (; 137 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 2) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe,Proxy>|inlined.0 - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 2 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + get_local $1 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 8 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + block $~lib/internal/arraybuffer/storeUnsafe,Proxy>|inlined.0 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 + end ) (func $std/array/createReverseOrderedElementsArray (; 138 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/array/Array>#constructor - (i32.const 0) - (get_local $0) - ) - ) - (block $break|0 - (set_local $2 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (block $~lib/array/Array>#get:length|inlined.1 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - ) - (call $~lib/array/Array>#__set - (get_local $1) - (get_local $2) - (call $std/array/Proxy#constructor - (i32.const 0) - (i32.sub - (i32.sub - (block $~lib/array/Array>#get:length|inlined.2 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 1) - ) - (get_local $2) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + i32.const 0 + get_local $0 + call $~lib/array/Array>#constructor + set_local $1 + block $break|0 + i32.const 0 + set_local $2 + loop $repeat|0 + get_local $2 + block $~lib/array/Array>#get:length|inlined.1 (result i32) + get_local $1 + i32.load offset=4 + end + i32.lt_s + i32.eqz + br_if $break|0 + get_local $1 + get_local $2 + i32.const 0 + block $~lib/array/Array>#get:length|inlined.2 (result i32) + get_local $1 + i32.load offset=4 + end + i32.const 1 + i32.sub + get_local $2 + i32.sub + call $std/array/Proxy#constructor + call $~lib/array/Array>#__set + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) (func $start~anonymous|53 (; 139 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) + get_local $0 + i32.load + get_local $1 + i32.load + i32.sub ) (func $~lib/internal/array/insertionSort> (; 140 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -11428,151 +8462,113 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (block $break|0 - (set_local $4 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $4) - (get_local $2) - ) - ) - ) - (block - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset,Proxy>|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $6) - (i32.const 0) - ) - (block - (block - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset,Proxy>|inlined.1 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $5) - (get_local $7) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset,Proxy>|inlined.0 - (set_local $8 - (i32.add - (block (result i32) - (set_local $6 - (i32.sub - (tee_local $8 - (get_local $6) - ) - (i32.const 1) - ) - ) - (get_local $8) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $7) - ) - ) - (br $break|1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset,Proxy>|inlined.1 - (set_local $7 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + i32.const 0 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset,Proxy>|inlined.0 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + get_local $4 + i32.const 1 + i32.sub + set_local $6 + block $break|1 + loop $continue|1 + get_local $6 + i32.const 0 + i32.ge_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset,Proxy>|inlined.1 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $5 + get_local $7 + get_local $3 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + block (result i32) + get_local $6 + tee_local $8 + i32.const 1 + i32.sub + set_local $6 + get_local $8 + end + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $7 + i32.store offset=8 + else + br $break|1 + end + end + br $continue|1 + end + end + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset,Proxy>|inlined.1 + get_local $6 + i32.const 1 + i32.add + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $7 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + end + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) (func $~lib/array/Array>#sort (; 141 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -11580,326 +8576,240 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.le_s - (get_local $2) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 2) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Proxy>|inlined.0 (result i32) - (set_local $4 - (i32.const 1) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe,Proxy>|inlined.1 (result i32) - (set_local $5 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $4) - (get_local $5) - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (block $~lib/internal/arraybuffer/storeUnsafe,Proxy>|inlined.1 - (set_local $6 - (i32.const 1) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe,Proxy>|inlined.2 - (set_local $6 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $4) - ) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (call $~lib/internal/array/insertionSort> - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - (return - (get_local $0) - ) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + set_local $2 + get_local $2 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.const 2 + i32.eq + if + block $~lib/internal/arraybuffer/loadUnsafe,Proxy>|inlined.0 (result i32) + i32.const 1 + set_local $4 + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + block $~lib/internal/arraybuffer/loadUnsafe,Proxy>|inlined.1 (result i32) + i32.const 0 + set_local $5 + get_local $3 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + block (result i32) + i32.const 2 + set_global $~argc + get_local $4 + get_local $5 + get_local $1 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + block $~lib/internal/arraybuffer/storeUnsafe,Proxy>|inlined.1 + i32.const 1 + set_local $6 + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafe,Proxy>|inlined.2 + i32.const 0 + set_local $6 + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $4 + i32.store offset=8 + end + end + get_local $0 + return + end + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/insertionSort> + get_local $0 + return ) (func $~lib/array/Array>#__get (; 142 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe,Proxy>|inlined.2 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $std/array/isSorted> (; 143 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (block $break|0 - (block - (set_local $2 - (i32.const 1) - ) - (set_local $3 - (block $~lib/array/Array>#get:length|inlined.3 (result i32) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (if - (i32.gt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (call $~lib/array/Array>#__get - (get_local $0) - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (call $~lib/array/Array>#__get - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + block $break|0 + block + i32.const 1 + set_local $2 + block $~lib/array/Array>#get:length|inlined.3 (result i32) + get_local $0 + i32.load offset=4 + end + set_local $3 + end + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + block (result i32) + i32.const 2 + set_global $~argc + get_local $0 + get_local $2 + i32.const 1 + i32.sub + call $~lib/array/Array>#__get + get_local $0 + get_local $2 + call $~lib/array/Array>#__get + get_local $1 + call_indirect (type $iii) + end + i32.const 0 + i32.gt_s + if + i32.const 0 + return + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $std/array/assertSorted> (; 144 ;) (type $iiv) (param $0 i32) (param $1 i32) - (if - (i32.eqz - (call $std/array/isSorted> - (call $~lib/array/Array>#sort - (get_local $0) - (get_local $1) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 688) - (i32.const 2) - ) - (unreachable) - ) - ) + get_local $0 + get_local $1 + call $~lib/array/Array>#sort + get_local $1 + call $std/array/isSorted> + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 688 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/internal/string/compareUnsafe (; 145 ;) (type $iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $5 - (i32.const 0) - ) - (set_local $6 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $4) - (i32.eqz - (tee_local $5 - (i32.sub - (i32.load16_u offset=4 - (get_local $6) - ) - (i32.load16_u offset=4 - (get_local $7) - ) - ) - ) - ) - (get_local $4) - ) - (block - (block - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (get_local $5) + i32.const 0 + set_local $5 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $6 + get_local $2 + get_local $3 + i32.const 1 + i32.shl + i32.add + set_local $7 + block $break|0 + loop $continue|0 + get_local $4 + if (result i32) + get_local $6 + i32.load16_u offset=4 + get_local $7 + i32.load16_u offset=4 + i32.sub + tee_local $5 + i32.eqz + else + get_local $4 + end + if + block + get_local $4 + i32.const 1 + i32.sub + set_local $4 + get_local $6 + i32.const 1 + i32.add + set_local $6 + get_local $7 + i32.const 1 + i32.add + set_local $7 + end + br $continue|0 + end + end + end + get_local $5 ) (func $~lib/string/String.__gt (; 146 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -11907,83 +8817,64 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (i32.const 1) - ) - ) - (set_local $6 - (select - (tee_local $2 - (get_local $3) - ) - (tee_local $5 - (get_local $4) - ) - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - ) - (i32.gt_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $0 + i32.const 0 + i32.eq + end + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.load + set_local $4 + get_local $3 + i32.eqz + if + i32.const 0 + return + end + get_local $4 + i32.eqz + if + i32.const 1 + return + end + get_local $3 + tee_local $2 + get_local $4 + tee_local $5 + get_local $2 + get_local $5 + i32.lt_s + select + set_local $6 + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.gt_s ) (func $~lib/string/String.__lt (; 147 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -11991,95 +8882,73 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 1) - ) - ) - (set_local $6 - (select - (tee_local $2 - (get_local $3) - ) - (tee_local $5 - (get_local $4) - ) - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - ) - (i32.lt_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $0 + i32.const 0 + i32.eq + end + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.load + set_local $4 + get_local $4 + i32.eqz + if + i32.const 0 + return + end + get_local $3 + i32.eqz + if + i32.const 1 + return + end + get_local $3 + tee_local $2 + get_local $4 + tee_local $5 + get_local $2 + get_local $5 + i32.lt_s + select + set_local $6 + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.lt_s ) (func $start~anonymous|54 (; 148 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (call $~lib/string/String.__gt - (get_local $0) - (get_local $1) - ) - (call $~lib/string/String.__lt - (get_local $0) - (get_local $1) - ) - ) + get_local $0 + get_local $1 + call $~lib/string/String.__gt + get_local $0 + get_local $1 + call $~lib/string/String.__lt + i32.sub ) (func $~lib/internal/array/insertionSort (; 149 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -12087,151 +8956,113 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (block $break|0 - (set_local $4 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $4) - (get_local $2) - ) - ) - ) - (block - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $6) - (i32.const 0) - ) - (block - (block - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result i32) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $5) - (get_local $7) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 - (set_local $8 - (i32.add - (block (result i32) - (set_local $6 - (i32.sub - (tee_local $8 - (get_local $6) - ) - (i32.const 1) - ) - ) - (get_local $8) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $7) - ) - ) - (br $break|1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 - (set_local $7 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + i32.const 0 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + get_local $4 + i32.const 1 + i32.sub + set_local $6 + block $break|1 + loop $continue|1 + get_local $6 + i32.const 0 + i32.ge_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result i32) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $5 + get_local $7 + get_local $3 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + block (result i32) + get_local $6 + tee_local $8 + i32.const 1 + i32.sub + set_local $6 + get_local $8 + end + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $7 + i32.store offset=8 + else + br $break|1 + end + end + br $continue|1 + end + end + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 + get_local $6 + i32.const 1 + i32.add + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $7 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + end + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) (func $~lib/array/Array#sort (; 150 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12239,902 +9070,672 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.le_s - (get_local $2) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 2) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (set_local $4 - (i32.const 1) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) - (set_local $5 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (get_local $4) - (get_local $5) - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (set_local $6 - (i32.const 1) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $5) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 - (set_local $6 - (i32.const 0) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - (get_local $4) - ) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (call $~lib/internal/array/insertionSort - (get_local $3) - (i32.const 0) - (get_local $2) - (get_local $1) - ) - (return - (get_local $0) - ) + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=4 + set_local $2 + get_local $2 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.const 2 + i32.eq + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + i32.const 1 + set_local $4 + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + i32.const 0 + set_local $5 + get_local $3 + get_local $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + block (result i32) + i32.const 2 + set_global $~argc + get_local $4 + get_local $5 + get_local $1 + call_indirect (type $iii) + end + i32.const 0 + i32.lt_s + if + block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + i32.const 1 + set_local $6 + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 + i32.const 0 + set_local $6 + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + get_local $4 + i32.store offset=8 + end + end + get_local $0 + return + end + get_local $3 + i32.const 0 + get_local $2 + get_local $1 + call $~lib/internal/array/insertionSort + get_local $0 + return ) (func $~lib/array/Array#__get (; 151 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $std/array/isSorted (; 152 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (block $break|0 - (block - (set_local $2 - (i32.const 1) - ) - (set_local $3 - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (if - (i32.gt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $iii) - (call $~lib/array/Array#__get - (get_local $0) - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (call $~lib/array/Array#__get - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + block $break|0 + block + i32.const 1 + set_local $2 + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_local $0 + i32.load offset=4 + end + set_local $3 + end + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + block (result i32) + i32.const 2 + set_global $~argc + get_local $0 + get_local $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + get_local $0 + get_local $2 + call $~lib/array/Array#__get + get_local $1 + call_indirect (type $iii) + end + i32.const 0 + i32.gt_s + if + i32.const 0 + return + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $std/array/assertSorted (; 153 ;) (type $iiv) (param $0 i32) (param $1 i32) - (if - (i32.eqz - (call $std/array/isSorted - (call $~lib/array/Array#sort - (get_local $0) - (get_local $1) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 688) - (i32.const 2) - ) - (unreachable) - ) - ) + get_local $0 + get_local $1 + call $~lib/array/Array#sort + get_local $1 + call $std/array/isSorted + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 688 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/string/String.__eq (; 154 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.ne - (get_local $3) - (i32.load - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $3) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.const 0 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $3 + call $~lib/internal/string/compareUnsafe + i32.eqz ) (func $~lib/string/String.__ne (; 155 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.eqz - (call $~lib/string/String.__eq - (get_local $0) - (get_local $1) - ) - ) + get_local $0 + get_local $1 + call $~lib/string/String.__eq + i32.eqz ) (func $std/array/isArraysEqual (; 156 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $2 - (block $~lib/array/Array#get:length|inlined.1 (result i32) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (if - (i32.ne - (get_local $2) - (block $~lib/array/Array#get:length|inlined.3 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - ) - ) - (block $break|0 - (set_local $3 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $3) - (get_local $2) - ) - ) - ) - (if - (call $~lib/string/String.__ne - (call $~lib/array/Array#__get - (get_local $0) - (get_local $3) - ) - (call $~lib/array/Array#__get - (get_local $1) - (get_local $3) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + get_local $2 + i32.eqz + if + block $~lib/array/Array#get:length|inlined.1 (result i32) + get_local $0 + i32.load offset=4 + end + set_local $2 + get_local $2 + block $~lib/array/Array#get:length|inlined.3 (result i32) + get_local $1 + i32.load offset=4 + end + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + end + block $break|0 + i32.const 0 + set_local $3 + loop $repeat|0 + get_local $3 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + get_local $0 + get_local $3 + call $~lib/array/Array#__get + get_local $1 + get_local $3 + call $~lib/array/Array#__get + call $~lib/string/String.__ne + if + i32.const 0 + return + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $~lib/array/Array#constructor (; 157 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.11 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.11 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/internal/string/allocateUnsafe (; 158 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (i32.gt_s - (get_local $0) - (i32.const 0) - ) - ) - (i32.le_s - (get_local $0) - (get_global $~lib/internal/string/MAX_LENGTH) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 14) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $2 - (block $~lib/memory/memory.allocate|inlined.5 (result i32) - (set_local $1 - (i32.add - (get_global $~lib/internal/string/HEADER_SIZE) - (i32.shl - (get_local $0) - (i32.const 1) - ) - ) - ) - (br $~lib/memory/memory.allocate|inlined.5 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - (i32.store - (get_local $2) - (get_local $0) - ) - (get_local $2) + get_local $0 + i32.const 0 + i32.gt_s + tee_local $1 + if (result i32) + get_local $0 + get_global $~lib/internal/string/MAX_LENGTH + i32.le_s + else + get_local $1 + end + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 14 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.5 (result i32) + get_global $~lib/internal/string/HEADER_SIZE + get_local $0 + i32.const 1 + i32.shl + i32.add + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.5 + end + set_local $2 + get_local $2 + get_local $0 + i32.store + get_local $2 ) (func $~lib/string/String#charAt (; 159 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1712) - (i32.const 58) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.load - (get_local $0) - ) - ) - (return - (i32.const 1560) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (i32.const 1) - ) - ) - (i32.store16 offset=4 - (get_local $2) - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (get_local $2) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1712 + i32.const 58 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + i32.load + i32.ge_u + if + i32.const 1560 + return + end + i32.const 1 + call $~lib/internal/string/allocateUnsafe + set_local $2 + get_local $2 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + i32.store16 offset=4 + get_local $2 ) (func $~lib/internal/string/copyUnsafe (; 160 ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (block $~lib/memory/memory.copy|inlined.6 - (set_local $5 - (i32.add - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (set_local $6 - (i32.add - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $5) - (get_local $6) - (get_local $7) - ) - ) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $5 + get_local $2 + get_local $3 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $6 + get_local $4 + i32.const 1 + i32.shl + set_local $7 + get_local $5 + get_local $6 + get_local $7 + call $~lib/internal/memory/memmove ) (func $~lib/string/String#concat (; 161 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1712) - (i32.const 110) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (i32.const 1800) - ) - ) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (set_local $4 - (i32.add - (get_local $2) - (get_local $3) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $5 - (call $~lib/internal/string/allocateUnsafe - (get_local $4) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $5) - (i32.const 0) - (get_local $0) - (i32.const 0) - (get_local $2) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $5) - (get_local $2) - (get_local $1) - (i32.const 0) - (get_local $3) - ) - (get_local $5) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1712 + i32.const 110 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.eq + if + i32.const 1800 + set_local $1 + end + get_local $0 + i32.load + set_local $2 + get_local $1 + i32.load + set_local $3 + get_local $2 + get_local $3 + i32.add + set_local $4 + get_local $4 + i32.const 0 + i32.eq + if + i32.const 1560 + return + end + get_local $4 + call $~lib/internal/string/allocateUnsafe + set_local $5 + get_local $5 + i32.const 0 + get_local $0 + i32.const 0 + get_local $2 + call $~lib/internal/string/copyUnsafe + get_local $5 + get_local $2 + get_local $1 + i32.const 0 + get_local $3 + call $~lib/internal/string/copyUnsafe + get_local $5 ) (func $~lib/string/String.__concat (; 162 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (if - (i32.eqz - (get_local $0) - ) - (set_local $0 - (i32.const 1800) - ) - ) - (call $~lib/string/String#concat - (get_local $0) - (get_local $1) - ) + get_local $0 + i32.eqz + if + i32.const 1800 + set_local $0 + end + get_local $0 + get_local $1 + call $~lib/string/String#concat ) (func $std/array/createRandomString (; 163 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) - (set_local $1 - (i32.const 1560) - ) - (block $break|0 - (set_local $2 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (call $~lib/string/String.__concat - (get_local $1) - (call $~lib/string/String#charAt - (get_global $std/array/charset) - (i32.trunc_s/f64 - (block $~lib/math/NativeMath.floor|inlined.0 (result f64) - (set_local $3 - (f64.mul - (call $~lib/math/NativeMath.random) - (f64.convert_s/i32 - (i32.load - (get_global $std/array/charset) - ) - ) - ) - ) - (f64.floor - (get_local $3) - ) - ) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + i32.const 1560 + set_local $1 + block $break|0 + i32.const 0 + set_local $2 + loop $repeat|0 + get_local $2 + get_local $0 + i32.lt_s + i32.eqz + br_if $break|0 + get_local $1 + get_global $std/array/charset + block $~lib/math/NativeMath.floor|inlined.0 (result f64) + call $~lib/math/NativeMath.random + get_global $std/array/charset + i32.load + f64.convert_s/i32 + f64.mul + set_local $3 + get_local $3 + f64.floor + end + i32.trunc_s/f64 + call $~lib/string/String#charAt + call $~lib/string/String.__concat + set_local $1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) (func $~lib/array/Array#__set (; 164 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 2) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.2 - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 2 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + get_local $1 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 8 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.2 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 + end ) (func $std/array/createRandomStringArray (; 165 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/array/Array#constructor - (i32.const 0) - (get_local $0) - ) - ) - (block $break|0 - (set_local $2 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (block $~lib/array/Array#get:length|inlined.5 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - ) - (call $~lib/array/Array#__set - (get_local $1) - (get_local $2) - (call $std/array/createRandomString - (i32.trunc_s/f64 - (f64.mul - (call $~lib/math/NativeMath.random) - (f64.const 32) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + i32.const 0 + get_local $0 + call $~lib/array/Array#constructor + set_local $1 + block $break|0 + i32.const 0 + set_local $2 + loop $repeat|0 + get_local $2 + block $~lib/array/Array#get:length|inlined.5 (result i32) + get_local $1 + i32.load offset=4 + end + i32.lt_s + i32.eqz + br_if $break|0 + get_local $1 + get_local $2 + call $~lib/math/NativeMath.random + f64.const 32 + f64.mul + i32.trunc_s/f64 + call $std/array/createRandomString + call $~lib/array/Array#__set + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) (func $start~anonymous|55 (; 166 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.sub - (call $~lib/string/String.__gt - (get_local $0) - (get_local $1) - ) - (call $~lib/string/String.__lt - (get_local $0) - (get_local $1) - ) - ) + get_local $0 + get_local $1 + call $~lib/string/String.__gt + get_local $0 + get_local $1 + call $~lib/string/String.__lt + i32.sub ) (func $~lib/string/String#substring (; 167 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -13145,152 +9746,106 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1712) - (i32.const 269) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (select - (tee_local $4 - (select - (tee_local $4 - (get_local $1) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $7 - (select - (tee_local $4 - (select - (tee_local $4 - (get_local $2) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $8 - (select - (tee_local $4 - (get_local $6) - ) - (tee_local $5 - (get_local $7) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $9 - (select - (tee_local $4 - (get_local $6) - ) - (tee_local $5 - (get_local $7) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $9) - (get_local $8) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 1560) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (get_local $8) - ) - ) - (i32.eq - (get_local $9) - (i32.load - (get_local $0) - ) - ) - (get_local $4) - ) - (return - (get_local $0) - ) - ) - (set_local $10 - (call $~lib/internal/string/allocateUnsafe - (get_local $3) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $10) - (i32.const 0) - (get_local $0) - (get_local $8) - (get_local $3) - ) - (get_local $10) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1712 + i32.const 269 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + set_local $3 + get_local $1 + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $6 + get_local $2 + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $7 + get_local $6 + tee_local $4 + get_local $7 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $8 + get_local $6 + tee_local $4 + get_local $7 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $9 + get_local $9 + get_local $8 + i32.sub + set_local $3 + get_local $3 + i32.eqz + if + i32.const 1560 + return + end + get_local $8 + i32.eqz + tee_local $4 + if (result i32) + get_local $9 + get_local $0 + i32.load + i32.eq + else + get_local $4 + end + if + get_local $0 + return + end + get_local $3 + call $~lib/internal/string/allocateUnsafe + set_local $10 + get_local $10 + i32.const 0 + get_local $0 + get_local $8 + get_local $3 + call $~lib/internal/string/copyUnsafe + get_local $10 ) (func $~lib/array/Array#join (; 168 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13304,362 +9859,266 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (select - (i32.const 1840) - (i32.const 1856) - (i32.and - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load8_u offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 0) - ) - ) - ) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $8 - (i32.const 5) - ) - (set_local $9 - (i32.add - (i32.mul - (i32.add - (get_local $8) - (get_local $6) - ) - (get_local $2) - ) - (get_local $8) - ) - ) - (set_local $10 - (call $~lib/internal/string/allocateUnsafe - (get_local $9) - ) - ) - (set_local $11 - (i32.const 0) - ) - (block $break|0 - (set_local $12 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $12) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) - (i32.load8_u offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $12) - (i32.const 0) - ) - ) - ) - ) - ) - (set_local $8 - (i32.add - (i32.const 4) - (i32.eqz - (i32.and - (get_local $4) - (i32.const 1) - ) - ) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $10) - (get_local $11) - (select - (i32.const 1840) - (i32.const 1856) - (i32.and - (get_local $4) - (i32.const 1) - ) - ) - (i32.const 0) - (get_local $8) - ) - (set_local $11 - (i32.add - (get_local $11) - (get_local $8) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $10) - (get_local $11) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $11 - (i32.add - (get_local $11) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $12 - (i32.add - (get_local $12) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) - (i32.load8_u offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 0) - ) - ) - ) - ) - ) - (set_local $8 - (i32.add - (i32.const 4) - (i32.eqz - (i32.and - (get_local $4) - (i32.const 1) - ) - ) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $10) - (get_local $11) - (select - (i32.const 1840) - (i32.const 1856) - (i32.and - (get_local $4) - (i32.const 1) - ) - ) - (i32.const 0) - (get_local $8) - ) - (set_local $11 - (i32.add - (get_local $11) - (get_local $8) - ) - ) - (set_local $12 - (get_local $10) - ) - (if - (i32.gt_s - (get_local $9) - (get_local $11) - ) - (block - (set_local $12 - (call $~lib/string/String#substring - (get_local $10) - (i32.const 0) - (get_local $11) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.0 - (block - (if - (i32.eqz - (get_local $10) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.4 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $10) - ) - (br $~lib/memory/memory.free|inlined.4) - ) - ) - ) - ) - ) - ) - (return - (get_local $12) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + i32.const 1840 + i32.const 1856 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=8 + end + i32.const 1 + i32.and + select + return + end + i32.const 5 + set_local $8 + get_local $8 + get_local $6 + i32.add + get_local $2 + i32.mul + get_local $8 + i32.add + set_local $9 + get_local $9 + call $~lib/internal/string/allocateUnsafe + set_local $10 + i32.const 0 + set_local $11 + block $break|0 + i32.const 0 + set_local $12 + loop $repeat|0 + get_local $12 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + get_local $5 + get_local $12 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=8 + end + set_local $4 + i32.const 4 + get_local $4 + i32.const 1 + i32.and + i32.eqz + i32.add + set_local $8 + get_local $10 + get_local $11 + i32.const 1840 + i32.const 1856 + get_local $4 + i32.const 1 + i32.and + select + i32.const 0 + get_local $8 + call $~lib/internal/string/copyUnsafe + get_local $11 + get_local $8 + i32.add + set_local $11 + get_local $7 + if + get_local $10 + get_local $11 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $11 + get_local $6 + i32.add + set_local $11 + end + end + get_local $12 + i32.const 1 + i32.add + set_local $12 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + get_local $5 + get_local $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=8 + end + set_local $4 + i32.const 4 + get_local $4 + i32.const 1 + i32.and + i32.eqz + i32.add + set_local $8 + get_local $10 + get_local $11 + i32.const 1840 + i32.const 1856 + get_local $4 + i32.const 1 + i32.and + select + i32.const 0 + get_local $8 + call $~lib/internal/string/copyUnsafe + get_local $11 + get_local $8 + i32.add + set_local $11 + get_local $10 + set_local $12 + get_local $9 + get_local $11 + i32.gt_s + if + get_local $10 + i32.const 0 + get_local $11 + call $~lib/string/String#substring + set_local $12 + block $~lib/internal/string/freeUnsafe|inlined.0 + block + get_local $10 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.4 + block + get_local $10 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.4 + unreachable + end + unreachable + end + end + end + end + get_local $12 + return ) (func $~lib/internal/number/decimalCount32 (; 169 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.lt_u - (get_local $0) - (i32.const 100000) - ) - (block - (if - (i32.lt_u - (get_local $0) - (i32.const 100) - ) - (return - (select - (i32.const 1) - (i32.const 2) - (i32.lt_u - (get_local $0) - (i32.const 10) - ) - ) - ) - (block - (set_local $1 - (select - (i32.const 4) - (i32.const 5) - (i32.lt_u - (get_local $0) - (i32.const 10000) - ) - ) - ) - (return - (select - (i32.const 3) - (get_local $1) - (i32.lt_u - (get_local $0) - (i32.const 1000) - ) - ) - ) - ) - ) - (unreachable) - ) - (block - (if - (i32.lt_u - (get_local $0) - (i32.const 10000000) - ) - (return - (select - (i32.const 6) - (i32.const 7) - (i32.lt_u - (get_local $0) - (i32.const 1000000) - ) - ) - ) - (block - (set_local $1 - (select - (i32.const 9) - (i32.const 10) - (i32.lt_u - (get_local $0) - (i32.const 1000000000) - ) - ) - ) - (return - (select - (i32.const 8) - (get_local $1) - (i32.lt_u - (get_local $0) - (i32.const 100000000) - ) - ) - ) - ) - ) - (unreachable) - ) - ) - (unreachable) + get_local $0 + i32.const 100000 + i32.lt_u + if + get_local $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + i32.const 2 + get_local $0 + i32.const 10 + i32.lt_u + select + return + else + i32.const 4 + i32.const 5 + get_local $0 + i32.const 10000 + i32.lt_u + select + set_local $1 + i32.const 3 + get_local $1 + get_local $0 + i32.const 1000 + i32.lt_u + select + return + end + unreachable + unreachable + else + get_local $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + i32.const 7 + get_local $0 + i32.const 1000000 + i32.lt_u + select + return + else + i32.const 9 + i32.const 10 + get_local $0 + i32.const 1000000000 + i32.lt_u + select + set_local $1 + i32.const 8 + get_local $1 + get_local $0 + i32.const 100000000 + i32.lt_u + select + return + end + unreachable + unreachable + end + unreachable + unreachable ) (func $~lib/internal/number/utoa32_lut (; 170 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -13669,347 +10128,248 @@ (local $7 i32) (local $8 i64) (local $9 i64) - (set_local $3 - (i32.load - (block $~lib/internal/number/DIGITS|inlined.0 (result i32) - (i32.const 2488) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 10000) - ) - (block - (block - (set_local $4 - (i32.div_u - (get_local $1) - (i32.const 10000) - ) - ) - (set_local $5 - (i32.rem_u - (get_local $1) - (i32.const 10000) - ) - ) - (set_local $1 - (get_local $4) - ) - (set_local $6 - (i32.div_u - (get_local $5) - (i32.const 100) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $5) - (i32.const 100) - ) - ) - (set_local $8 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (i64.or - (get_local $8) - (i64.shl - (get_local $9) - (i64.const 32) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 100) - ) - (block - (set_local $7 - (i32.div_u - (get_local $1) - (i32.const 100) - ) - ) - (set_local $6 - (i32.rem_u - (get_local $1) - (i32.const 100) - ) - ) - (set_local $1 - (get_local $7) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 10) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i32) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (get_global $~lib/internal/string/CharCode._0) - (get_local $1) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) + block $~lib/internal/number/DIGITS|inlined.0 (result i32) + i32.const 2488 + end + i32.load + set_local $3 + block $break|0 + loop $continue|0 + get_local $1 + i32.const 10000 + i32.ge_u + if + block + get_local $1 + i32.const 10000 + i32.div_u + set_local $4 + get_local $1 + i32.const 10000 + i32.rem_u + set_local $5 + get_local $4 + set_local $1 + get_local $5 + i32.const 100 + i32.div_u + set_local $6 + get_local $5 + i32.const 100 + i32.rem_u + set_local $7 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $8 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) + get_local $3 + get_local $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $9 + get_local $2 + i32.const 4 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $8 + get_local $9 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + end + br $continue|0 + end + end + end + get_local $1 + i32.const 100 + i32.ge_u + if + get_local $1 + i32.const 100 + i32.div_u + set_local $7 + get_local $1 + i32.const 100 + i32.rem_u + set_local $6 + get_local $7 + set_local $1 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $5 + i32.store offset=4 + end + get_local $1 + i32.const 10 + i32.ge_u + if + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i32) + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $5 + i32.store offset=4 + else + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_global $~lib/internal/string/CharCode._0 + get_local $1 + i32.add + set_local $5 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $5 + i32.store16 offset=4 + end ) (func $~lib/internal/number/itoa32 (; 171 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (get_local $0) - ) - (return - (i32.const 1968) - ) - ) - (set_local $1 - (i32.lt_s - (get_local $0) - (i32.const 0) - ) - ) - (if - (get_local $1) - (set_local $0 - (i32.sub - (i32.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $0) - ) - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/internal/string/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.0 - (call $~lib/internal/number/utoa32_lut - (get_local $3) - (get_local $0) - (get_local $2) - ) - ) - (if - (get_local $1) - (i32.store16 offset=4 - (get_local $3) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - ) - (get_local $3) + get_local $0 + i32.eqz + if + i32.const 1968 + return + end + get_local $0 + i32.const 0 + i32.lt_s + set_local $1 + get_local $1 + if + i32.const 0 + get_local $0 + i32.sub + set_local $0 + end + get_local $0 + call $~lib/internal/number/decimalCount32 + get_local $1 + i32.add + set_local $2 + get_local $2 + call $~lib/internal/string/allocateUnsafe + set_local $3 + block $~lib/internal/number/utoa32_core|inlined.0 + get_local $3 + get_local $0 + get_local $2 + call $~lib/internal/number/utoa32_lut + end + get_local $1 + if + get_local $3 + get_global $~lib/internal/string/CharCode.MINUS + i32.store16 offset=4 + end + get_local $3 ) (func $~lib/internal/number/itoa (; 172 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/number/itoa32 - (get_local $0) - ) - ) + get_local $0 + call $~lib/internal/number/itoa32 + return ) (func $~lib/internal/number/itoa_stream (; 173 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode._0) - ) - (return - (i32.const 1) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - ) - (if - (get_local $4) - (set_local $2 - (i32.sub - (i32.const 0) - (get_local $2) - ) - ) - ) - (set_local $3 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $2) - ) - (get_local $4) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.1 - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $2) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - ) - (get_local $3) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i32.eqz + if + get_local $0 + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + i32.const 1 + return + end + i32.const 0 + set_local $3 + get_local $2 + i32.const 0 + i32.lt_s + set_local $4 + get_local $4 + if + i32.const 0 + get_local $2 + i32.sub + set_local $2 + end + get_local $2 + call $~lib/internal/number/decimalCount32 + get_local $4 + i32.add + set_local $3 + block $~lib/internal/number/utoa32_core|inlined.1 + get_local $0 + get_local $2 + get_local $3 + call $~lib/internal/number/utoa32_lut + end + get_local $4 + if + get_local $0 + get_global $~lib/internal/string/CharCode.MINUS + i32.store16 offset=4 + end + get_local $3 ) (func $~lib/array/Array#join (; 174 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -14022,299 +10382,219 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (call $~lib/internal/number/itoa - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.23 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (i32.add - (i32.mul - (i32.add - (i32.const 11) - (get_local $6) - ) - (get_local $2) - ) - (i32.const 11) - ) - ) - (set_local $9 - (call $~lib/internal/string/allocateUnsafe - (get_local $8) - ) - ) - (set_local $10 - (i32.const 0) - ) - (block $break|0 - (set_local $11 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $11) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.24 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $11) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.25 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (set_local $11 - (get_local $9) - ) - (if - (i32.gt_s - (get_local $8) - (get_local $10) - ) - (block - (set_local $11 - (call $~lib/string/String#substring - (get_local $9) - (i32.const 0) - (get_local $10) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.1 - (block - (if - (i32.eqz - (get_local $9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.5 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $9) - ) - (br $~lib/memory/memory.free|inlined.5) - ) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.23 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + call $~lib/internal/number/itoa + return + end + i32.const 11 + get_local $6 + i32.add + get_local $2 + i32.mul + i32.const 11 + i32.add + set_local $8 + get_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $9 + i32.const 0 + set_local $10 + block $break|0 + i32.const 0 + set_local $11 + loop $repeat|0 + get_local $11 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.24 (result i32) + get_local $5 + get_local $11 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $7 + if + get_local $9 + get_local $10 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $6 + i32.add + set_local $10 + end + end + get_local $11 + i32.const 1 + i32.add + set_local $11 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.25 (result i32) + get_local $5 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $9 + set_local $11 + get_local $8 + get_local $10 + i32.gt_s + if + get_local $9 + i32.const 0 + get_local $10 + call $~lib/string/String#substring + set_local $11 + block $~lib/internal/string/freeUnsafe|inlined.1 + block + get_local $9 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.5 + block + get_local $9 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.5 + unreachable + end + unreachable + end + end + end + end + get_local $11 + return ) (func $~lib/internal/number/utoa32 (; 175 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $0) - ) - (return - (i32.const 1968) - ) - ) - (set_local $1 - (call $~lib/internal/number/decimalCount32 - (get_local $0) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $1) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.2 - (call $~lib/internal/number/utoa32_lut - (get_local $2) - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) + get_local $0 + i32.eqz + if + i32.const 1968 + return + end + get_local $0 + call $~lib/internal/number/decimalCount32 + set_local $1 + get_local $1 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $~lib/internal/number/utoa32_core|inlined.2 + get_local $2 + get_local $0 + get_local $1 + call $~lib/internal/number/utoa32_lut + end + get_local $2 ) (func $~lib/internal/number/itoa (; 176 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/number/utoa32 - (get_local $0) - ) - ) + get_local $0 + call $~lib/internal/number/utoa32 + return ) (func $~lib/internal/number/itoa_stream (; 177 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode._0) - ) - (return - (i32.const 1) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (set_local $3 - (call $~lib/internal/number/decimalCount32 - (get_local $2) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.3 - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $2) - (get_local $3) - ) - ) - (get_local $3) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i32.eqz + if + get_local $0 + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + i32.const 1 + return + end + i32.const 0 + set_local $3 + get_local $2 + call $~lib/internal/number/decimalCount32 + set_local $3 + block $~lib/internal/number/utoa32_core|inlined.3 + get_local $0 + get_local $2 + get_local $3 + call $~lib/internal/number/utoa32_lut + end + get_local $3 ) (func $~lib/array/Array#join (; 178 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -14327,229 +10607,168 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (call $~lib/internal/number/itoa - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (i32.add - (i32.mul - (i32.add - (i32.const 10) - (get_local $6) - ) - (get_local $2) - ) - (i32.const 10) - ) - ) - (set_local $9 - (call $~lib/internal/string/allocateUnsafe - (get_local $8) - ) - ) - (set_local $10 - (i32.const 0) - ) - (block $break|0 - (set_local $11 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $11) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $11) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.7 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (set_local $11 - (get_local $9) - ) - (if - (i32.gt_s - (get_local $8) - (get_local $10) - ) - (block - (set_local $11 - (call $~lib/string/String#substring - (get_local $9) - (i32.const 0) - (get_local $10) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.2 - (block - (if - (i32.eqz - (get_local $9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.6 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $9) - ) - (br $~lib/memory/memory.free|inlined.6) - ) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + call $~lib/internal/number/itoa + return + end + i32.const 10 + get_local $6 + i32.add + get_local $2 + i32.mul + i32.const 10 + i32.add + set_local $8 + get_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $9 + i32.const 0 + set_local $10 + block $break|0 + i32.const 0 + set_local $11 + loop $repeat|0 + get_local $11 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i32) + get_local $5 + get_local $11 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $7 + if + get_local $9 + get_local $10 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $6 + i32.add + set_local $10 + end + end + get_local $11 + i32.const 1 + i32.add + set_local $11 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.7 (result i32) + get_local $5 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $9 + set_local $11 + get_local $8 + get_local $10 + i32.gt_s + if + get_local $9 + i32.const 0 + get_local $10 + call $~lib/string/String#substring + set_local $11 + block $~lib/internal/string/freeUnsafe|inlined.2 + block + get_local $9 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.6 + block + get_local $9 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.6 + unreachable + end + unreachable + end + end + end + end + get_local $11 + return ) (func $~lib/builtins/isFinite (; 179 ;) (type $Fi) (param $0 f64) (result i32) - (f64.eq - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.eq ) (func $~lib/internal/number/genDigits (; 180 ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) @@ -14568,712 +10787,540 @@ (local $20 i64) (local $21 i32) (local $22 i32) - (set_local $7 - (i32.sub - (i32.const 0) - (get_local $4) - ) - ) - (set_local $8 - (i64.shl - (i64.const 1) - (i64.extend_s/i32 - (get_local $7) - ) - ) - ) - (set_local $9 - (i64.sub - (get_local $8) - (i64.const 1) - ) - ) - (set_local $10 - (i64.sub - (get_local $3) - (get_local $1) - ) - ) - (set_local $11 - (get_local $4) - ) - (set_local $12 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.extend_s/i32 - (get_local $7) - ) - ) - ) - ) - (set_local $13 - (i64.and - (get_local $3) - (get_local $9) - ) - ) - (set_local $14 - (call $~lib/internal/number/decimalCount32 - (get_local $12) - ) - ) - (set_local $15 - (get_local $6) - ) - (set_local $16 - (i32.load - (block $~lib/internal/number/POWERS10|inlined.0 (result i32) - (i32.const 4272) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.gt_s - (get_local $14) - (i32.const 0) - ) - (block - (block - (block $break|1 - (block $case10|1 - (block $case9|1 - (block $case8|1 - (block $case7|1 - (block $case6|1 - (block $case5|1 - (block $case4|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (block $case0|1 - (set_local $18 - (get_local $14) - ) - (br_if $case0|1 - (i32.eq - (get_local $18) - (i32.const 10) - ) - ) - (br_if $case1|1 - (i32.eq - (get_local $18) - (i32.const 9) - ) - ) - (br_if $case2|1 - (i32.eq - (get_local $18) - (i32.const 8) - ) - ) - (br_if $case3|1 - (i32.eq - (get_local $18) - (i32.const 7) - ) - ) - (br_if $case4|1 - (i32.eq - (get_local $18) - (i32.const 6) - ) - ) - (br_if $case5|1 - (i32.eq - (get_local $18) - (i32.const 5) - ) - ) - (br_if $case6|1 - (i32.eq - (get_local $18) - (i32.const 4) - ) - ) - (br_if $case7|1 - (i32.eq - (get_local $18) - (i32.const 3) - ) - ) - (br_if $case8|1 - (i32.eq - (get_local $18) - (i32.const 2) - ) - ) - (br_if $case9|1 - (i32.eq - (get_local $18) - (i32.const 1) - ) - ) - (br $case10|1) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 1000000000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 1000000000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 100000000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 100000000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 10000000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 10000000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 1000000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 1000000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 100000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 100000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 10000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 10000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 1000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 1000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 100) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 100) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 10) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 10) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (get_local $12) - ) - (set_local $12 - (i32.const 0) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.const 0) - ) - (br $break|1) - ) - ) - (if - (i32.or - (get_local $17) - (get_local $15) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (block (result i32) - (set_local $15 - (i32.add - (tee_local $18 - (get_local $15) - ) - (i32.const 1) - ) - ) - (get_local $18) - ) - (i32.const 1) - ) - ) - (i32.add - (get_global $~lib/internal/string/CharCode._0) - (i32.and - (get_local $17) - (i32.const 65535) - ) - ) - ) - ) - (set_local $14 - (i32.sub - (get_local $14) - (i32.const 1) - ) - ) - (set_local $19 - (i64.add - (i64.shl - (i64.extend_u/i32 - (get_local $12) - ) - (i64.extend_s/i32 - (get_local $7) - ) - ) - (get_local $13) - ) - ) - (if - (i64.le_u - (get_local $19) - (get_local $5) - ) - (block - (set_global $~lib/internal/number/_K - (i32.add - (get_global $~lib/internal/number/_K) - (get_local $14) - ) - ) - (block $~lib/internal/number/grisuRound|inlined.0 - (set_local $20 - (i64.shl - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $16) - (i32.shl - (get_local $14) - (i32.const 2) - ) - ) - ) - ) - (i64.extend_s/i32 - (get_local $7) - ) - ) - ) - (set_local $18 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $15) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - (set_local $21 - (i32.load16_u offset=4 - (get_local $18) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (if (result i32) - (tee_local $22 - (if (result i32) - (tee_local $22 - (i64.lt_u - (get_local $19) - (get_local $10) - ) - ) - (i64.ge_u - (i64.sub - (get_local $5) - (get_local $19) - ) - (get_local $20) - ) - (get_local $22) - ) - ) - (if (result i32) - (tee_local $22 - (i64.lt_u - (i64.add - (get_local $19) - (get_local $20) - ) - (get_local $10) - ) - ) - (get_local $22) - (i64.gt_u - (i64.sub - (get_local $10) - (get_local $19) - ) - (i64.sub - (i64.add - (get_local $19) - (get_local $20) - ) - (get_local $10) - ) - ) - ) - (get_local $22) - ) - (block - (block - (set_local $21 - (i32.sub - (get_local $21) - (i32.const 1) - ) - ) - (set_local $19 - (i64.add - (get_local $19) - (get_local $20) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (i32.store16 offset=4 - (get_local $18) - (get_local $21) - ) - ) - (return - (get_local $15) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.const 1) - (block - (block - (set_local $13 - (i64.mul - (get_local $13) - (i64.const 10) - ) - ) - (set_local $5 - (i64.mul - (get_local $5) - (i64.const 10) - ) - ) - (set_local $19 - (i64.shr_u - (get_local $13) - (i64.extend_s/i32 - (get_local $7) - ) - ) - ) - (if - (i64.ne - (i64.or - (get_local $19) - (i64.extend_s/i32 - (get_local $15) - ) - ) - (i64.const 0) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (block (result i32) - (set_local $15 - (i32.add - (tee_local $17 - (get_local $15) - ) - (i32.const 1) - ) - ) - (get_local $17) - ) - (i32.const 1) - ) - ) - (i32.add - (get_global $~lib/internal/string/CharCode._0) - (i32.and - (i32.wrap/i64 - (get_local $19) - ) - (i32.const 65535) - ) - ) - ) - ) - (set_local $13 - (i64.and - (get_local $13) - (get_local $9) - ) - ) - (set_local $14 - (i32.sub - (get_local $14) - (i32.const 1) - ) - ) - (if - (i64.lt_u - (get_local $13) - (get_local $5) - ) - (block - (set_global $~lib/internal/number/_K - (i32.add - (get_global $~lib/internal/number/_K) - (get_local $14) - ) - ) - (set_local $10 - (i64.mul - (get_local $10) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i64) - (set_local $17 - (i32.sub - (i32.const 0) - (get_local $14) - ) - ) - (i64.load32_u offset=8 - (i32.add - (get_local $16) - (i32.shl - (get_local $17) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (block $~lib/internal/number/grisuRound|inlined.1 - (set_local $17 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $15) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - (set_local $21 - (i32.load16_u offset=4 - (get_local $17) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (if (result i32) - (tee_local $18 - (if (result i32) - (tee_local $18 - (i64.lt_u - (get_local $13) - (get_local $10) - ) - ) - (i64.ge_u - (i64.sub - (get_local $5) - (get_local $13) - ) - (get_local $8) - ) - (get_local $18) - ) - ) - (if (result i32) - (tee_local $18 - (i64.lt_u - (i64.add - (get_local $13) - (get_local $8) - ) - (get_local $10) - ) - ) - (get_local $18) - (i64.gt_u - (i64.sub - (get_local $10) - (get_local $13) - ) - (i64.sub - (i64.add - (get_local $13) - (get_local $8) - ) - (get_local $10) - ) - ) - ) - (get_local $18) - ) - (block - (block - (set_local $21 - (i32.sub - (get_local $21) - (i32.const 1) - ) - ) - (set_local $13 - (i64.add - (get_local $13) - (get_local $8) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (i32.store16 offset=4 - (get_local $17) - (get_local $21) - ) - ) - (return - (get_local $15) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (get_local $15) + i32.const 0 + get_local $4 + i32.sub + set_local $7 + i64.const 1 + get_local $7 + i64.extend_s/i32 + i64.shl + set_local $8 + get_local $8 + i64.const 1 + i64.sub + set_local $9 + get_local $3 + get_local $1 + i64.sub + set_local $10 + get_local $4 + set_local $11 + get_local $3 + get_local $7 + i64.extend_s/i32 + i64.shr_u + i32.wrap/i64 + set_local $12 + get_local $3 + get_local $9 + i64.and + set_local $13 + get_local $12 + call $~lib/internal/number/decimalCount32 + set_local $14 + get_local $6 + set_local $15 + block $~lib/internal/number/POWERS10|inlined.0 (result i32) + i32.const 4272 + end + i32.load + set_local $16 + block $break|0 + loop $continue|0 + get_local $14 + i32.const 0 + i32.gt_s + if + block + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + get_local $14 + set_local $18 + get_local $18 + i32.const 10 + i32.eq + br_if $case0|1 + get_local $18 + i32.const 9 + i32.eq + br_if $case1|1 + get_local $18 + i32.const 8 + i32.eq + br_if $case2|1 + get_local $18 + i32.const 7 + i32.eq + br_if $case3|1 + get_local $18 + i32.const 6 + i32.eq + br_if $case4|1 + get_local $18 + i32.const 5 + i32.eq + br_if $case5|1 + get_local $18 + i32.const 4 + i32.eq + br_if $case6|1 + get_local $18 + i32.const 3 + i32.eq + br_if $case7|1 + get_local $18 + i32.const 2 + i32.eq + br_if $case8|1 + get_local $18 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + block + get_local $12 + i32.const 1000000000 + i32.div_u + set_local $17 + get_local $12 + i32.const 1000000000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 100000000 + i32.div_u + set_local $17 + get_local $12 + i32.const 100000000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 10000000 + i32.div_u + set_local $17 + get_local $12 + i32.const 10000000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 1000000 + i32.div_u + set_local $17 + get_local $12 + i32.const 1000000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 100000 + i32.div_u + set_local $17 + get_local $12 + i32.const 100000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 10000 + i32.div_u + set_local $17 + get_local $12 + i32.const 10000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 1000 + i32.div_u + set_local $17 + get_local $12 + i32.const 1000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 100 + i32.div_u + set_local $17 + get_local $12 + i32.const 100 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 10 + i32.div_u + set_local $17 + get_local $12 + i32.const 10 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + set_local $17 + i32.const 0 + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + i32.const 0 + set_local $17 + br $break|1 + unreachable + end + unreachable + end + get_local $17 + get_local $15 + i32.or + if + get_local $0 + block (result i32) + get_local $15 + tee_local $18 + i32.const 1 + i32.add + set_local $15 + get_local $18 + end + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode._0 + get_local $17 + i32.const 65535 + i32.and + i32.add + i32.store16 offset=4 + end + get_local $14 + i32.const 1 + i32.sub + set_local $14 + get_local $12 + i64.extend_u/i32 + get_local $7 + i64.extend_s/i32 + i64.shl + get_local $13 + i64.add + set_local $19 + get_local $19 + get_local $5 + i64.le_u + if + get_global $~lib/internal/number/_K + get_local $14 + i32.add + set_global $~lib/internal/number/_K + block $~lib/internal/number/grisuRound|inlined.0 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) + get_local $16 + get_local $14 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + get_local $7 + i64.extend_s/i32 + i64.shl + set_local $20 + get_local $0 + get_local $15 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + set_local $18 + get_local $18 + i32.load16_u offset=4 + set_local $21 + block $break|2 + loop $continue|2 + get_local $19 + get_local $10 + i64.lt_u + tee_local $22 + if (result i32) + get_local $5 + get_local $19 + i64.sub + get_local $20 + i64.ge_u + else + get_local $22 + end + tee_local $22 + if (result i32) + get_local $19 + get_local $20 + i64.add + get_local $10 + i64.lt_u + tee_local $22 + if (result i32) + get_local $22 + else + get_local $10 + get_local $19 + i64.sub + get_local $19 + get_local $20 + i64.add + get_local $10 + i64.sub + i64.gt_u + end + else + get_local $22 + end + if + block + get_local $21 + i32.const 1 + i32.sub + set_local $21 + get_local $19 + get_local $20 + i64.add + set_local $19 + end + br $continue|2 + end + end + end + get_local $18 + get_local $21 + i32.store16 offset=4 + end + get_local $15 + return + end + end + br $continue|0 + end + end + end + block $break|3 + loop $continue|3 + i32.const 1 + if + block + get_local $13 + i64.const 10 + i64.mul + set_local $13 + get_local $5 + i64.const 10 + i64.mul + set_local $5 + get_local $13 + get_local $7 + i64.extend_s/i32 + i64.shr_u + set_local $19 + get_local $19 + get_local $15 + i64.extend_s/i32 + i64.or + i64.const 0 + i64.ne + if + get_local $0 + block (result i32) + get_local $15 + tee_local $17 + i32.const 1 + i32.add + set_local $15 + get_local $17 + end + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode._0 + get_local $19 + i32.wrap/i64 + i32.const 65535 + i32.and + i32.add + i32.store16 offset=4 + end + get_local $13 + get_local $9 + i64.and + set_local $13 + get_local $14 + i32.const 1 + i32.sub + set_local $14 + get_local $13 + get_local $5 + i64.lt_u + if + get_global $~lib/internal/number/_K + get_local $14 + i32.add + set_global $~lib/internal/number/_K + get_local $10 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i64) + i32.const 0 + get_local $14 + i32.sub + set_local $17 + get_local $16 + get_local $17 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + i64.mul + set_local $10 + block $~lib/internal/number/grisuRound|inlined.1 + get_local $0 + get_local $15 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + set_local $17 + get_local $17 + i32.load16_u offset=4 + set_local $21 + block $break|4 + loop $continue|4 + get_local $13 + get_local $10 + i64.lt_u + tee_local $18 + if (result i32) + get_local $5 + get_local $13 + i64.sub + get_local $8 + i64.ge_u + else + get_local $18 + end + tee_local $18 + if (result i32) + get_local $13 + get_local $8 + i64.add + get_local $10 + i64.lt_u + tee_local $18 + if (result i32) + get_local $18 + else + get_local $10 + get_local $13 + i64.sub + get_local $13 + get_local $8 + i64.add + get_local $10 + i64.sub + i64.gt_u + end + else + get_local $18 + end + if + block + get_local $21 + i32.const 1 + i32.sub + set_local $21 + get_local $13 + get_local $8 + i64.add + set_local $13 + end + br $continue|4 + end + end + end + get_local $17 + get_local $21 + i32.store16 offset=4 + end + get_local $15 + return + end + end + br $continue|3 + end + end + end + get_local $15 ) (func $~lib/internal/number/prettify (; 181 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -15282,478 +11329,352 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.or - (get_global $~lib/internal/string/CharCode.DOT) - (i32.shl - (get_global $~lib/internal/string/CharCode._0) - (i32.const 16) - ) - ) - ) - (return - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $1) - (get_local $2) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.le_s - (get_local $1) - (get_local $3) - ) - ) - (i32.le_s - (get_local $3) - (i32.const 21) - ) - (get_local $4) - ) - (block - (block $break|0 - (set_local $4 - (get_local $1) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $4) - (get_local $3) - ) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (get_global $~lib/internal/string/CharCode._0) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.or - (get_global $~lib/internal/string/CharCode.DOT) - (i32.shl - (get_global $~lib/internal/string/CharCode._0) - (i32.const 16) - ) - ) - ) - (return - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - ) - (i32.le_s - (get_local $3) - (i32.const 21) - ) - (get_local $4) - ) - (block - (set_local $4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - (block $~lib/memory/memory.copy|inlined.7 - (set_local $5 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - (i32.const 2) - ) - ) - (set_local $6 - (i32.add - (get_local $4) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.shl - (i32.sub - (i32.const 0) - (get_local $2) - ) - (i32.const 1) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $5) - (get_local $6) - (get_local $7) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (get_global $~lib/internal/string/CharCode.DOT) - ) - (return - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.lt_s - (i32.const -6) - (get_local $3) - ) - ) - (i32.le_s - (get_local $3) - (i32.const 0) - ) - (get_local $4) - ) - (block - (set_local $4 - (i32.sub - (i32.const 2) - (get_local $3) - ) - ) - (block $~lib/memory/memory.copy|inlined.8 - (set_local $7 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $0) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $7) - (get_local $6) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (get_global $~lib/internal/string/CharCode._0) - (i32.shl - (get_global $~lib/internal/string/CharCode.DOT) - (i32.const 16) - ) - ) - ) - (block $break|1 - (set_local $5 - (i32.const 2) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $5) - (get_local $4) - ) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $5) - (i32.const 1) - ) - ) - (get_global $~lib/internal/string/CharCode._0) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (return - (i32.add - (get_local $1) - (get_local $4) - ) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 1) - ) - (block - (i32.store16 offset=6 - (get_local $0) - (get_global $~lib/internal/string/CharCode.e) - ) - (set_local $1 - (block $~lib/internal/number/genExponent|inlined.0 (result i32) - (set_local $4 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $5 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (set_local $6 - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - ) - (if - (get_local $6) - (set_local $5 - (i32.sub - (i32.const 0) - (get_local $5) - ) - ) - ) - (set_local $7 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $5) - ) - (i32.const 1) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.4 - (call $~lib/internal/number/utoa32_lut - (get_local $4) - (get_local $5) - (get_local $7) - ) - ) - (i32.store16 offset=4 - (get_local $4) - (select - (get_global $~lib/internal/string/CharCode.MINUS) - (get_global $~lib/internal/string/CharCode.PLUS) - (get_local $6) - ) - ) - (get_local $7) - ) - ) - (return - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (block - (set_local $7 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (block $~lib/memory/memory.copy|inlined.9 - (set_local $6 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - (i32.const 4) - ) - ) - (set_local $5 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - (i32.const 2) - ) - ) - (set_local $4 - (i32.sub - (get_local $7) - (i32.const 2) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $6) - (get_local $5) - (get_local $4) - ) - ) - (i32.store16 offset=6 - (get_local $0) - (get_global $~lib/internal/string/CharCode.DOT) - ) - (i32.store16 offset=6 - (i32.add - (get_local $0) - (get_local $7) - ) - (get_global $~lib/internal/string/CharCode.e) - ) - (set_local $1 - (i32.add - (get_local $1) - (block $~lib/internal/number/genExponent|inlined.1 (result i32) - (set_local $4 - (i32.add - (i32.add - (get_local $0) - (get_local $7) - ) - (i32.const 4) - ) - ) - (set_local $5 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (set_local $6 - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - ) - (if - (get_local $6) - (set_local $5 - (i32.sub - (i32.const 0) - (get_local $5) - ) - ) - ) - (set_local $8 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $5) - ) - (i32.const 1) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.5 - (call $~lib/internal/number/utoa32_lut - (get_local $4) - (get_local $5) - (get_local $8) - ) - ) - (i32.store16 offset=4 - (get_local $4) - (select - (get_global $~lib/internal/string/CharCode.MINUS) - (get_global $~lib/internal/string/CharCode.PLUS) - (get_local $6) - ) - ) - (get_local $8) - ) - ) - ) - (return - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - ) - ) - ) - (unreachable) + get_local $2 + i32.eqz + if + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode.DOT + get_global $~lib/internal/string/CharCode._0 + i32.const 16 + i32.shl + i32.or + i32.store offset=4 + get_local $1 + i32.const 2 + i32.add + return + end + get_local $1 + get_local $2 + i32.add + set_local $3 + get_local $1 + get_local $3 + i32.le_s + tee_local $4 + if (result i32) + get_local $3 + i32.const 21 + i32.le_s + else + get_local $4 + end + if + block $break|0 + get_local $1 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + get_local $0 + get_local $4 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode.DOT + get_global $~lib/internal/string/CharCode._0 + i32.const 16 + i32.shl + i32.or + i32.store offset=4 + get_local $3 + i32.const 2 + i32.add + return + else + get_local $3 + i32.const 0 + i32.gt_s + tee_local $4 + if (result i32) + get_local $3 + i32.const 21 + i32.le_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + set_local $4 + block $~lib/memory/memory.copy|inlined.7 + get_local $4 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + i32.const 2 + i32.add + set_local $5 + get_local $4 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $6 + i32.const 0 + get_local $2 + i32.sub + i32.const 1 + i32.shl + set_local $7 + get_local $5 + get_local $6 + get_local $7 + call $~lib/internal/memory/memmove + end + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode.DOT + i32.store16 offset=4 + get_local $1 + i32.const 1 + i32.add + return + else + i32.const -6 + get_local $3 + i32.lt_s + tee_local $4 + if (result i32) + get_local $3 + i32.const 0 + i32.le_s + else + get_local $4 + end + if + i32.const 2 + get_local $3 + i32.sub + set_local $4 + block $~lib/memory/memory.copy|inlined.8 + get_local $0 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + get_local $4 + i32.const 1 + i32.shl + i32.add + set_local $7 + get_local $0 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $6 + get_local $1 + i32.const 1 + i32.shl + set_local $5 + get_local $7 + get_local $6 + get_local $5 + call $~lib/internal/memory/memmove + end + get_local $0 + get_global $~lib/internal/string/CharCode._0 + get_global $~lib/internal/string/CharCode.DOT + i32.const 16 + i32.shl + i32.or + i32.store offset=4 + block $break|1 + i32.const 2 + set_local $5 + loop $repeat|1 + get_local $5 + get_local $4 + i32.lt_s + i32.eqz + br_if $break|1 + get_local $0 + get_local $5 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + get_local $5 + i32.const 1 + i32.add + set_local $5 + br $repeat|1 + unreachable + end + unreachable + end + get_local $1 + get_local $4 + i32.add + return + else + get_local $1 + i32.const 1 + i32.eq + if + get_local $0 + get_global $~lib/internal/string/CharCode.e + i32.store16 offset=6 + block $~lib/internal/number/genExponent|inlined.0 (result i32) + get_local $0 + i32.const 4 + i32.add + set_local $4 + get_local $3 + i32.const 1 + i32.sub + set_local $5 + get_local $5 + i32.const 0 + i32.lt_s + set_local $6 + get_local $6 + if + i32.const 0 + get_local $5 + i32.sub + set_local $5 + end + get_local $5 + call $~lib/internal/number/decimalCount32 + i32.const 1 + i32.add + set_local $7 + block $~lib/internal/number/utoa32_core|inlined.4 + get_local $4 + get_local $5 + get_local $7 + call $~lib/internal/number/utoa32_lut + end + get_local $4 + get_global $~lib/internal/string/CharCode.MINUS + get_global $~lib/internal/string/CharCode.PLUS + get_local $6 + select + i32.store16 offset=4 + get_local $7 + end + set_local $1 + get_local $1 + i32.const 2 + i32.add + return + else + get_local $1 + i32.const 1 + i32.shl + set_local $7 + block $~lib/memory/memory.copy|inlined.9 + get_local $0 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + i32.const 4 + i32.add + set_local $6 + get_local $0 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + i32.const 2 + i32.add + set_local $5 + get_local $7 + i32.const 2 + i32.sub + set_local $4 + get_local $6 + get_local $5 + get_local $4 + call $~lib/internal/memory/memmove + end + get_local $0 + get_global $~lib/internal/string/CharCode.DOT + i32.store16 offset=6 + get_local $0 + get_local $7 + i32.add + get_global $~lib/internal/string/CharCode.e + i32.store16 offset=6 + get_local $1 + block $~lib/internal/number/genExponent|inlined.1 (result i32) + get_local $0 + get_local $7 + i32.add + i32.const 4 + i32.add + set_local $4 + get_local $3 + i32.const 1 + i32.sub + set_local $5 + get_local $5 + i32.const 0 + i32.lt_s + set_local $6 + get_local $6 + if + i32.const 0 + get_local $5 + i32.sub + set_local $5 + end + get_local $5 + call $~lib/internal/number/decimalCount32 + i32.const 1 + i32.add + set_local $8 + block $~lib/internal/number/utoa32_core|inlined.5 + get_local $4 + get_local $5 + get_local $8 + call $~lib/internal/number/utoa32_lut + end + get_local $4 + get_global $~lib/internal/string/CharCode.MINUS + get_global $~lib/internal/string/CharCode.PLUS + get_local $6 + select + i32.store16 offset=4 + get_local $8 + end + i32.add + set_local $1 + get_local $1 + i32.const 2 + i32.add + return + end + unreachable + end + unreachable + end + unreachable + end + unreachable + unreachable ) (func $~lib/internal/number/dtoa_core (; 182 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) @@ -15779,693 +11700,477 @@ (local $22 i64) (local $23 i64) (local $24 i32) - (set_local $2 - (f64.lt - (get_local $1) - (f64.const 0) - ) - ) - (if - (get_local $2) - (block - (set_local $1 - (f64.neg - (get_local $1) - ) - ) - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - ) - ) - (set_local $24 - (block $~lib/internal/number/grisu2|inlined.0 (result i32) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (i64.and - (get_local $3) - (i64.const 9218868437227405312) - ) - (i64.const 52) - ) - ) - ) - (set_local $5 - (i64.and - (get_local $3) - (i64.const 4503599627370495) - ) - ) - (set_local $6 - (i64.add - (i64.shl - (i64.extend_u/i32 - (i32.ne - (get_local $4) - (i32.const 0) - ) - ) - (i64.const 52) - ) - (get_local $5) - ) - ) - (set_local $4 - (i32.sub - (select - (get_local $4) - (i32.const 1) - (i32.ne - (get_local $4) - (i32.const 0) - ) - ) - (i32.add - (i32.const 1023) - (i32.const 52) - ) - ) - ) - (block $~lib/internal/number/normalizedBoundaries|inlined.0 - (set_local $7 - (i64.add - (i64.shl - (get_local $6) - (i64.const 1) - ) - (i64.const 1) - ) - ) - (set_local $8 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (set_local $9 - (i32.wrap/i64 - (i64.clz - (get_local $7) - ) - ) - ) - (set_local $7 - (i64.shl - (get_local $7) - (i64.extend_s/i32 - (get_local $9) - ) - ) - ) - (set_local $8 - (i32.sub - (get_local $8) - (get_local $9) - ) - ) - (set_local $10 - (i32.add - (i32.const 1) - (i64.eq - (get_local $6) - (i64.const 4503599627370496) - ) - ) - ) - (set_global $~lib/internal/number/_frc_plus - (get_local $7) - ) - (set_global $~lib/internal/number/_frc_minus - (i64.shl - (i64.sub - (i64.shl - (get_local $6) - (i64.extend_s/i32 - (get_local $10) - ) - ) - (i64.const 1) - ) - (i64.extend_s/i32 - (i32.sub - (i32.sub - (get_local $4) - (get_local $10) - ) - (get_local $8) - ) - ) - ) - ) - (set_global $~lib/internal/number/_exp - (get_local $8) - ) - ) - (block $~lib/internal/number/getCachedPower|inlined.0 - (set_local $10 - (get_global $~lib/internal/number/_exp) - ) - (set_local $11 - (f64.add - (f64.mul - (f64.convert_s/i32 - (i32.sub - (i32.const -61) - (get_local $10) - ) - ) - (f64.const 0.30102999566398114) - ) - (f64.const 347) - ) - ) - (set_local $9 - (i32.trunc_s/f64 - (get_local $11) - ) - ) - (set_local $9 - (i32.add - (get_local $9) - (f64.ne - (f64.convert_s/i32 - (get_local $9) - ) - (get_local $11) - ) - ) - ) - (set_local $8 - (i32.add - (i32.shr_s - (get_local $9) - (i32.const 3) - ) - (i32.const 1) - ) - ) - (set_global $~lib/internal/number/_K - (i32.sub - (i32.const 348) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - (set_local $12 - (i32.load - (block $~lib/internal/number/FRC_POWERS|inlined.0 (result i32) - (i32.const 3936) - ) - ) - ) - (set_local $13 - (i32.load - (block $~lib/internal/number/EXP_POWERS|inlined.0 (result i32) - (i32.const 4200) - ) - ) - ) - (set_global $~lib/internal/number/_frc_pow - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) - (i64.load offset=8 - (i32.add - (get_local $12) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - (set_global $~lib/internal/number/_exp_pow - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load16_s offset=8 - (i32.add - (get_local $13) - (i32.shl - (get_local $8) - (i32.const 1) - ) - ) - ) - ) - ) - ) - (set_local $13 - (i32.wrap/i64 - (i64.clz - (get_local $6) - ) - ) - ) - (set_local $6 - (i64.shl - (get_local $6) - (i64.extend_s/i32 - (get_local $13) - ) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (get_local $13) - ) - ) - (set_local $7 - (get_global $~lib/internal/number/_frc_pow) - ) - (set_local $12 - (get_global $~lib/internal/number/_exp_pow) - ) - (set_local $20 - (block $~lib/internal/number/umul64f|inlined.0 (result i64) - (set_local $14 - (i64.and - (get_local $6) - (i64.const 4294967295) - ) - ) - (set_local $15 - (i64.and - (get_local $7) - (i64.const 4294967295) - ) - ) - (set_local $16 - (i64.shr_u - (get_local $6) - (i64.const 32) - ) - ) - (set_local $17 - (i64.shr_u - (get_local $7) - (i64.const 32) - ) - ) - (set_local $18 - (i64.mul - (get_local $14) - (get_local $15) - ) - ) - (set_local $19 - (i64.add - (i64.mul - (get_local $16) - (get_local $15) - ) - (i64.shr_u - (get_local $18) - (i64.const 32) - ) - ) - ) - (set_local $20 - (i64.add - (i64.mul - (get_local $14) - (get_local $17) - ) - (i64.and - (get_local $19) - (i64.const 4294967295) - ) - ) - ) - (set_local $20 - (i64.add - (get_local $20) - (i64.const 2147483647) - ) - ) - (set_local $19 - (i64.shr_u - (get_local $19) - (i64.const 32) - ) - ) - (set_local $20 - (i64.shr_u - (get_local $20) - (i64.const 32) - ) - ) - (i64.add - (i64.add - (i64.mul - (get_local $16) - (get_local $17) - ) - (get_local $19) - ) - (get_local $20) - ) - ) - ) - (set_local $8 - (block $~lib/internal/number/umul64e|inlined.0 (result i32) - (i32.add - (i32.add - (get_local $4) - (get_local $12) - ) - (i32.const 64) - ) - ) - ) - (set_local $22 - (i64.sub - (block $~lib/internal/number/umul64f|inlined.1 (result i64) - (set_local $19 - (get_global $~lib/internal/number/_frc_plus) - ) - (set_local $18 - (i64.and - (get_local $19) - (i64.const 4294967295) - ) - ) - (set_local $17 - (i64.and - (get_local $7) - (i64.const 4294967295) - ) - ) - (set_local $16 - (i64.shr_u - (get_local $19) - (i64.const 32) - ) - ) - (set_local $15 - (i64.shr_u - (get_local $7) - (i64.const 32) - ) - ) - (set_local $14 - (i64.mul - (get_local $18) - (get_local $17) - ) - ) - (set_local $21 - (i64.add - (i64.mul - (get_local $16) - (get_local $17) - ) - (i64.shr_u - (get_local $14) - (i64.const 32) - ) - ) - ) - (set_local $22 - (i64.add - (i64.mul - (get_local $18) - (get_local $15) - ) - (i64.and - (get_local $21) - (i64.const 4294967295) - ) - ) - ) - (set_local $22 - (i64.add - (get_local $22) - (i64.const 2147483647) - ) - ) - (set_local $21 - (i64.shr_u - (get_local $21) - (i64.const 32) - ) - ) - (set_local $22 - (i64.shr_u - (get_local $22) - (i64.const 32) - ) - ) - (i64.add - (i64.add - (i64.mul - (get_local $16) - (get_local $15) - ) - (get_local $21) - ) - (get_local $22) - ) - ) - (i64.const 1) - ) - ) - (set_local $9 - (block $~lib/internal/number/umul64e|inlined.1 (result i32) - (set_local $9 - (get_global $~lib/internal/number/_exp) - ) - (i32.add - (i32.add - (get_local $9) - (get_local $12) - ) - (i32.const 64) - ) - ) - ) - (set_local $23 - (i64.add - (block $~lib/internal/number/umul64f|inlined.2 (result i64) - (set_local $21 - (get_global $~lib/internal/number/_frc_minus) - ) - (set_local $14 - (i64.and - (get_local $21) - (i64.const 4294967295) - ) - ) - (set_local $15 - (i64.and - (get_local $7) - (i64.const 4294967295) - ) - ) - (set_local $16 - (i64.shr_u - (get_local $21) - (i64.const 32) - ) - ) - (set_local $17 - (i64.shr_u - (get_local $7) - (i64.const 32) - ) - ) - (set_local $18 - (i64.mul - (get_local $14) - (get_local $15) - ) - ) - (set_local $19 - (i64.add - (i64.mul - (get_local $16) - (get_local $15) - ) - (i64.shr_u - (get_local $18) - (i64.const 32) - ) - ) - ) - (set_local $23 - (i64.add - (i64.mul - (get_local $14) - (get_local $17) - ) - (i64.and - (get_local $19) - (i64.const 4294967295) - ) - ) - ) - (set_local $23 - (i64.add - (get_local $23) - (i64.const 2147483647) - ) - ) - (set_local $19 - (i64.shr_u - (get_local $19) - (i64.const 32) - ) - ) - (set_local $23 - (i64.shr_u - (get_local $23) - (i64.const 32) - ) - ) - (i64.add - (i64.add - (i64.mul - (get_local $16) - (get_local $17) - ) - (get_local $19) - ) - (get_local $23) - ) - ) - (i64.const 1) - ) - ) - (set_local $19 - (i64.sub - (get_local $22) - (get_local $23) - ) - ) - (call $~lib/internal/number/genDigits - (get_local $0) - (get_local $20) - (get_local $8) - (get_local $22) - (get_local $9) - (get_local $19) - (get_local $2) - ) - ) - ) - (set_local $24 - (call $~lib/internal/number/prettify - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (i32.sub - (get_local $24) - (get_local $2) - ) - (get_global $~lib/internal/number/_K) - ) - ) - (i32.add - (get_local $24) - (get_local $2) - ) + get_local $1 + f64.const 0 + f64.lt + set_local $2 + get_local $2 + if + get_local $1 + f64.neg + set_local $1 + get_local $0 + get_global $~lib/internal/string/CharCode.MINUS + i32.store16 offset=4 + end + block $~lib/internal/number/grisu2|inlined.0 (result i32) + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $3 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap/i64 + set_local $4 + get_local $3 + i64.const 4503599627370495 + i64.and + set_local $5 + get_local $4 + i32.const 0 + i32.ne + i64.extend_u/i32 + i64.const 52 + i64.shl + get_local $5 + i64.add + set_local $6 + get_local $4 + i32.const 1 + get_local $4 + i32.const 0 + i32.ne + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + set_local $4 + block $~lib/internal/number/normalizedBoundaries|inlined.0 + get_local $6 + i64.const 1 + i64.shl + i64.const 1 + i64.add + set_local $7 + get_local $4 + i32.const 1 + i32.sub + set_local $8 + get_local $7 + i64.clz + i32.wrap/i64 + set_local $9 + get_local $7 + get_local $9 + i64.extend_s/i32 + i64.shl + set_local $7 + get_local $8 + get_local $9 + i32.sub + set_local $8 + i32.const 1 + get_local $6 + i64.const 4503599627370496 + i64.eq + i32.add + set_local $10 + get_local $7 + set_global $~lib/internal/number/_frc_plus + get_local $6 + get_local $10 + i64.extend_s/i32 + i64.shl + i64.const 1 + i64.sub + get_local $4 + get_local $10 + i32.sub + get_local $8 + i32.sub + i64.extend_s/i32 + i64.shl + set_global $~lib/internal/number/_frc_minus + get_local $8 + set_global $~lib/internal/number/_exp + end + block $~lib/internal/number/getCachedPower|inlined.0 + get_global $~lib/internal/number/_exp + set_local $10 + i32.const -61 + get_local $10 + i32.sub + f64.convert_s/i32 + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + set_local $11 + get_local $11 + i32.trunc_s/f64 + set_local $9 + get_local $9 + get_local $9 + f64.convert_s/i32 + get_local $11 + f64.ne + i32.add + set_local $9 + get_local $9 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + set_local $8 + i32.const 348 + get_local $8 + i32.const 3 + i32.shl + i32.sub + set_global $~lib/internal/number/_K + block $~lib/internal/number/FRC_POWERS|inlined.0 (result i32) + i32.const 3936 + end + i32.load + set_local $12 + block $~lib/internal/number/EXP_POWERS|inlined.0 (result i32) + i32.const 4200 + end + i32.load + set_local $13 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) + get_local $12 + get_local $8 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + end + set_global $~lib/internal/number/_frc_pow + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + get_local $13 + get_local $8 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=8 + end + set_global $~lib/internal/number/_exp_pow + end + get_local $6 + i64.clz + i32.wrap/i64 + set_local $13 + get_local $6 + get_local $13 + i64.extend_s/i32 + i64.shl + set_local $6 + get_local $4 + get_local $13 + i32.sub + set_local $4 + get_global $~lib/internal/number/_frc_pow + set_local $7 + get_global $~lib/internal/number/_exp_pow + set_local $12 + block $~lib/internal/number/umul64f|inlined.0 (result i64) + get_local $6 + i64.const 4294967295 + i64.and + set_local $14 + get_local $7 + i64.const 4294967295 + i64.and + set_local $15 + get_local $6 + i64.const 32 + i64.shr_u + set_local $16 + get_local $7 + i64.const 32 + i64.shr_u + set_local $17 + get_local $14 + get_local $15 + i64.mul + set_local $18 + get_local $16 + get_local $15 + i64.mul + get_local $18 + i64.const 32 + i64.shr_u + i64.add + set_local $19 + get_local $14 + get_local $17 + i64.mul + get_local $19 + i64.const 4294967295 + i64.and + i64.add + set_local $20 + get_local $20 + i64.const 2147483647 + i64.add + set_local $20 + get_local $19 + i64.const 32 + i64.shr_u + set_local $19 + get_local $20 + i64.const 32 + i64.shr_u + set_local $20 + get_local $16 + get_local $17 + i64.mul + get_local $19 + i64.add + get_local $20 + i64.add + end + set_local $20 + block $~lib/internal/number/umul64e|inlined.0 (result i32) + get_local $4 + get_local $12 + i32.add + i32.const 64 + i32.add + end + set_local $8 + block $~lib/internal/number/umul64f|inlined.1 (result i64) + get_global $~lib/internal/number/_frc_plus + set_local $19 + get_local $19 + i64.const 4294967295 + i64.and + set_local $18 + get_local $7 + i64.const 4294967295 + i64.and + set_local $17 + get_local $19 + i64.const 32 + i64.shr_u + set_local $16 + get_local $7 + i64.const 32 + i64.shr_u + set_local $15 + get_local $18 + get_local $17 + i64.mul + set_local $14 + get_local $16 + get_local $17 + i64.mul + get_local $14 + i64.const 32 + i64.shr_u + i64.add + set_local $21 + get_local $18 + get_local $15 + i64.mul + get_local $21 + i64.const 4294967295 + i64.and + i64.add + set_local $22 + get_local $22 + i64.const 2147483647 + i64.add + set_local $22 + get_local $21 + i64.const 32 + i64.shr_u + set_local $21 + get_local $22 + i64.const 32 + i64.shr_u + set_local $22 + get_local $16 + get_local $15 + i64.mul + get_local $21 + i64.add + get_local $22 + i64.add + end + i64.const 1 + i64.sub + set_local $22 + block $~lib/internal/number/umul64e|inlined.1 (result i32) + get_global $~lib/internal/number/_exp + set_local $9 + get_local $9 + get_local $12 + i32.add + i32.const 64 + i32.add + end + set_local $9 + block $~lib/internal/number/umul64f|inlined.2 (result i64) + get_global $~lib/internal/number/_frc_minus + set_local $21 + get_local $21 + i64.const 4294967295 + i64.and + set_local $14 + get_local $7 + i64.const 4294967295 + i64.and + set_local $15 + get_local $21 + i64.const 32 + i64.shr_u + set_local $16 + get_local $7 + i64.const 32 + i64.shr_u + set_local $17 + get_local $14 + get_local $15 + i64.mul + set_local $18 + get_local $16 + get_local $15 + i64.mul + get_local $18 + i64.const 32 + i64.shr_u + i64.add + set_local $19 + get_local $14 + get_local $17 + i64.mul + get_local $19 + i64.const 4294967295 + i64.and + i64.add + set_local $23 + get_local $23 + i64.const 2147483647 + i64.add + set_local $23 + get_local $19 + i64.const 32 + i64.shr_u + set_local $19 + get_local $23 + i64.const 32 + i64.shr_u + set_local $23 + get_local $16 + get_local $17 + i64.mul + get_local $19 + i64.add + get_local $23 + i64.add + end + i64.const 1 + i64.add + set_local $23 + get_local $22 + get_local $23 + i64.sub + set_local $19 + get_local $0 + get_local $20 + get_local $8 + get_local $22 + get_local $9 + get_local $19 + get_local $2 + call $~lib/internal/number/genDigits + end + set_local $24 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $24 + get_local $2 + i32.sub + get_global $~lib/internal/number/_K + call $~lib/internal/number/prettify + set_local $24 + get_local $24 + get_local $2 + i32.add ) (func $~lib/internal/number/dtoa (; 183 ;) (type $Fi) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (f64.eq - (get_local $0) - (f64.const 0) - ) - (return - (i32.const 2832) - ) - ) - (if - (i32.eqz - (call $~lib/builtins/isFinite - (get_local $0) - ) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (i32.const 2848) - ) - ) - (return - (select - (i32.const 2864) - (i32.const 2888) - (f64.lt - (get_local $0) - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $1 - (call $~lib/internal/string/allocateUnsafe - (get_global $~lib/internal/number/MAX_DOUBLE_LENGTH) - ) - ) - (set_local $2 - (call $~lib/internal/number/dtoa_core - (get_local $1) - (get_local $0) - ) - ) - (set_local $3 - (call $~lib/string/String#substring - (get_local $1) - (i32.const 0) - (get_local $2) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.3 - (block - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.7 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $1) - ) - (br $~lib/memory/memory.free|inlined.7) - ) - ) - ) - ) - (get_local $3) + get_local $0 + f64.const 0 + f64.eq + if + i32.const 2832 + return + end + get_local $0 + call $~lib/builtins/isFinite + i32.eqz + if + get_local $0 + call $~lib/builtins/isNaN + if + i32.const 2848 + return + end + i32.const 2864 + i32.const 2888 + get_local $0 + f64.const 0 + f64.lt + select + return + end + get_global $~lib/internal/number/MAX_DOUBLE_LENGTH + call $~lib/internal/string/allocateUnsafe + set_local $1 + get_local $1 + get_local $0 + call $~lib/internal/number/dtoa_core + set_local $2 + get_local $1 + i32.const 0 + get_local $2 + call $~lib/string/String#substring + set_local $3 + block $~lib/internal/string/freeUnsafe|inlined.3 + block + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.7 + block + get_local $1 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.7 + unreachable + end + unreachable + end + end + end + get_local $3 ) (func $~lib/internal/number/dtoa_stream (; 184 ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) @@ -16473,117 +12178,83 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (f64.eq - (get_local $2) - (f64.const 0) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode._0) - ) - (i32.store16 offset=6 - (get_local $0) - (get_global $~lib/internal/string/CharCode.DOT) - ) - (i32.store16 offset=8 - (get_local $0) - (get_global $~lib/internal/string/CharCode._0) - ) - (return - (i32.const 3) - ) - ) - ) - (if - (i32.eqz - (call $~lib/builtins/isFinite - (get_local $2) - ) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $2) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode.N) - ) - (i32.store16 offset=6 - (get_local $0) - (get_global $~lib/internal/string/CharCode.a) - ) - (i32.store16 offset=8 - (get_local $0) - (get_global $~lib/internal/string/CharCode.N) - ) - (return - (i32.const 3) - ) - ) - (block - (set_local $3 - (f64.lt - (get_local $2) - (f64.const 0) - ) - ) - (set_local $4 - (i32.add - (i32.const 8) - (get_local $3) - ) - ) - (set_local $5 - (select - (i32.const 2864) - (i32.const 2888) - (get_local $3) - ) - ) - (block $~lib/memory/memory.copy|inlined.10 - (set_local $6 - (i32.add - (get_local $0) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $6) - (get_local $5) - (get_local $7) - ) - ) - (return - (get_local $4) - ) - ) - ) - (unreachable) - ) - ) - (call $~lib/internal/number/dtoa_core - (get_local $0) - (get_local $2) - ) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + f64.const 0 + f64.eq + if + get_local $0 + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + get_local $0 + get_global $~lib/internal/string/CharCode.DOT + i32.store16 offset=6 + get_local $0 + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=8 + i32.const 3 + return + end + get_local $2 + call $~lib/builtins/isFinite + i32.eqz + if + get_local $2 + call $~lib/builtins/isNaN + if + get_local $0 + get_global $~lib/internal/string/CharCode.N + i32.store16 offset=4 + get_local $0 + get_global $~lib/internal/string/CharCode.a + i32.store16 offset=6 + get_local $0 + get_global $~lib/internal/string/CharCode.N + i32.store16 offset=8 + i32.const 3 + return + else + get_local $2 + f64.const 0 + f64.lt + set_local $3 + i32.const 8 + get_local $3 + i32.add + set_local $4 + i32.const 2864 + i32.const 2888 + get_local $3 + select + set_local $5 + block $~lib/memory/memory.copy|inlined.10 + get_local $0 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $6 + get_local $4 + i32.const 1 + i32.shl + set_local $7 + get_local $6 + get_local $5 + get_local $7 + call $~lib/internal/memory/memmove + end + get_local $4 + return + end + unreachable + unreachable + end + get_local $0 + get_local $2 + call $~lib/internal/number/dtoa_core ) (func $~lib/array/Array#join (; 185 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -16596,220 +12267,161 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (call $~lib/internal/number/dtoa - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result f64) - (set_local $8 - (i32.const 0) - ) - (f64.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (i32.add - (i32.mul - (i32.add - (i32.const 28) - (get_local $6) - ) - (get_local $2) - ) - (i32.const 28) - ) - ) - (set_local $9 - (call $~lib/internal/string/allocateUnsafe - (get_local $8) - ) - ) - (set_local $10 - (i32.const 0) - ) - (block $break|0 - (set_local $11 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $11) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result f64) - (f64.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $11) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/dtoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result f64) - (f64.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/dtoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (set_local $11 - (get_local $9) - ) - (if - (i32.gt_s - (get_local $8) - (get_local $10) - ) - (block - (set_local $11 - (call $~lib/string/String#substring - (get_local $9) - (i32.const 0) - (get_local $10) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.4 - (block - (if - (i32.eqz - (get_local $9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.8 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $9) - ) - (br $~lib/memory/memory.free|inlined.8) - ) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result f64) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + call $~lib/internal/number/dtoa + return + end + i32.const 28 + get_local $6 + i32.add + get_local $2 + i32.mul + i32.const 28 + i32.add + set_local $8 + get_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $9 + i32.const 0 + set_local $10 + block $break|0 + i32.const 0 + set_local $11 + loop $repeat|0 + get_local $11 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result f64) + get_local $5 + get_local $11 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/dtoa_stream + i32.add + set_local $10 + get_local $7 + if + get_local $9 + get_local $10 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $6 + i32.add + set_local $10 + end + end + get_local $11 + i32.const 1 + i32.add + set_local $11 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result f64) + get_local $5 + get_local $2 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/dtoa_stream + i32.add + set_local $10 + get_local $9 + set_local $11 + get_local $8 + get_local $10 + i32.gt_s + if + get_local $9 + i32.const 0 + get_local $10 + call $~lib/string/String#substring + set_local $11 + block $~lib/internal/string/freeUnsafe|inlined.4 + block + get_local $9 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.8 + block + get_local $9 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.8 + unreachable + end + unreachable + end + end + end + end + get_local $11 + return ) (func $~lib/array/Array#join (; 186 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -16823,358 +12435,263 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (set_local $8 - (i32.const 0) - ) - (block $break|0 - (block - (set_local $9 - (i32.const 0) - ) - (set_local $10 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $9) - (get_local $10) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.load - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - ) - ) - ) - ) - ) - (set_local $9 - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $10 - (i32.const 0) - ) - (set_local $9 - (call $~lib/internal/string/allocateUnsafe - (i32.add - (get_local $8) - (i32.mul - (get_local $6) - (get_local $2) - ) - ) - ) - ) - (block $break|1 - (set_local $11 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $11) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $11) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (block - (set_local $12 - (i32.load - (get_local $4) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $4) - (i32.const 0) - (get_local $12) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $12) - ) - ) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (block - (set_local $11 - (i32.load - (get_local $4) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $4) - (i32.const 0) - (get_local $11) - ) - ) - ) - (return - (get_local $9) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + return + end + i32.const 0 + set_local $8 + block $break|0 + block + i32.const 0 + set_local $9 + get_local $2 + i32.const 1 + i32.add + set_local $10 + end + loop $repeat|0 + get_local $9 + get_local $10 + i32.lt_s + i32.eqz + br_if $break|0 + get_local $8 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i32) + get_local $5 + get_local $9 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + i32.load + i32.add + set_local $8 + get_local $9 + i32.const 1 + i32.add + set_local $9 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 0 + set_local $10 + get_local $8 + get_local $6 + get_local $2 + i32.mul + i32.add + call $~lib/internal/string/allocateUnsafe + set_local $9 + block $break|1 + i32.const 0 + set_local $11 + loop $repeat|1 + get_local $11 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|1 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i32) + get_local $5 + get_local $11 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $4 + i32.load + set_local $12 + get_local $9 + get_local $10 + get_local $4 + i32.const 0 + get_local $12 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $12 + i32.add + set_local $10 + end + get_local $7 + if + get_local $9 + get_local $10 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $6 + i32.add + set_local $10 + end + end + get_local $11 + i32.const 1 + i32.add + set_local $11 + br $repeat|1 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i32) + get_local $5 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $4 + i32.load + set_local $11 + get_local $9 + get_local $10 + get_local $4 + i32.const 0 + get_local $11 + call $~lib/internal/string/copyUnsafe + end + get_local $9 + return ) (func $std/array/Ref#constructor (; 187 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $1) - ) - ) - ) - ) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + end + tee_local $0 + end + tee_local $0 ) (func $~lib/array/Array#constructor (; 188 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.12 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.12 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array#__unchecked_set (; 189 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 ) (func $~lib/array/Array#join (; 190 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -17187,327 +12704,239 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 4528) - ) - ) - (set_local $8 - (i32.add - (i32.mul - (i32.add - (i32.const 15) - (get_local $6) - ) - (get_local $2) - ) - (i32.const 15) - ) - ) - (set_local $9 - (call $~lib/internal/string/allocateUnsafe - (get_local $8) - ) - ) - (set_local $10 - (i32.const 0) - ) - (block $break|0 - (set_local $11 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $11) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $11) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (i32.const 4528) - (i32.const 0) - (i32.const 15) - ) - (set_local $10 - (i32.add - (get_local $10) - (i32.const 15) - ) - ) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (i32.const 4528) - (i32.const 0) - (i32.const 15) - ) - (set_local $10 - (i32.add - (get_local $10) - (i32.const 15) - ) - ) - ) - ) - (set_local $11 - (get_local $9) - ) - (if - (i32.gt_s - (get_local $8) - (get_local $10) - ) - (block - (set_local $11 - (call $~lib/string/String#substring - (get_local $9) - (i32.const 0) - (get_local $10) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.5 - (block - (if - (i32.eqz - (get_local $9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.9 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $9) - ) - (br $~lib/memory/memory.free|inlined.9) - ) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + i32.const 4528 + return + end + i32.const 15 + get_local $6 + i32.add + get_local $2 + i32.mul + i32.const 15 + i32.add + set_local $8 + get_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $9 + i32.const 0 + set_local $10 + block $break|0 + i32.const 0 + set_local $11 + loop $repeat|0 + get_local $11 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + get_local $5 + get_local $11 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $9 + get_local $10 + i32.const 4528 + i32.const 0 + i32.const 15 + call $~lib/internal/string/copyUnsafe + get_local $10 + i32.const 15 + i32.add + set_local $10 + end + get_local $7 + if + get_local $9 + get_local $10 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $6 + i32.add + set_local $10 + end + end + get_local $11 + i32.const 1 + i32.add + set_local $11 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + get_local $5 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + if + get_local $9 + get_local $10 + i32.const 4528 + i32.const 0 + i32.const 15 + call $~lib/internal/string/copyUnsafe + get_local $10 + i32.const 15 + i32.add + set_local $10 + end + get_local $9 + set_local $11 + get_local $8 + get_local $10 + i32.gt_s + if + get_local $9 + i32.const 0 + get_local $10 + call $~lib/string/String#substring + set_local $11 + block $~lib/internal/string/freeUnsafe|inlined.5 + block + get_local $9 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.9 + block + get_local $9 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.9 + unreachable + end + unreachable + end + end + end + end + get_local $11 + return ) (func $~lib/internal/number/itoa (; 191 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/number/itoa32 - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/number/itoa32 + return ) (func $~lib/internal/number/itoa_stream (; 192 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.shr_s - (i32.shl - (get_local $2) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode._0) - ) - (return - (i32.const 1) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (i32.lt_s - (i32.shr_s - (i32.shl - (get_local $2) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - ) - (if - (get_local $4) - (set_local $2 - (i32.sub - (i32.const 0) - (get_local $2) - ) - ) - ) - (set_local $3 - (i32.add - (call $~lib/internal/number/decimalCount32 - (i32.shr_s - (i32.shl - (get_local $2) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (get_local $4) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.6 - (set_local $5 - (i32.shr_s - (i32.shl - (get_local $2) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $5) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - ) - (get_local $3) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eqz + if + get_local $0 + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + i32.const 1 + return + end + i32.const 0 + set_local $3 + get_local $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s + set_local $4 + get_local $4 + if + i32.const 0 + get_local $2 + i32.sub + set_local $2 + end + get_local $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/number/decimalCount32 + get_local $4 + i32.add + set_local $3 + block $~lib/internal/number/utoa32_core|inlined.6 + get_local $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_local $5 + get_local $0 + get_local $5 + get_local $3 + call $~lib/internal/number/utoa32_lut + end + get_local $4 + if + get_local $0 + get_global $~lib/internal/string/CharCode.MINUS + i32.store16 offset=4 + end + get_local $3 ) (func $~lib/array/Array#join (; 193 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -17520,285 +12949,207 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (call $~lib/internal/number/itoa - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load8_s offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 0) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (i32.add - (i32.mul - (i32.add - (i32.const 11) - (get_local $6) - ) - (get_local $2) - ) - (i32.const 11) - ) - ) - (set_local $9 - (call $~lib/internal/string/allocateUnsafe - (get_local $8) - ) - ) - (set_local $10 - (i32.const 0) - ) - (block $break|0 - (set_local $11 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $11) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) - (i32.load8_s offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $11) - (i32.const 0) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) - (i32.load8_s offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 0) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (set_local $11 - (get_local $9) - ) - (if - (i32.gt_s - (get_local $8) - (get_local $10) - ) - (block - (set_local $11 - (call $~lib/string/String#substring - (get_local $9) - (i32.const 0) - (get_local $10) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.6 - (block - (if - (i32.eqz - (get_local $9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.10 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $9) - ) - (br $~lib/memory/memory.free|inlined.10) - ) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=8 + end + call $~lib/internal/number/itoa + return + end + i32.const 11 + get_local $6 + i32.add + get_local $2 + i32.mul + i32.const 11 + i32.add + set_local $8 + get_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $9 + i32.const 0 + set_local $10 + block $break|0 + i32.const 0 + set_local $11 + loop $repeat|0 + get_local $11 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + get_local $5 + get_local $11 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $7 + if + get_local $9 + get_local $10 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $6 + i32.add + set_local $10 + end + end + get_local $11 + i32.const 1 + i32.add + set_local $11 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + get_local $5 + get_local $2 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $9 + set_local $11 + get_local $8 + get_local $10 + i32.gt_s + if + get_local $9 + i32.const 0 + get_local $10 + call $~lib/string/String#substring + set_local $11 + block $~lib/internal/string/freeUnsafe|inlined.6 + block + get_local $9 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.10 + block + get_local $9 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.10 + unreachable + end + unreachable + end + end + end + end + get_local $11 + return ) (func $~lib/internal/number/itoa (; 194 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/number/utoa32 - (i32.and - (get_local $0) - (i32.const 65535) - ) - ) - ) + get_local $0 + i32.const 65535 + i32.and + call $~lib/internal/number/utoa32 + return ) (func $~lib/internal/number/itoa_stream (; 195 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $2) - (i32.const 65535) - ) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode._0) - ) - (return - (i32.const 1) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (set_local $3 - (call $~lib/internal/number/decimalCount32 - (i32.and - (get_local $2) - (i32.const 65535) - ) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.7 - (set_local $4 - (i32.and - (get_local $2) - (i32.const 65535) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $4) - (get_local $3) - ) - ) - (get_local $3) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i32.const 65535 + i32.and + i32.eqz + if + get_local $0 + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + i32.const 1 + return + end + i32.const 0 + set_local $3 + get_local $2 + i32.const 65535 + i32.and + call $~lib/internal/number/decimalCount32 + set_local $3 + block $~lib/internal/number/utoa32_core|inlined.7 + get_local $2 + i32.const 65535 + i32.and + set_local $4 + get_local $0 + get_local $4 + get_local $3 + call $~lib/internal/number/utoa32_lut + end + get_local $3 ) (func $~lib/array/Array#join (; 196 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -17811,312 +13162,230 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (call $~lib/internal/number/itoa - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load16_u offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (i32.add - (i32.mul - (i32.add - (i32.const 10) - (get_local $6) - ) - (get_local $2) - ) - (i32.const 10) - ) - ) - (set_local $9 - (call $~lib/internal/string/allocateUnsafe - (get_local $8) - ) - ) - (set_local $10 - (i32.const 0) - ) - (block $break|0 - (set_local $11 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $11) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) - (i32.load16_u offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $11) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) - (i32.load16_u offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (set_local $11 - (get_local $9) - ) - (if - (i32.gt_s - (get_local $8) - (get_local $10) - ) - (block - (set_local $11 - (call $~lib/string/String#substring - (get_local $9) - (i32.const 0) - (get_local $10) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.7 - (block - (if - (i32.eqz - (get_local $9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.11 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $9) - ) - (br $~lib/memory/memory.free|inlined.11) - ) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=8 + end + call $~lib/internal/number/itoa + return + end + i32.const 10 + get_local $6 + i32.add + get_local $2 + i32.mul + i32.const 10 + i32.add + set_local $8 + get_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $9 + i32.const 0 + set_local $10 + block $break|0 + i32.const 0 + set_local $11 + loop $repeat|0 + get_local $11 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + get_local $5 + get_local $11 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $7 + if + get_local $9 + get_local $10 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $6 + i32.add + set_local $10 + end + end + get_local $11 + i32.const 1 + i32.add + set_local $11 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + get_local $5 + get_local $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $9 + set_local $11 + get_local $8 + get_local $10 + i32.gt_s + if + get_local $9 + i32.const 0 + get_local $10 + call $~lib/string/String#substring + set_local $11 + block $~lib/internal/string/freeUnsafe|inlined.7 + block + get_local $9 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.11 + block + get_local $9 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.11 + unreachable + end + unreachable + end + end + end + end + get_local $11 + return ) (func $~lib/internal/number/decimalCount64 (; 197 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) - (if - (i64.lt_u - (get_local $0) - (i64.const 1000000000000000) - ) - (block - (if - (i64.lt_u - (get_local $0) - (i64.const 1000000000000) - ) - (return - (select - (i32.const 11) - (i32.const 12) - (i64.lt_u - (get_local $0) - (i64.const 100000000000) - ) - ) - ) - (block - (set_local $1 - (select - (i32.const 14) - (i32.const 15) - (i64.lt_u - (get_local $0) - (i64.const 100000000000000) - ) - ) - ) - (return - (select - (i32.const 13) - (get_local $1) - (i64.lt_u - (get_local $0) - (i64.const 10000000000000) - ) - ) - ) - ) - ) - (unreachable) - ) - (block - (if - (i64.lt_u - (get_local $0) - (i64.const 100000000000000000) - ) - (return - (select - (i32.const 16) - (i32.const 17) - (i64.lt_u - (get_local $0) - (i64.const 10000000000000000) - ) - ) - ) - (block - (set_local $1 - (select - (i32.const 19) - (i32.const 20) - (i64.lt_u - (get_local $0) - (i64.const -8446744073709551616) - ) - ) - ) - (return - (select - (i32.const 18) - (get_local $1) - (i64.lt_u - (get_local $0) - (i64.const 1000000000000000000) - ) - ) - ) - ) - ) - (unreachable) - ) - ) - (unreachable) + get_local $0 + i64.const 1000000000000000 + i64.lt_u + if + get_local $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 11 + i32.const 12 + get_local $0 + i64.const 100000000000 + i64.lt_u + select + return + else + i32.const 14 + i32.const 15 + get_local $0 + i64.const 100000000000000 + i64.lt_u + select + set_local $1 + i32.const 13 + get_local $1 + get_local $0 + i64.const 10000000000000 + i64.lt_u + select + return + end + unreachable + unreachable + else + get_local $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + i32.const 17 + get_local $0 + i64.const 10000000000000000 + i64.lt_u + select + return + else + i32.const 19 + i32.const 20 + get_local $0 + i64.const -8446744073709551616 + i64.lt_u + select + set_local $1 + i32.const 18 + get_local $1 + get_local $0 + i64.const 1000000000000000000 + i64.lt_u + select + return + end + unreachable + unreachable + end + unreachable + unreachable ) (func $~lib/internal/number/utoa64_lut (; 198 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -18130,331 +13399,232 @@ (local $11 i32) (local $12 i64) (local $13 i64) - (set_local $3 - (i32.load - (block $~lib/internal/number/DIGITS|inlined.1 (result i32) - (i32.const 5368) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i64.ge_u - (get_local $1) - (i64.const 100000000) - ) - (block - (block - (set_local $4 - (i64.div_u - (get_local $1) - (i64.const 100000000) - ) - ) - (set_local $5 - (i32.wrap/i64 - (i64.sub - (get_local $1) - (i64.mul - (get_local $4) - (i64.const 100000000) - ) - ) - ) - ) - (set_local $1 - (get_local $4) - ) - (set_local $6 - (i32.div_u - (get_local $5) - (i32.const 10000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $5) - (i32.const 10000) - ) - ) - (set_local $8 - (i32.div_u - (get_local $6) - (i32.const 100) - ) - ) - (set_local $9 - (i32.rem_u - (get_local $6) - (i32.const 100) - ) - ) - (set_local $10 - (i32.div_u - (get_local $7) - (i32.const 100) - ) - ) - (set_local $11 - (i32.rem_u - (get_local $7) - (i32.const 100) - ) - ) - (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $10) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $13 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $11) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (i64.or - (get_local $12) - (i64.shl - (get_local $13) - (i64.const 32) - ) - ) - ) - (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $13 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.7 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (i64.or - (get_local $12) - (i64.shl - (get_local $13) - (i64.const 32) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (i32.wrap/i64 - (get_local $1) - ) - (get_local $2) - ) + block $~lib/internal/number/DIGITS|inlined.1 (result i32) + i32.const 5368 + end + i32.load + set_local $3 + block $break|0 + loop $continue|0 + get_local $1 + i64.const 100000000 + i64.ge_u + if + block + get_local $1 + i64.const 100000000 + i64.div_u + set_local $4 + get_local $1 + get_local $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap/i64 + set_local $5 + get_local $4 + set_local $1 + get_local $5 + i32.const 10000 + i32.div_u + set_local $6 + get_local $5 + i32.const 10000 + i32.rem_u + set_local $7 + get_local $6 + i32.const 100 + i32.div_u + set_local $8 + get_local $6 + i32.const 100 + i32.rem_u + set_local $9 + get_local $7 + i32.const 100 + i32.div_u + set_local $10 + get_local $7 + i32.const 100 + i32.rem_u + set_local $11 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i64) + get_local $3 + get_local $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $12 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i64) + get_local $3 + get_local $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $13 + get_local $2 + i32.const 4 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $12 + get_local $13 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i64) + get_local $3 + get_local $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $12 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.7 (result i64) + get_local $3 + get_local $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $13 + get_local $2 + i32.const 4 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $12 + get_local $13 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + end + br $continue|0 + end + end + end + get_local $0 + get_local $1 + i32.wrap/i64 + get_local $2 + call $~lib/internal/number/utoa32_lut ) (func $~lib/internal/number/utoa64 (; 199 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i64.eqz - (get_local $0) - ) - (return - (i32.const 1968) - ) - ) - (if - (i64.le_u - (get_local $0) - (i64.extend_u/i32 - (get_global $~lib/builtins/u32.MAX_VALUE) - ) - ) - (block - (set_local $2 - (i32.wrap/i64 - (get_local $0) - ) - ) - (set_local $3 - (call $~lib/internal/number/decimalCount32 - (get_local $2) - ) - ) - (set_local $1 - (call $~lib/internal/string/allocateUnsafe - (get_local $3) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.8 - (call $~lib/internal/number/utoa32_lut - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - ) - (block - (set_local $3 - (call $~lib/internal/number/decimalCount64 - (get_local $0) - ) - ) - (set_local $1 - (call $~lib/internal/string/allocateUnsafe - (get_local $3) - ) - ) - (block $~lib/internal/number/utoa64_core|inlined.0 - (call $~lib/internal/number/utoa64_lut - (get_local $1) - (get_local $0) - (get_local $3) - ) - ) - ) - ) - (get_local $1) + get_local $0 + i64.eqz + if + i32.const 1968 + return + end + get_local $0 + get_global $~lib/builtins/u32.MAX_VALUE + i64.extend_u/i32 + i64.le_u + if + get_local $0 + i32.wrap/i64 + set_local $2 + get_local $2 + call $~lib/internal/number/decimalCount32 + set_local $3 + get_local $3 + call $~lib/internal/string/allocateUnsafe + set_local $1 + block $~lib/internal/number/utoa32_core|inlined.8 + get_local $1 + get_local $2 + get_local $3 + call $~lib/internal/number/utoa32_lut + end + else + get_local $0 + call $~lib/internal/number/decimalCount64 + set_local $3 + get_local $3 + call $~lib/internal/string/allocateUnsafe + set_local $1 + block $~lib/internal/number/utoa64_core|inlined.0 + get_local $1 + get_local $0 + get_local $3 + call $~lib/internal/number/utoa64_lut + end + end + get_local $1 ) (func $~lib/internal/number/itoa (; 200 ;) (type $Ii) (param $0 i64) (result i32) - (return - (call $~lib/internal/number/utoa64 - (get_local $0) - ) - ) + get_local $0 + call $~lib/internal/number/utoa64 + return ) (func $~lib/internal/number/itoa_stream (; 201 ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i64.eqz - (get_local $2) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode._0) - ) - (return - (i32.const 1) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (if - (i64.le_u - (get_local $2) - (i64.extend_u/i32 - (get_global $~lib/builtins/u32.MAX_VALUE) - ) - ) - (block - (set_local $4 - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_local $3 - (call $~lib/internal/number/decimalCount32 - (get_local $4) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.9 - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $4) - (get_local $3) - ) - ) - ) - (block - (set_local $3 - (call $~lib/internal/number/decimalCount64 - (get_local $2) - ) - ) - (block $~lib/internal/number/utoa64_core|inlined.1 - (call $~lib/internal/number/utoa64_lut - (get_local $0) - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (get_local $3) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i64.eqz + if + get_local $0 + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + i32.const 1 + return + end + i32.const 0 + set_local $3 + get_local $2 + get_global $~lib/builtins/u32.MAX_VALUE + i64.extend_u/i32 + i64.le_u + if + get_local $2 + i32.wrap/i64 + set_local $4 + get_local $4 + call $~lib/internal/number/decimalCount32 + set_local $3 + block $~lib/internal/number/utoa32_core|inlined.9 + get_local $0 + get_local $4 + get_local $3 + call $~lib/internal/number/utoa32_lut + end + else + get_local $2 + call $~lib/internal/number/decimalCount64 + set_local $3 + block $~lib/internal/number/utoa64_core|inlined.1 + get_local $0 + get_local $2 + get_local $3 + call $~lib/internal/number/utoa64_lut + end + end + get_local $3 ) (func $~lib/array/Array#join (; 202 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -18467,422 +13637,306 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (call $~lib/internal/number/itoa - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) - (set_local $8 - (i32.const 0) - ) - (i64.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (i32.add - (i32.mul - (i32.add - (i32.const 20) - (get_local $6) - ) - (get_local $2) - ) - (i32.const 20) - ) - ) - (set_local $9 - (call $~lib/internal/string/allocateUnsafe - (get_local $8) - ) - ) - (set_local $10 - (i32.const 0) - ) - (block $break|0 - (set_local $11 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $11) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) - (i64.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $11) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i64) - (i64.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (set_local $11 - (get_local $9) - ) - (if - (i32.gt_s - (get_local $8) - (get_local $10) - ) - (block - (set_local $11 - (call $~lib/string/String#substring - (get_local $9) - (i32.const 0) - (get_local $10) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.8 - (block - (if - (i32.eqz - (get_local $9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.12 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $9) - ) - (br $~lib/memory/memory.free|inlined.12) - ) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + end + call $~lib/internal/number/itoa + return + end + i32.const 20 + get_local $6 + i32.add + get_local $2 + i32.mul + i32.const 20 + i32.add + set_local $8 + get_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $9 + i32.const 0 + set_local $10 + block $break|0 + i32.const 0 + set_local $11 + loop $repeat|0 + get_local $11 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) + get_local $5 + get_local $11 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $7 + if + get_local $9 + get_local $10 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $6 + i32.add + set_local $10 + end + end + get_local $11 + i32.const 1 + i32.add + set_local $11 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i64) + get_local $5 + get_local $2 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $9 + set_local $11 + get_local $8 + get_local $10 + i32.gt_s + if + get_local $9 + i32.const 0 + get_local $10 + call $~lib/string/String#substring + set_local $11 + block $~lib/internal/string/freeUnsafe|inlined.8 + block + get_local $9 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.12 + block + get_local $9 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.12 + unreachable + end + unreachable + end + end + end + end + get_local $11 + return ) (func $~lib/internal/number/itoa64 (; 203 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i64.eqz - (get_local $0) - ) - (return - (i32.const 1968) - ) - ) - (set_local $1 - (i64.lt_s - (get_local $0) - (i64.const 0) - ) - ) - (if - (get_local $1) - (set_local $0 - (i64.sub - (i64.const 0) - (get_local $0) - ) - ) - ) - (if - (i64.le_u - (get_local $0) - (i64.extend_u/i32 - (get_global $~lib/builtins/u32.MAX_VALUE) - ) - ) - (block - (set_local $3 - (i32.wrap/i64 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $3) - ) - (get_local $1) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $4) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.10 - (call $~lib/internal/number/utoa32_lut - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - ) - (block - (set_local $4 - (i32.add - (call $~lib/internal/number/decimalCount64 - (get_local $0) - ) - (get_local $1) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $4) - ) - ) - (block $~lib/internal/number/utoa64_core|inlined.2 - (call $~lib/internal/number/utoa64_lut - (get_local $2) - (get_local $0) - (get_local $4) - ) - ) - ) - ) - (if - (get_local $1) - (i32.store16 offset=4 - (get_local $2) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - ) - (get_local $2) + get_local $0 + i64.eqz + if + i32.const 1968 + return + end + get_local $0 + i64.const 0 + i64.lt_s + set_local $1 + get_local $1 + if + i64.const 0 + get_local $0 + i64.sub + set_local $0 + end + get_local $0 + get_global $~lib/builtins/u32.MAX_VALUE + i64.extend_u/i32 + i64.le_u + if + get_local $0 + i32.wrap/i64 + set_local $3 + get_local $3 + call $~lib/internal/number/decimalCount32 + get_local $1 + i32.add + set_local $4 + get_local $4 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $~lib/internal/number/utoa32_core|inlined.10 + get_local $2 + get_local $3 + get_local $4 + call $~lib/internal/number/utoa32_lut + end + else + get_local $0 + call $~lib/internal/number/decimalCount64 + get_local $1 + i32.add + set_local $4 + get_local $4 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $~lib/internal/number/utoa64_core|inlined.2 + get_local $2 + get_local $0 + get_local $4 + call $~lib/internal/number/utoa64_lut + end + end + get_local $1 + if + get_local $2 + get_global $~lib/internal/string/CharCode.MINUS + i32.store16 offset=4 + end + get_local $2 ) (func $~lib/internal/number/itoa (; 204 ;) (type $Ii) (param $0 i64) (result i32) - (return - (call $~lib/internal/number/itoa64 - (get_local $0) - ) - ) + get_local $0 + call $~lib/internal/number/itoa64 + return ) (func $~lib/internal/number/itoa_stream (; 205 ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i64.eqz - (get_local $2) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode._0) - ) - (return - (i32.const 1) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (i64.lt_s - (get_local $2) - (i64.const 0) - ) - ) - (if - (get_local $4) - (set_local $2 - (i64.sub - (i64.const 0) - (get_local $2) - ) - ) - ) - (if - (i64.le_u - (get_local $2) - (i64.extend_u/i32 - (get_global $~lib/builtins/u32.MAX_VALUE) - ) - ) - (block - (set_local $5 - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_local $3 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $5) - ) - (get_local $4) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.11 - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $5) - (get_local $3) - ) - ) - ) - (block - (set_local $3 - (i32.add - (call $~lib/internal/number/decimalCount64 - (get_local $2) - ) - (get_local $4) - ) - ) - (block $~lib/internal/number/utoa64_core|inlined.3 - (call $~lib/internal/number/utoa64_lut - (get_local $0) - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (if - (get_local $4) - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - ) - (get_local $3) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i64.eqz + if + get_local $0 + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + i32.const 1 + return + end + i32.const 0 + set_local $3 + get_local $2 + i64.const 0 + i64.lt_s + set_local $4 + get_local $4 + if + i64.const 0 + get_local $2 + i64.sub + set_local $2 + end + get_local $2 + get_global $~lib/builtins/u32.MAX_VALUE + i64.extend_u/i32 + i64.le_u + if + get_local $2 + i32.wrap/i64 + set_local $5 + get_local $5 + call $~lib/internal/number/decimalCount32 + get_local $4 + i32.add + set_local $3 + block $~lib/internal/number/utoa32_core|inlined.11 + get_local $0 + get_local $5 + get_local $3 + call $~lib/internal/number/utoa32_lut + end + else + get_local $2 + call $~lib/internal/number/decimalCount64 + get_local $4 + i32.add + set_local $3 + block $~lib/internal/number/utoa64_core|inlined.3 + get_local $0 + get_local $2 + get_local $3 + call $~lib/internal/number/utoa64_lut + end + end + get_local $4 + if + get_local $0 + get_global $~lib/internal/string/CharCode.MINUS + i32.store16 offset=4 + end + get_local $3 ) (func $~lib/array/Array#join (; 206 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -18895,220 +13949,161 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (call $~lib/internal/number/itoa - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) - (set_local $8 - (i32.const 0) - ) - (i64.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (i32.add - (i32.mul - (i32.add - (i32.const 21) - (get_local $6) - ) - (get_local $2) - ) - (i32.const 21) - ) - ) - (set_local $9 - (call $~lib/internal/string/allocateUnsafe - (get_local $8) - ) - ) - (set_local $10 - (i32.const 0) - ) - (block $break|0 - (set_local $11 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $11) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) - (i64.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $11) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) - (i64.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (set_local $11 - (get_local $9) - ) - (if - (i32.gt_s - (get_local $8) - (get_local $10) - ) - (block - (set_local $11 - (call $~lib/string/String#substring - (get_local $9) - (i32.const 0) - (get_local $10) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.9 - (block - (if - (i32.eqz - (get_local $9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.13 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $9) - ) - (br $~lib/memory/memory.free|inlined.13) - ) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + end + call $~lib/internal/number/itoa + return + end + i32.const 21 + get_local $6 + i32.add + get_local $2 + i32.mul + i32.const 21 + i32.add + set_local $8 + get_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $9 + i32.const 0 + set_local $10 + block $break|0 + i32.const 0 + set_local $11 + loop $repeat|0 + get_local $11 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) + get_local $5 + get_local $11 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $7 + if + get_local $9 + get_local $10 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $6 + i32.add + set_local $10 + end + end + get_local $11 + i32.const 1 + i32.add + set_local $11 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) + get_local $5 + get_local $2 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $9 + set_local $11 + get_local $8 + get_local $10 + i32.gt_s + if + get_local $9 + i32.const 0 + get_local $10 + call $~lib/string/String#substring + set_local $11 + block $~lib/internal/string/freeUnsafe|inlined.9 + block + get_local $9 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.13 + block + get_local $9 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.13 + unreachable + end + unreachable + end + end + end + end + get_local $11 + return ) (func $~lib/array/Array>#join (; 207 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -19118,226 +14113,165 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.3 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (return - (if (result i32) - (get_local $4) - (call $~lib/array/Array#join - (get_local $4) - (get_local $1) - ) - (i32.const 1560) - ) - ) - ) - ) - (block $break|0 - (set_local $8 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $8) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.4 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (call $~lib/array/Array#join - (get_local $4) - (get_local $1) - ) - ) - ) - ) - (if - (get_local $7) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (get_local $1) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.5 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (call $~lib/array/Array#join - (get_local $4) - (get_local $1) - ) - ) - ) - ) - (return - (get_local $3) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.3 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if (result i32) + get_local $4 + get_local $1 + call $~lib/array/Array#join + else + i32.const 1560 + end + return + end + block $break|0 + i32.const 0 + set_local $8 + loop $repeat|0 + get_local $8 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.4 (result i32) + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $3 + get_local $4 + get_local $1 + call $~lib/array/Array#join + call $~lib/string/String.__concat + set_local $3 + end + get_local $7 + if + get_local $3 + get_local $1 + call $~lib/string/String.__concat + set_local $3 + end + end + get_local $8 + i32.const 1 + i32.add + set_local $8 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.5 (result i32) + get_local $5 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $3 + get_local $4 + get_local $1 + call $~lib/array/Array#join + call $~lib/string/String.__concat + set_local $3 + end + get_local $3 + return ) (func $~lib/internal/number/itoa (; 208 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/number/utoa32 - (i32.and - (get_local $0) - (i32.const 255) - ) - ) - ) + get_local $0 + i32.const 255 + i32.and + call $~lib/internal/number/utoa32 + return ) (func $~lib/internal/number/itoa_stream (; 209 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $2) - (i32.const 255) - ) - ) - (block - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode._0) - ) - (return - (i32.const 1) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (set_local $3 - (call $~lib/internal/number/decimalCount32 - (i32.and - (get_local $2) - (i32.const 255) - ) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.12 - (set_local $4 - (i32.and - (get_local $2) - (i32.const 255) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (get_local $4) - (get_local $3) - ) - ) - (get_local $3) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + get_local $2 + i32.const 255 + i32.and + i32.eqz + if + get_local $0 + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + i32.const 1 + return + end + i32.const 0 + set_local $3 + get_local $2 + i32.const 255 + i32.and + call $~lib/internal/number/decimalCount32 + set_local $3 + block $~lib/internal/number/utoa32_core|inlined.12 + get_local $2 + i32.const 255 + i32.and + set_local $4 + get_local $0 + get_local $4 + get_local $3 + call $~lib/internal/number/utoa32_lut + end + get_local $3 ) (func $~lib/array/Array#join (; 210 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -19350,220 +14284,161 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (call $~lib/internal/number/itoa - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load8_u offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 0) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (i32.add - (i32.mul - (i32.add - (i32.const 10) - (get_local $6) - ) - (get_local $2) - ) - (i32.const 10) - ) - ) - (set_local $9 - (call $~lib/internal/string/allocateUnsafe - (get_local $8) - ) - ) - (set_local $10 - (i32.const 0) - ) - (block $break|0 - (set_local $11 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $11) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) - (i32.load8_u offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $11) - (i32.const 0) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (if - (get_local $7) - (block - (call $~lib/internal/string/copyUnsafe - (get_local $9) - (get_local $10) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (set_local $10 - (i32.add - (get_local $10) - (get_local $6) - ) - ) - ) - ) - ) - (set_local $11 - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) - (i32.load8_u offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 0) - ) - ) - ) - ) - ) - (set_local $10 - (i32.add - (get_local $10) - (call $~lib/internal/number/itoa_stream - (get_local $9) - (get_local $10) - (get_local $4) - ) - ) - ) - (set_local $11 - (get_local $9) - ) - (if - (i32.gt_s - (get_local $8) - (get_local $10) - ) - (block - (set_local $11 - (call $~lib/string/String#substring - (get_local $9) - (i32.const 0) - (get_local $10) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.10 - (block - (if - (i32.eqz - (get_local $9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 1744) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.14 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $9) - ) - (br $~lib/memory/memory.free|inlined.14) - ) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=8 + end + call $~lib/internal/number/itoa + return + end + i32.const 10 + get_local $6 + i32.add + get_local $2 + i32.mul + i32.const 10 + i32.add + set_local $8 + get_local $8 + call $~lib/internal/string/allocateUnsafe + set_local $9 + i32.const 0 + set_local $10 + block $break|0 + i32.const 0 + set_local $11 + loop $repeat|0 + get_local $11 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + get_local $5 + get_local $11 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $7 + if + get_local $9 + get_local $10 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $10 + get_local $6 + i32.add + set_local $10 + end + end + get_local $11 + i32.const 1 + i32.add + set_local $11 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) + get_local $5 + get_local $2 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=8 + end + set_local $4 + get_local $10 + get_local $9 + get_local $10 + get_local $4 + call $~lib/internal/number/itoa_stream + i32.add + set_local $10 + get_local $9 + set_local $11 + get_local $8 + get_local $10 + i32.gt_s + if + get_local $9 + i32.const 0 + get_local $10 + call $~lib/string/String#substring + set_local $11 + block $~lib/internal/string/freeUnsafe|inlined.10 + block + get_local $9 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.14 + block + get_local $9 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.14 + unreachable + end + unreachable + end + end + end + end + get_local $11 + return ) (func $~lib/array/Array>#join (; 211 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -19573,161 +14448,119 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.0 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (return - (if (result i32) - (get_local $4) - (call $~lib/array/Array#join - (get_local $4) - (get_local $1) - ) - (i32.const 1560) - ) - ) - ) - ) - (block $break|0 - (set_local $8 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $8) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.1 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (call $~lib/array/Array#join - (get_local $4) - (get_local $1) - ) - ) - ) - ) - (if - (get_local $7) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (get_local $1) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.2 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (call $~lib/array/Array#join - (get_local $4) - (get_local $1) - ) - ) - ) - ) - (return - (get_local $3) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.0 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if (result i32) + get_local $4 + get_local $1 + call $~lib/array/Array#join + else + i32.const 1560 + end + return + end + block $break|0 + i32.const 0 + set_local $8 + loop $repeat|0 + get_local $8 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.1 (result i32) + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $3 + get_local $4 + get_local $1 + call $~lib/array/Array#join + call $~lib/string/String.__concat + set_local $3 + end + get_local $7 + if + get_local $3 + get_local $1 + call $~lib/string/String.__concat + set_local $3 + end + end + get_local $8 + i32.const 1 + i32.add + set_local $8 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.2 (result i32) + get_local $5 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $3 + get_local $4 + get_local $1 + call $~lib/array/Array#join + call $~lib/string/String.__concat + set_local $3 + end + get_local $3 + return ) (func $~lib/array/Array>#join (; 212 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -19737,161 +14570,119 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.0 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (return - (if (result i32) - (get_local $4) - (call $~lib/array/Array#join - (get_local $4) - (get_local $1) - ) - (i32.const 1560) - ) - ) - ) - ) - (block $break|0 - (set_local $8 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $8) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.1 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (call $~lib/array/Array#join - (get_local $4) - (get_local $1) - ) - ) - ) - ) - (if - (get_local $7) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (get_local $1) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.2 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (call $~lib/array/Array#join - (get_local $4) - (get_local $1) - ) - ) - ) - ) - (return - (get_local $3) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.0 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if (result i32) + get_local $4 + get_local $1 + call $~lib/array/Array#join + else + i32.const 1560 + end + return + end + block $break|0 + i32.const 0 + set_local $8 + loop $repeat|0 + get_local $8 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.1 (result i32) + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $3 + get_local $4 + get_local $1 + call $~lib/array/Array#join + call $~lib/string/String.__concat + set_local $3 + end + get_local $7 + if + get_local $3 + get_local $1 + call $~lib/string/String.__concat + set_local $3 + end + end + get_local $8 + i32.const 1 + i32.add + set_local $8 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.2 (result i32) + get_local $5 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $3 + get_local $4 + get_local $1 + call $~lib/array/Array#join + call $~lib/string/String.__concat + set_local $3 + end + get_local $3 + return ) (func $~lib/array/Array>>#join (; 213 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -19901,5418 +14692,3804 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $2 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (i32.const 1560) - ) - ) - (set_local $3 - (i32.const 1560) - ) - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.ne - (get_local $6) - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe>,Array>>|inlined.0 (result i32) - (set_local $8 - (i32.const 0) - ) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (return - (if (result i32) - (get_local $4) - (call $~lib/array/Array>#join - (get_local $4) - (get_local $1) - ) - (i32.const 1560) - ) - ) - ) - ) - (block $break|0 - (set_local $8 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $8) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe>,Array>>|inlined.1 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (call $~lib/array/Array>#join - (get_local $4) - (get_local $1) - ) - ) - ) - ) - (if - (get_local $7) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (get_local $1) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe>,Array>>|inlined.2 (result i32) - (i32.load offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - ) - (if - (get_local $4) - (set_local $3 - (call $~lib/string/String.__concat - (get_local $3) - (call $~lib/array/Array>#join - (get_local $4) - (get_local $1) - ) - ) - ) - ) - (return - (get_local $3) - ) + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + set_local $2 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 1560 + return + end + i32.const 1560 + set_local $3 + get_local $0 + i32.load + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $6 + i32.const 0 + i32.ne + set_local $7 + get_local $2 + i32.eqz + if + block $~lib/internal/arraybuffer/loadUnsafe>,Array>>|inlined.0 (result i32) + i32.const 0 + set_local $8 + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if (result i32) + get_local $4 + get_local $1 + call $~lib/array/Array>#join + else + i32.const 1560 + end + return + end + block $break|0 + i32.const 0 + set_local $8 + loop $repeat|0 + get_local $8 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafe>,Array>>|inlined.1 (result i32) + get_local $5 + get_local $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $3 + get_local $4 + get_local $1 + call $~lib/array/Array>#join + call $~lib/string/String.__concat + set_local $3 + end + get_local $7 + if + get_local $3 + get_local $1 + call $~lib/string/String.__concat + set_local $3 + end + end + get_local $8 + i32.const 1 + i32.add + set_local $8 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafe>,Array>>|inlined.2 (result i32) + get_local $5 + get_local $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $4 + get_local $4 + if + get_local $3 + get_local $4 + get_local $1 + call $~lib/array/Array>#join + call $~lib/string/String.__concat + set_local $3 + end + get_local $3 + return ) (func $start (; 214 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/array/arr - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 0) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr8) - (i32.const 1) - (i32.const 1) - (i32.const 3) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr8) - (i32.const 144) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 36) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/array/Array#fill|trampoline - (get_global $std/array/arr8) - (i32.const 0) - (i32.const 0) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr8) - (i32.const 200) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr8) - (i32.const 1) - (i32.const 0) - (i32.const -3) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr8) - (i32.const 224) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 42) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call $~lib/array/Array#fill|trampoline - (get_global $std/array/arr8) - (i32.const 2) - (i32.const -2) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr8) - (i32.const 248) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 45) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr8) - (i32.const 0) - (i32.const 1) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr8) - (i32.const 272) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 48) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr32) - (i32.const 1) - (i32.const 1) - (i32.const 3) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr32) - (i32.const 352) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 53) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/array/Array#fill|trampoline - (get_global $std/array/arr32) - (i32.const 0) - (i32.const 0) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr32) - (i32.const 392) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 56) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr32) - (i32.const 1) - (i32.const 0) - (i32.const -3) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr32) - (i32.const 432) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 59) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call $~lib/array/Array#fill|trampoline - (get_global $std/array/arr32) - (i32.const 2) - (i32.const -2) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr32) - (i32.const 472) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 62) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#fill - (get_global $std/array/arr32) - (i32.const 0) - (i32.const 1) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/arr32) - (i32.const 512) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 65) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 69) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 70) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 42) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 74) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.1 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 75) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 76) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 80) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.2 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 81) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 82) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 43) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.3 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 86) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 87) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 43) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 88) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 44) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.4 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 92) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 93) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 43) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 94) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 95) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 45) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.5 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 99) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 100) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 43) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 45) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 103) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/other - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 0) - ) - ) - (set_global $std/array/out - (call $~lib/array/Array#concat - (get_global $std/array/arr) - (get_global $std/array/other) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.6 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.7 (result i32) - (set_local $0 - (get_global $std/array/out) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 112) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#concat - (get_global $std/array/out) - (i32.const 528) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 0) - ) - (i32.const 43) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 1) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 118) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 2) - ) - (i32.const 45) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 119) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/other) - (i32.const 46) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/other) - (i32.const 47) - ) - ) - (set_global $std/array/out - (call $~lib/array/Array#concat - (get_global $std/array/arr) - (get_global $std/array/other) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.8 (result i32) - (set_local $0 - (get_global $std/array/other) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.9 (result i32) - (set_local $0 - (get_global $std/array/out) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 0) - ) - (i32.const 43) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 1) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 2) - ) - (i32.const 45) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 3) - ) - (i32.const 46) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 4) - ) - (i32.const 47) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/out) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.10 (result i32) - (set_local $0 - (get_global $std/array/out) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 136) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/out - (call $~lib/array/Array#concat - (get_global $std/array/arr) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.11 (result i32) - (set_local $0 - (get_global $std/array/out) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 139) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/out) - (i32.const 2) - ) - (i32.const 45) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 140) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.12 (result i32) - (set_local $0 - (get_global $std/array/source) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 143) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/out - (call $~lib/array/Array#concat - (get_global $std/array/source) - (get_global $std/array/arr) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.13 (result i32) - (set_local $0 - (get_global $std/array/out) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 145) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.14 (result i32) - (set_local $0 - (get_global $std/array/source) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 146) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#unshift - (get_global $std/array/arr) - (i32.const 42) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.15 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 152) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 153) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 154) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 43) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 156) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 3) - ) - (i32.const 45) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 157) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#unshift - (get_global $std/array/arr) - (i32.const 41) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.16 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 161) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 162) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 41) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 163) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 164) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 43) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 3) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 166) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 4) - ) - (i32.const 45) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 167) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#shift - (get_global $std/array/arr) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 41) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 173) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.17 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 174) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 175) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 176) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 43) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 177) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 178) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 3) - ) - (i32.const 45) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 179) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 45) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 183) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.18 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 184) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 185) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 186) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 43) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 187) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 188) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#reverse - (get_global $std/array/arr) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.19 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 194) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 195) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 196) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 43) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 197) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 2) - ) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 198) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 43) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 44) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 44) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 207) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 42) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 211) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 45) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 215) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 100) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 219) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const -100) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 223) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const -2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 227) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const -4) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 231) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 235) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 239) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#indexOf - (get_global $std/array/arr) - (i32.const 43) - (i32.const 2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 243) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.and - (block $~lib/array/Array#includes|inlined.0 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (set_local $1 - (i32.const 44) - ) - (set_local $2 - (i32.const 0) - ) - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/includes) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 249) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.and - (block $~lib/array/Array#includes|inlined.1 (result i32) - (set_local $2 - (get_global $std/array/arr) - ) - (set_local $1 - (i32.const 42) - ) - (set_local $0 - (i32.const 0) - ) - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_local $2) - (get_local $1) - (get_local $0) - ) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/includes) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 253) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.and - (block $~lib/array/Array#includes|inlined.2 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (set_local $1 - (i32.const 45) - ) - (set_local $2 - (i32.const 0) - ) - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/includes) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 257) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.and - (block $~lib/array/Array#includes|inlined.3 (result i32) - (set_local $2 - (get_global $std/array/arr) - ) - (set_local $1 - (i32.const 43) - ) - (set_local $0 - (i32.const 100) - ) - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_local $2) - (get_local $1) - (get_local $0) - ) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/includes) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 261) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.and - (block $~lib/array/Array#includes|inlined.4 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (set_local $1 - (i32.const 43) - ) - (set_local $2 - (i32.const -100) - ) - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/includes) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 265) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.and - (block $~lib/array/Array#includes|inlined.5 (result i32) - (set_local $2 - (get_global $std/array/arr) - ) - (set_local $1 - (i32.const 43) - ) - (set_local $0 - (i32.const -2) - ) - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_local $2) - (get_local $1) - (get_local $0) - ) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/includes) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 269) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.and - (block $~lib/array/Array#includes|inlined.6 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (set_local $1 - (i32.const 43) - ) - (set_local $2 - (i32.const -4) - ) - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/includes) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 273) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.and - (block $~lib/array/Array#includes|inlined.7 (result i32) - (set_local $2 - (get_global $std/array/arr) - ) - (set_local $1 - (i32.const 43) - ) - (set_local $0 - (i32.const 0) - ) - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_local $2) - (get_local $1) - (get_local $0) - ) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/includes) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 277) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.and - (block $~lib/array/Array#includes|inlined.8 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (set_local $1 - (i32.const 43) - ) - (set_local $2 - (i32.const 1) - ) - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/includes) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 281) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/includes - (i32.and - (block $~lib/array/Array#includes|inlined.9 (result i32) - (set_local $2 - (get_global $std/array/arr) - ) - (set_local $1 - (i32.const 43) - ) - (set_local $0 - (i32.const 2) - ) - (i32.ge_s - (call $~lib/array/Array#indexOf - (get_local $2) - (get_local $1) - (get_local $0) - ) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/includes) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 285) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#splice - (get_global $std/array/arr) - (i32.const 1) - (i32.const 1) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.20 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 289) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $std/array/internalCapacity - (get_global $std/array/arr) - ) - (i32.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 290) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - (i32.const 44) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 291) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 1) - ) - (i32.const 42) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 292) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__set - (get_global $std/array/arr) - (i32.const 0) - (i32.const 0) - ) - (call $~lib/array/Array#__set - (get_global $std/array/arr) - (i32.const 1) - (i32.const 1) - ) - (call $~lib/array/Array#__set - (get_global $std/array/arr) - (i32.const 2) - (i32.const 2) - ) - (call $~lib/array/Array#__set - (get_global $std/array/arr) - (i32.const 3) - (i32.const 3) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 302) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 305) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 308) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 4) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 316) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.21 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 317) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 5) - ) - ) - (if - (i32.eqz - (i32.ne - (get_global $std/array/i) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 319) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#findIndex - (get_global $std/array/arr) - (i32.const 6) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 332) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.22 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 333) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/every - (call $~lib/array/Array#every - (get_global $std/array/arr) - (i32.const 7) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/every) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 341) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/every - (call $~lib/array/Array#every - (get_global $std/array/arr) - (i32.const 8) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/every) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 344) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/every - (call $~lib/array/Array#every - (get_global $std/array/arr) - (i32.const 9) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/every) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 352) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.23 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 353) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/every - (call $~lib/array/Array#every - (get_global $std/array/arr) - (i32.const 10) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/every) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 355) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/every - (call $~lib/array/Array#every - (get_global $std/array/arr) - (i32.const 11) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/every) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 368) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.24 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 369) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/some - (call $~lib/array/Array#some - (get_global $std/array/arr) - (i32.const 12) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/some) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 377) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/some - (call $~lib/array/Array#some - (get_global $std/array/arr) - (i32.const 13) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/some) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 380) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/some - (call $~lib/array/Array#some - (get_global $std/array/arr) - (i32.const 14) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/some) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 388) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.25 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 389) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/some - (call $~lib/array/Array#some - (get_global $std/array/arr) - (i32.const 15) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/some) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 391) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/some - (call $~lib/array/Array#some - (get_global $std/array/arr) - (i32.const 16) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/some) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 404) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.26 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 405) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (call $~lib/array/Array#forEach - (get_global $std/array/arr) - (i32.const 17) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 6) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 414) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (call $~lib/array/Array#forEach - (get_global $std/array/arr) - (i32.const 18) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 6) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 423) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.27 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 424) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (call $~lib/array/Array#forEach - (get_global $std/array/arr) - (i32.const 19) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 406) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 427) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (call $~lib/array/Array#forEach - (get_global $std/array/arr) - (i32.const 20) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 441) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.28 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 442) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/newArr - (call $~lib/array/Array#map - (get_global $std/array/arr) - (i32.const 21) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $0 - (get_global $std/array/newArr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 451) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (call $~lib/array/Array#__get - (get_global $std/array/newArr) - (i32.const 0) - ) - (f32.convert_s/i32 - (call $~lib/array/Array#__get - (get_global $std/array/arr) - (i32.const 0) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 452) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#map - (get_global $std/array/arr) - (i32.const 22) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 6) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 461) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.29 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 462) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#map - (get_global $std/array/arr) - (i32.const 23) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 406) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 469) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#map - (get_global $std/array/arr) - (i32.const 24) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 484) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.30 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 485) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/filteredArr - (call $~lib/array/Array#filter - (get_global $std/array/arr) - (i32.const 25) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.31 (result i32) - (set_local $0 - (get_global $std/array/filteredArr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 493) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#filter - (get_global $std/array/arr) - (i32.const 26) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 6) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 502) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.32 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 503) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#filter - (get_global $std/array/arr) - (i32.const 27) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 406) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 510) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (i32.const 0) - ) - (drop - (call $~lib/array/Array#filter - (get_global $std/array/arr) - (i32.const 28) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 525) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.33 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 526) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 29) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 6) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 534) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 30) - (i32.const 4) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 538) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/boolVal - (i32.and - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 31) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/boolVal) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 541) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/boolVal - (i32.and - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 32) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/boolVal) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 544) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 33) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 6) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 552) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.34 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 553) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 34) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 555) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduce - (get_global $std/array/arr) - (i32.const 35) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 568) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.35 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 569) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 36) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 6) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 577) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 37) - (i32.const 4) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 581) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/boolVal - (i32.and - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 38) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/boolVal) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 584) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/boolVal - (i32.and - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 39) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/boolVal) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 587) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 40) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 6) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 595) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.36 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 596) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 41) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 598) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (drop - (call $~lib/array/Array#pop - (get_global $std/array/arr) - ) - ) - (set_global $std/array/i - (call $~lib/array/Array#reduceRight - (get_global $std/array/arr) - (i32.const 42) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/array/i) - (i32.const 6) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 611) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.37 (result i32) - (set_local $0 - (get_global $std/array/arr) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 612) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 0) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 1) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 2) - ) - ) - (drop - (call $~lib/array/Array#push - (get_global $std/array/arr) - (i32.const 3) - ) - ) - (call $~lib/math/NativeMath.seedRandom - (i64.reinterpret/f64 - (call $~lib/bindings/Math/random) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 0) - ) - (call $~lib/array/Array#sort|trampoline - (get_global $std/array/f32ArrayTyped) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/f32ArrayTyped) - (i32.const 896) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 699) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 0) - ) - (call $~lib/array/Array#sort|trampoline - (get_global $std/array/f64ArrayTyped) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/f64ArrayTyped) - (i32.const 1168) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 703) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 0) - ) - (call $~lib/array/Array#sort|trampoline - (get_global $std/array/i32ArrayTyped) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/i32ArrayTyped) - (i32.const 1248) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 707) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 0) - ) - (call $~lib/array/Array#sort|trampoline - (get_global $std/array/u32ArrayTyped) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/u32ArrayTyped) - (i32.const 1328) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 711) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/reversed64 - (call $std/array/createReverseOrderedArray - (i32.const 64) - ) - ) - (set_global $std/array/reversed128 - (call $std/array/createReverseOrderedArray - (i32.const 128) - ) - ) - (set_global $std/array/reversed1024 - (call $std/array/createReverseOrderedArray - (i32.const 1024) - ) - ) - (set_global $std/array/reversed10000 - (call $std/array/createReverseOrderedArray - (i32.const 10000) - ) - ) - (set_global $std/array/randomized512 - (call $std/array/createRandomOrderedArray - (i32.const 512) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed0) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed1) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed1) - (i32.const 1496) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 731) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed2) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed2) - (i32.const 1520) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 734) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed4) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed4) - (get_global $std/array/expected4) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 737) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed64) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed64) - (get_global $std/array/expected4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 740) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed128) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed128) - (get_global $std/array/expected4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 743) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed1024) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed1024) - (get_global $std/array/expected4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 746) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/reversed10000) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/reversed10000) - (get_global $std/array/expected4) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 749) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/array/assertSortedDefault - (get_global $std/array/randomized512) - ) - (set_global $std/array/randomized64 - (call $std/array/createRandomOrderedArray - (i32.const 64) - ) - ) - (set_global $std/array/randomized257 - (call $std/array/createRandomOrderedArray - (i32.const 257) - ) - ) - (call $std/array/assertSorted - (get_global $std/array/randomized64) - (i32.const 48) - ) - (call $std/array/assertSorted - (get_global $std/array/randomized64) - (i32.const 49) - ) - (call $std/array/assertSorted - (get_global $std/array/randomized257) - (i32.const 50) - ) - (call $std/array/assertSorted - (get_global $std/array/randomized257) - (i32.const 51) - ) - (set_global $std/array/reversedNested512 - (call $std/array/createReverseOrderedNestedArray - (i32.const 512) - ) - ) - (call $std/array/assertSorted> - (get_global $std/array/reversedNested512) - (i32.const 52) - ) - (set_global $std/array/reversedElements512 - (call $std/array/createReverseOrderedElementsArray - (i32.const 512) - ) - ) - (call $std/array/assertSorted> - (get_global $std/array/reversedElements512) - (i32.const 53) - ) - (call $std/array/assertSorted - (get_global $std/array/randomStringsActual) - (i32.const 54) - ) - (if - (i32.eqz - (call $std/array/isArraysEqual - (get_global $std/array/randomStringsActual) - (get_global $std/array/randomStringsExpected) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 778) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/randomStrings400 - (call $std/array/createRandomStringArray - (i32.const 400) - ) - ) - (call $std/array/assertSorted - (get_global $std/array/randomStrings400) - (i32.const 55) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 1896) - (i32.const 1872) - ) - (i32.const 1904) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 787) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 2528) - (i32.const 1560) - ) - (i32.const 2536) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 788) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 2632) - (i32.const 2592) - ) - (i32.const 2536) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 789) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 2688) - (i32.const 2664) - ) - (i32.const 2696) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 790) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 4344) - (i32.const 2824) - ) - (i32.const 4352) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 791) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (i32.const 4520) - (i32.const 1560) - ) - (i32.const 4440) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 792) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/array/refArr - (block (result i32) - (set_local $3 - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 3) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $3) - (i32.const 0) - (call $std/array/Ref#constructor - (i32.const 0) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $3) - (i32.const 1) - (i32.const 0) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $3) - (i32.const 2) - (call $std/array/Ref#constructor - (i32.const 0) - ) - ) - (get_local $3) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/array/Array#join - (get_global $std/array/refArr) - (i32.const 1872) - ) - (i32.const 4568) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 794) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array#toString|inlined.1 (result i32) - (set_local $3 - (get_global $std/array/reversed0) - ) - (call $~lib/array/Array#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 1560) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 798) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array#toString|inlined.3 (result i32) - (set_local $3 - (get_global $std/array/reversed1) - ) - (call $~lib/array/Array#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 4440) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 799) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array#toString|inlined.5 (result i32) - (set_local $3 - (get_global $std/array/reversed2) - ) - (call $~lib/array/Array#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 4640) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 800) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array#toString|inlined.7 (result i32) - (set_local $3 - (get_global $std/array/reversed4) - ) - (call $~lib/array/Array#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 4656) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 801) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array#toString|inlined.1 (result i32) - (set_local $3 - (i32.const 4720) - ) - (call $~lib/array/Array#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 4728) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 803) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array#toString|inlined.1 (result i32) - (set_local $3 - (i32.const 4784) - ) - (call $~lib/array/Array#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 4792) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 804) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array#toString|inlined.1 (result i32) - (set_local $3 - (i32.const 5408) - ) - (call $~lib/array/Array#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 5416) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 805) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array#toString|inlined.1 (result i32) - (set_local $3 - (i32.const 5608) - ) - (call $~lib/array/Array#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 5616) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 806) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array#toString|inlined.1 (result i32) - (set_local $3 - (get_global $std/array/randomStringsExpected) - ) - (call $~lib/array/Array#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 5704) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 807) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array#toString|inlined.3 (result i32) - (set_local $3 - (i32.const 5824) - ) - (call $~lib/array/Array#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 5832) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 808) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array>#toString|inlined.1 (result i32) - (set_local $3 - (get_global $std/array/subarr32) - ) - (call $~lib/array/Array>#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 5920) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 811) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array>#toString|inlined.1 (result i32) - (set_local $3 - (get_global $std/array/subarr8) - ) - (call $~lib/array/Array>#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 5920) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 814) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block $~lib/array/Array>>#toString|inlined.1 (result i32) - (set_local $3 - (get_global $std/array/subarrU32) - ) - (call $~lib/array/Array>>#join - (get_local $3) - (i32.const 1872) - ) - ) - (i32.const 4440) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 152) - (i32.const 817) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + set_global $std/array/arr + get_global $std/array/arr8 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + drop + get_global $std/array/arr8 + i32.const 144 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 36 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/array/arr8 + i32.const 0 + i32.const 0 + i32.const 0 + call $~lib/array/Array#fill|trampoline + end + drop + get_global $std/array/arr8 + i32.const 200 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr8 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + drop + get_global $std/array/arr8 + i32.const 224 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 42 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 2 + set_global $~argc + get_global $std/array/arr8 + i32.const 2 + i32.const -2 + i32.const 0 + call $~lib/array/Array#fill|trampoline + end + drop + get_global $std/array/arr8 + i32.const 248 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 45 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr8 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + drop + get_global $std/array/arr8 + i32.const 272 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 48 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr32 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + drop + get_global $std/array/arr32 + i32.const 352 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 53 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/array/arr32 + i32.const 0 + i32.const 0 + i32.const 0 + call $~lib/array/Array#fill|trampoline + end + drop + get_global $std/array/arr32 + i32.const 392 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 56 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr32 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + drop + get_global $std/array/arr32 + i32.const 432 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 59 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 2 + set_global $~argc + get_global $std/array/arr32 + i32.const 2 + i32.const -2 + i32.const 0 + call $~lib/array/Array#fill|trampoline + end + drop + get_global $std/array/arr32 + i32.const 472 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 62 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr32 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + drop + get_global $std/array/arr32 + i32.const 512 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 65 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 69 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 70 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 42 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 74 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.1 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 75 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 76 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + set_global $std/array/i + get_global $std/array/i + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 80 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.2 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 81 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 82 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + call $~lib/array/Array#push + drop + block $~lib/array/Array#get:length|inlined.3 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 86 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 87 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 88 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 44 + call $~lib/array/Array#push + drop + block $~lib/array/Array#get:length|inlined.4 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 92 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 93 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 94 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 95 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 45 + call $~lib/array/Array#push + drop + block $~lib/array/Array#get:length|inlined.5 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 99 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 100 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 101 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 102 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 103 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + set_global $std/array/other + get_global $std/array/arr + get_global $std/array/other + call $~lib/array/Array#concat + set_global $std/array/out + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 110 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.6 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 111 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.7 (result i32) + get_global $std/array/out + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 112 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 528 + call $~lib/array/Array#concat + drop + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 115 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 117 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 118 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 119 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/other + i32.const 46 + call $~lib/array/Array#push + drop + get_global $std/array/other + i32.const 47 + call $~lib/array/Array#push + drop + get_global $std/array/arr + get_global $std/array/other + call $~lib/array/Array#concat + set_global $std/array/out + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.8 (result i32) + get_global $std/array/other + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 127 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.9 (result i32) + get_global $std/array/out + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 129 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 130 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 131 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 3 + call $~lib/array/Array#__get + i32.const 46 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 132 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 4 + call $~lib/array/Array#__get + i32.const 47 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 133 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + call $~lib/array/Array#pop + drop + block $~lib/array/Array#get:length|inlined.10 (result i32) + get_global $std/array/out + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 136 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#concat + set_global $std/array/out + block $~lib/array/Array#get:length|inlined.11 (result i32) + get_global $std/array/out + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 139 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/out + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 140 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.12 (result i32) + get_global $std/array/source + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/source + get_global $std/array/arr + call $~lib/array/Array#concat + set_global $std/array/out + block $~lib/array/Array#get:length|inlined.13 (result i32) + get_global $std/array/out + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 145 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.14 (result i32) + get_global $std/array/source + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 146 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 42 + call $~lib/array/Array#unshift + drop + block $~lib/array/Array#get:length|inlined.15 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 152 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 153 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 154 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 156 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 157 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 41 + call $~lib/array/Array#unshift + drop + block $~lib/array/Array#get:length|inlined.16 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 161 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 162 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 41 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 163 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 164 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 166 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 4 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 167 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#shift + set_global $std/array/i + get_global $std/array/i + i32.const 41 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 173 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.17 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 174 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 175 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 176 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 177 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 178 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 179 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + set_global $std/array/i + get_global $std/array/i + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 183 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.18 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 184 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 185 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 186 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 187 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 188 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#reverse + drop + block $~lib/array/Array#get:length|inlined.19 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 194 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 195 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 196 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 197 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 198 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 44 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 44 + i32.const 0 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 207 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 211 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 45 + i32.const 0 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 215 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 100 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 219 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const -100 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 223 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const -2 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 227 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const -4 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 231 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 0 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 235 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 1 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 239 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 43 + i32.const 2 + call $~lib/array/Array#indexOf + set_global $std/array/i + get_global $std/array/i + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 243 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#includes|inlined.0 (result i32) + get_global $std/array/arr + set_local $0 + i32.const 44 + set_local $1 + i32.const 0 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + end + i32.const 1 + i32.and + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#includes|inlined.1 (result i32) + get_global $std/array/arr + set_local $2 + i32.const 42 + set_local $1 + i32.const 0 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + end + i32.const 1 + i32.and + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 253 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#includes|inlined.2 (result i32) + get_global $std/array/arr + set_local $0 + i32.const 45 + set_local $1 + i32.const 0 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + end + i32.const 1 + i32.and + set_global $std/array/includes + get_global $std/array/includes + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 257 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#includes|inlined.3 (result i32) + get_global $std/array/arr + set_local $2 + i32.const 43 + set_local $1 + i32.const 100 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + end + i32.const 1 + i32.and + set_global $std/array/includes + get_global $std/array/includes + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 261 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#includes|inlined.4 (result i32) + get_global $std/array/arr + set_local $0 + i32.const 43 + set_local $1 + i32.const -100 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + end + i32.const 1 + i32.and + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 265 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#includes|inlined.5 (result i32) + get_global $std/array/arr + set_local $2 + i32.const 43 + set_local $1 + i32.const -2 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + end + i32.const 1 + i32.and + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 269 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#includes|inlined.6 (result i32) + get_global $std/array/arr + set_local $0 + i32.const 43 + set_local $1 + i32.const -4 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + end + i32.const 1 + i32.and + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 273 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#includes|inlined.7 (result i32) + get_global $std/array/arr + set_local $2 + i32.const 43 + set_local $1 + i32.const 0 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + end + i32.const 1 + i32.and + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 277 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#includes|inlined.8 (result i32) + get_global $std/array/arr + set_local $0 + i32.const 43 + set_local $1 + i32.const 1 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + end + i32.const 1 + i32.and + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 281 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#includes|inlined.9 (result i32) + get_global $std/array/arr + set_local $2 + i32.const 43 + set_local $1 + i32.const 2 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + end + i32.const 1 + i32.and + set_global $std/array/includes + get_global $std/array/includes + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 285 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + i32.const 1 + call $~lib/array/Array#splice + block $~lib/array/Array#get:length|inlined.20 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 289 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 290 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 291 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 292 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + i32.const 0 + call $~lib/array/Array#__set + get_global $std/array/arr + i32.const 1 + i32.const 1 + call $~lib/array/Array#__set + get_global $std/array/arr + i32.const 2 + i32.const 2 + call $~lib/array/Array#__set + get_global $std/array/arr + i32.const 3 + i32.const 3 + call $~lib/array/Array#__set + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 302 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 305 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 308 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 4 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 316 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.21 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 317 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 5 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 319 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + i32.const 6 + call $~lib/array/Array#findIndex + set_global $std/array/i + get_global $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 332 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.22 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 333 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 7 + call $~lib/array/Array#every + set_global $std/array/every + get_global $std/array/every + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 341 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 8 + call $~lib/array/Array#every + set_global $std/array/every + get_global $std/array/every + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 344 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 9 + call $~lib/array/Array#every + set_global $std/array/every + get_global $std/array/every + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 352 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.23 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 353 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 10 + call $~lib/array/Array#every + set_global $std/array/every + get_global $std/array/every + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 355 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + i32.const 11 + call $~lib/array/Array#every + set_global $std/array/every + get_global $std/array/every + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 368 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.24 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 369 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 12 + call $~lib/array/Array#some + set_global $std/array/some + get_global $std/array/some + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 377 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 13 + call $~lib/array/Array#some + set_global $std/array/some + get_global $std/array/some + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 380 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 14 + call $~lib/array/Array#some + set_global $std/array/some + get_global $std/array/some + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 388 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.25 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 389 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 15 + call $~lib/array/Array#some + set_global $std/array/some + get_global $std/array/some + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 391 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + i32.const 16 + call $~lib/array/Array#some + set_global $std/array/some + get_global $std/array/some + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 404 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.26 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 405 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 17 + call $~lib/array/Array#forEach + get_global $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 414 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 18 + call $~lib/array/Array#forEach + get_global $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 423 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.27 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 424 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 19 + call $~lib/array/Array#forEach + get_global $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 427 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 20 + call $~lib/array/Array#forEach + get_global $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 441 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.28 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 442 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 21 + call $~lib/array/Array#map + set_global $std/array/newArr + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/array/newArr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 451 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/newArr + i32.const 0 + call $~lib/array/Array#__get + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + f32.convert_s/i32 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 452 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 22 + call $~lib/array/Array#map + drop + get_global $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 461 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.29 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 462 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 23 + call $~lib/array/Array#map + drop + get_global $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 469 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 24 + call $~lib/array/Array#map + drop + get_global $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 484 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.30 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 485 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 25 + call $~lib/array/Array#filter + set_global $std/array/filteredArr + block $~lib/array/Array#get:length|inlined.31 (result i32) + get_global $std/array/filteredArr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 493 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 26 + call $~lib/array/Array#filter + drop + get_global $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 502 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.32 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 503 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 27 + call $~lib/array/Array#filter + drop + get_global $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 510 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + set_global $std/array/i + get_global $std/array/arr + i32.const 28 + call $~lib/array/Array#filter + drop + get_global $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 525 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.33 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 526 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 29 + i32.const 0 + call $~lib/array/Array#reduce + set_global $std/array/i + get_global $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 534 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 30 + i32.const 4 + call $~lib/array/Array#reduce + set_global $std/array/i + get_global $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 538 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 31 + i32.const 0 + call $~lib/array/Array#reduce + i32.const 1 + i32.and + set_global $std/array/boolVal + get_global $std/array/boolVal + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 541 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 32 + i32.const 0 + call $~lib/array/Array#reduce + i32.const 1 + i32.and + set_global $std/array/boolVal + get_global $std/array/boolVal + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 544 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 33 + i32.const 0 + call $~lib/array/Array#reduce + set_global $std/array/i + get_global $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 552 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.34 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 553 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 34 + i32.const 0 + call $~lib/array/Array#reduce + set_global $std/array/i + get_global $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 555 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + i32.const 35 + i32.const 0 + call $~lib/array/Array#reduce + set_global $std/array/i + get_global $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 568 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.35 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 569 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 36 + i32.const 0 + call $~lib/array/Array#reduceRight + set_global $std/array/i + get_global $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 577 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 37 + i32.const 4 + call $~lib/array/Array#reduceRight + set_global $std/array/i + get_global $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 581 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 38 + i32.const 0 + call $~lib/array/Array#reduceRight + i32.const 1 + i32.and + set_global $std/array/boolVal + get_global $std/array/boolVal + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 584 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 39 + i32.const 0 + call $~lib/array/Array#reduceRight + i32.const 1 + i32.and + set_global $std/array/boolVal + get_global $std/array/boolVal + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 587 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 40 + i32.const 0 + call $~lib/array/Array#reduceRight + set_global $std/array/i + get_global $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 595 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.36 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 596 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 41 + i32.const 0 + call $~lib/array/Array#reduceRight + set_global $std/array/i + get_global $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 598 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + call $~lib/array/Array#pop + drop + get_global $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#reduceRight + set_global $std/array/i + get_global $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 611 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.37 (result i32) + get_global $std/array/arr + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 612 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/arr + i32.const 0 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 1 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + get_global $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + call $~lib/bindings/Math/random + i64.reinterpret/f64 + call $~lib/math/NativeMath.seedRandom + block (result i32) + i32.const 0 + set_global $~argc + get_global $std/array/f32ArrayTyped + i32.const 0 + call $~lib/array/Array#sort|trampoline + end + drop + get_global $std/array/f32ArrayTyped + i32.const 896 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 699 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + set_global $~argc + get_global $std/array/f64ArrayTyped + i32.const 0 + call $~lib/array/Array#sort|trampoline + end + drop + get_global $std/array/f64ArrayTyped + i32.const 1168 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 703 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + set_global $~argc + get_global $std/array/i32ArrayTyped + i32.const 0 + call $~lib/array/Array#sort|trampoline + end + drop + get_global $std/array/i32ArrayTyped + i32.const 1248 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 707 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + set_global $~argc + get_global $std/array/u32ArrayTyped + i32.const 0 + call $~lib/array/Array#sort|trampoline + end + drop + get_global $std/array/u32ArrayTyped + i32.const 1328 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 711 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 64 + call $std/array/createReverseOrderedArray + set_global $std/array/reversed64 + i32.const 128 + call $std/array/createReverseOrderedArray + set_global $std/array/reversed128 + i32.const 1024 + call $std/array/createReverseOrderedArray + set_global $std/array/reversed1024 + i32.const 10000 + call $std/array/createReverseOrderedArray + set_global $std/array/reversed10000 + i32.const 512 + call $std/array/createRandomOrderedArray + set_global $std/array/randomized512 + get_global $std/array/reversed0 + call $std/array/assertSortedDefault + get_global $std/array/reversed1 + call $std/array/assertSortedDefault + get_global $std/array/reversed1 + i32.const 1496 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 731 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed2 + call $std/array/assertSortedDefault + get_global $std/array/reversed2 + i32.const 1520 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 734 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed4 + call $std/array/assertSortedDefault + get_global $std/array/reversed4 + get_global $std/array/expected4 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 737 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed64 + call $std/array/assertSortedDefault + get_global $std/array/reversed64 + get_global $std/array/expected4 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 740 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed128 + call $std/array/assertSortedDefault + get_global $std/array/reversed128 + get_global $std/array/expected4 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 743 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed1024 + call $std/array/assertSortedDefault + get_global $std/array/reversed1024 + get_global $std/array/expected4 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 746 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/reversed10000 + call $std/array/assertSortedDefault + get_global $std/array/reversed10000 + get_global $std/array/expected4 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 749 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/array/randomized512 + call $std/array/assertSortedDefault + i32.const 64 + call $std/array/createRandomOrderedArray + set_global $std/array/randomized64 + i32.const 257 + call $std/array/createRandomOrderedArray + set_global $std/array/randomized257 + get_global $std/array/randomized64 + i32.const 48 + call $std/array/assertSorted + get_global $std/array/randomized64 + i32.const 49 + call $std/array/assertSorted + get_global $std/array/randomized257 + i32.const 50 + call $std/array/assertSorted + get_global $std/array/randomized257 + i32.const 51 + call $std/array/assertSorted + i32.const 512 + call $std/array/createReverseOrderedNestedArray + set_global $std/array/reversedNested512 + get_global $std/array/reversedNested512 + i32.const 52 + call $std/array/assertSorted> + i32.const 512 + call $std/array/createReverseOrderedElementsArray + set_global $std/array/reversedElements512 + get_global $std/array/reversedElements512 + i32.const 53 + call $std/array/assertSorted> + get_global $std/array/randomStringsActual + i32.const 54 + call $std/array/assertSorted + get_global $std/array/randomStringsActual + get_global $std/array/randomStringsExpected + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 778 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 400 + call $std/array/createRandomStringArray + set_global $std/array/randomStrings400 + get_global $std/array/randomStrings400 + i32.const 55 + call $std/array/assertSorted + i32.const 1896 + i32.const 1872 + call $~lib/array/Array#join + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 787 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2528 + i32.const 1560 + call $~lib/array/Array#join + i32.const 2536 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 788 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2632 + i32.const 2592 + call $~lib/array/Array#join + i32.const 2536 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 789 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2688 + i32.const 2664 + call $~lib/array/Array#join + i32.const 2696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 790 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4344 + i32.const 2824 + call $~lib/array/Array#join + i32.const 4352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 791 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4520 + i32.const 1560 + call $~lib/array/Array#join + i32.const 4440 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 792 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + i32.const 3 + call $~lib/array/Array#constructor + set_local $3 + get_local $3 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__unchecked_set + get_local $3 + i32.const 1 + i32.const 0 + call $~lib/array/Array#__unchecked_set + get_local $3 + i32.const 2 + i32.const 0 + call $std/array/Ref#constructor + call $~lib/array/Array#__unchecked_set + get_local $3 + end + set_global $std/array/refArr + get_global $std/array/refArr + i32.const 1872 + call $~lib/array/Array#join + i32.const 4568 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 794 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#toString|inlined.1 (result i32) + get_global $std/array/reversed0 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array#join + end + i32.const 1560 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 798 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#toString|inlined.3 (result i32) + get_global $std/array/reversed1 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array#join + end + i32.const 4440 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 799 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#toString|inlined.5 (result i32) + get_global $std/array/reversed2 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array#join + end + i32.const 4640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 800 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#toString|inlined.7 (result i32) + get_global $std/array/reversed4 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array#join + end + i32.const 4656 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 801 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#toString|inlined.1 (result i32) + i32.const 4720 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array#join + end + i32.const 4728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 803 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#toString|inlined.1 (result i32) + i32.const 4784 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array#join + end + i32.const 4792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 804 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#toString|inlined.1 (result i32) + i32.const 5408 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array#join + end + i32.const 5416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 805 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#toString|inlined.1 (result i32) + i32.const 5608 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array#join + end + i32.const 5616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 806 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#toString|inlined.1 (result i32) + get_global $std/array/randomStringsExpected + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array#join + end + i32.const 5704 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 807 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#toString|inlined.3 (result i32) + i32.const 5824 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array#join + end + i32.const 5832 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 808 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array>#toString|inlined.1 (result i32) + get_global $std/array/subarr32 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array>#join + end + i32.const 5920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 811 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array>#toString|inlined.1 (result i32) + get_global $std/array/subarr8 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array>#join + end + i32.const 5920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 814 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array>>#toString|inlined.1 (result i32) + get_global $std/array/subarrU32 + set_local $3 + get_local $3 + i32.const 1872 + call $~lib/array/Array>>#join + end + i32.const 4440 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 152 + i32.const 817 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 215 ;) (type $v) ) diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 49995428..61b8ec0a 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -7,13 +7,13 @@ (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\13\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") (data (i32.const 56) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") (data (i32.const 120) "\12\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/arraybuffer/buffer (mut i32) (i32.const 0)) @@ -22,2549 +22,1733 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/internal/arraybuffer/computeSize (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - ) - ) + (func $~lib/internal/arraybuffer/computeSize (; 1 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + get_local $0 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl ) - (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/internal/arraybuffer/allocateUnsafe (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/arraybuffer/allocateUnsafe (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 56) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 56 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/internal/memory/memset (; 4 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memset (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $1) - ) - (return) - ) - (i32.store8 - (get_local $0) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $2) - (i32.const 3) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $1 - (i32.and - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 8) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 28) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 16) - ) - (i32.const 0) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i64.const 0) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $1 + i32.eqz + if + return + end + get_local $0 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + get_local $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $2 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $0 + get_local $1 + get_local $2 + i32.sub + i32.const -4 + i32.and + tee_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 8 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 12 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 8 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 16 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 20 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 24 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 28 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 24 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 20 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 16 + i32.sub + i32.const 0 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $2 + i32.add + set_local $0 + get_local $1 + get_local $2 + i32.sub + set_local $1 + loop $continue|0 + get_local $1 + i32.const 32 + i32.ge_u + if + get_local $0 + i64.const 0 + i64.store + get_local $0 + i32.const 8 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 16 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 24 + i32.add + i64.const 0 + i64.store + get_local $1 + i32.const 32 + i32.sub + set_local $1 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 5 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (call $~lib/internal/memory/memset - (i32.add - (tee_local $0 - (call $~lib/internal/arraybuffer/allocateUnsafe - (i32.const 8) - ) - ) - (i32.const 8) - ) - (i32.const 8) - ) - (get_local $0) + i32.const 8 + call $~lib/internal/arraybuffer/allocateUnsafe + tee_local $0 + i32.const 8 + i32.add + i32.const 8 + call $~lib/internal/memory/memset + get_local $0 ) - (func $~lib/internal/memory/memcpy (; 6 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memcpy (; 6 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (loop $continue|0 - (if - (tee_local $3 - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - ) - (block - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (block - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (if - (i32.ne - (tee_local $3 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 1) - ) - (block - (br_if $case1|2 - (i32.eq - (get_local $3) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $3) - (i32.const 3) - ) - ) - (br $break|2) - ) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|3) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|4) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + tee_local $3 + if + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|0 + end + end + get_local $0 + i32.const 3 + i32.and + i32.eqz + if + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|1 + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + get_local $0 + i32.const 3 + i32.and + tee_local $3 + i32.const 1 + i32.ne + if + get_local $3 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $3 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 1 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 5 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 9 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 13 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|3 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 2 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 6 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 10 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 14 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|4 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 3 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 7 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 11 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 15 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|5 + end + end + end + end + get_local $2 + i32.const 16 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end ) - (func $~lib/internal/memory/memmove (; 7 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memmove (; 7 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (i32.eqz - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $3) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (get_local $2) - (block - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + i32.eqz + if + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + set_local $3 + end + get_local $3 + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + br $continue|0 + end + end + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + br $continue|1 + end + end + end + loop $continue|2 + get_local $2 + if + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|2 + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|3 + end + end + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 8 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + br $continue|4 + end + end + end + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end ) - (func $~lib/arraybuffer/ArrayBuffer#slice (; 8 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#slice (; 8 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $1 - (if (result i32) - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (select - (tee_local $3 - (i32.add - (get_local $4) - (get_local $1) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - ) - (select - (tee_local $3 - (get_local $1) - ) - (get_local $4) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - (call $~lib/internal/memory/memmove - (i32.add - (tee_local $2 - (call $~lib/internal/arraybuffer/allocateUnsafe - (tee_local $3 - (select - (tee_local $3 - (i32.sub - (tee_local $2 - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (select - (tee_local $3 - (i32.add - (get_local $4) - (get_local $2) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - ) - (select - (tee_local $3 - (get_local $2) - ) - (get_local $4) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - (get_local $1) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - ) - ) - ) - ) - (i32.const 8) - ) - (i32.add - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $1) - ) - (get_local $3) - ) - (get_local $2) + get_local $0 + i32.load + set_local $4 + get_local $1 + i32.const 0 + i32.lt_s + if (result i32) + get_local $4 + get_local $1 + i32.add + tee_local $3 + i32.const 0 + get_local $3 + i32.const 0 + i32.gt_s + select + else + get_local $1 + tee_local $3 + get_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + end + set_local $1 + get_local $2 + i32.const 0 + i32.lt_s + if (result i32) + get_local $4 + get_local $2 + i32.add + tee_local $3 + i32.const 0 + get_local $3 + i32.const 0 + i32.gt_s + select + else + get_local $2 + tee_local $3 + get_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + end + tee_local $2 + get_local $1 + i32.sub + tee_local $3 + i32.const 0 + get_local $3 + i32.const 0 + i32.gt_s + select + tee_local $3 + call $~lib/internal/arraybuffer/allocateUnsafe + tee_local $2 + i32.const 8 + i32.add + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.add + get_local $3 + call $~lib/internal/memory/memmove + get_local $2 ) - (func $~lib/arraybuffer/ArrayBuffer#slice|trampoline (; 9 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#slice|trampoline (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 0) - ) - ) - (set_local $2 - (i32.const 1073741816) - ) - ) - (call $~lib/arraybuffer/ArrayBuffer#slice - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $1 + end + i32.const 1073741816 + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/arraybuffer/ArrayBuffer#slice ) - (func $~lib/arraybuffer/ArrayBuffer#get:data (; 10 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.add - (get_local $0) - (i32.const 8) - ) + (func $~lib/arraybuffer/ArrayBuffer#get:data (; 10 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 8 + i32.add ) - (func $start (; 11 ;) (; has Stack IR ;) (type $v) + (func $start (; 11 ;) (type $v) (local $0 i32) (local $1 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 160) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/arraybuffer/buffer - (call $~lib/arraybuffer/ArrayBuffer#constructor) - ) - (if - (i32.ne - (i32.load - (get_global $std/arraybuffer/buffer) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 0) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice|trampoline - (get_global $std/arraybuffer/buffer) - (i32.const 0) - ) - ) - (if - (i32.ne - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_local $0 - (call $~lib/arraybuffer/ArrayBuffer#get:data - (get_global $std/arraybuffer/sliced) - ) - ) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#get:data - (get_global $std/arraybuffer/buffer) - ) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_global $std/arraybuffer/sliced) - (get_global $std/arraybuffer/buffer) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice|trampoline - (get_global $std/arraybuffer/buffer) - (i32.const 1) - ) - ) - (if - (i32.ne - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 7) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice|trampoline - (get_global $std/arraybuffer/buffer) - (i32.const -1) - ) - ) - (if - (i32.ne - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice - (get_global $std/arraybuffer/buffer) - (i32.const 1) - (i32.const 3) - ) - ) - (if - (i32.ne - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice - (get_global $std/arraybuffer/buffer) - (i32.const 1) - (i32.const -1) - ) - ) - (if - (i32.ne - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 6) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice - (get_global $std/arraybuffer/buffer) - (i32.const -3) - (i32.const -1) - ) - ) - (if - (i32.ne - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice - (get_global $std/arraybuffer/buffer) - (i32.const -4) - (i32.const 42) - ) - ) - (if - (i32.ne - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 35) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice|trampoline - (get_global $std/arraybuffer/buffer) - (i32.const 42) - ) - ) - (if - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (get_global $std/arraybuffer/sliced) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 160 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + call $~lib/arraybuffer/ArrayBuffer#constructor + set_global $std/arraybuffer/buffer + get_global $std/arraybuffer/buffer + i32.load + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $~argc + get_global $std/arraybuffer/buffer + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#slice|trampoline + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/sliced + call $~lib/arraybuffer/ArrayBuffer#get:data + set_local $0 + get_global $std/arraybuffer/buffer + call $~lib/arraybuffer/ArrayBuffer#get:data + set_local $1 + get_local $0 + get_local $1 + i32.eq + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/sliced + get_global $std/arraybuffer/buffer + i32.eq + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/arraybuffer/buffer + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#slice|trampoline + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/arraybuffer/buffer + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice|trampoline + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/buffer + i32.const 1 + i32.const 3 + call $~lib/arraybuffer/ArrayBuffer#slice + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/buffer + i32.const 1 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/buffer + i32.const -3 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/buffer + i32.const -4 + i32.const 42 + call $~lib/arraybuffer/ArrayBuffer#slice + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 35 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/arraybuffer/buffer + i32.const 42 + call $~lib/arraybuffer/ArrayBuffer#slice|trampoline + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + if + i32.const 0 + i32.const 120 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/sliced + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 12 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 12 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index 064d3bcf..b9ce28f2 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -4,13 +4,13 @@ (type $ii (func (param i32) (result i32))) (type $iiiv (func (param i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\13\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 56) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 120) "\12\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -27,21 +27,16 @@ (export "table" (table $0)) (start $start) (func $~lib/internal/arraybuffer/computeSize (; 1 ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.sub - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -50,2589 +45,1824 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 56) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $2 - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 56 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_local $0 + call $~lib/internal/arraybuffer/computeSize + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/internal/memory/memset (; 4 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/arraybuffer/ArrayBuffer#constructor (; 5 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 40) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $2) - (i32.const 1) - ) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $1) - ) - ) - ) - (get_local $3) + get_local $1 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 40 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $2 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $1 + call $~lib/internal/memory/memset + end + get_local $3 ) (func $~lib/internal/memory/memcpy (; 6 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (block - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $5 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (br_if $case0|2 - (i32.eq - (get_local $5) - (i32.const 1) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $5) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $5) - (i32.const 3) - ) - ) - (br $break|2) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - (br $break|2) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) + block $break|0 + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + if + block + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|0 + end + end + end + get_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + block + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|1 + end + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $0 + i32.const 3 + i32.and + set_local $5 + get_local $5 + i32.const 1 + i32.eq + br_if $case0|2 + get_local $5 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + block $break|3 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + block + get_local $1 + i32.const 1 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 5 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 9 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 13 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|3 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $break|4 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + block + get_local $1 + i32.const 2 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 6 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 10 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 14 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|4 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block $break|5 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + block + get_local $1 + i32.const 3 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 7 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 11 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 15 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|5 + end + end + end + br $break|2 + unreachable + end + unreachable + end + end + get_local $2 + i32.const 16 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end ) (func $~lib/internal/memory/memmove (; 7 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (if (result i32) - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - (get_local $3) - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|0 - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (get_local $2) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|3 - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (i64.store - (i32.add - (get_local $0) - (get_local $2) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + end + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|0 + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + end + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + get_local $2 + if + block + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|2 + end + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|3 + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + end + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + end + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end ) (func $~lib/arraybuffer/ArrayBuffer#slice (; 8 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2640,487 +1870,346 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $1) - ) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $1 - (select - (tee_local $4 - (get_local $1) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (set_local $2 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $2) - ) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $2 - (select - (tee_local $4 - (get_local $2) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (set_local $6 - (select - (tee_local $4 - (i32.sub - (get_local $2) - (get_local $1) - ) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $7 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $6) - ) - ) - (block $~lib/memory/memory.copy|inlined.0 - (set_local $4 - (i32.add - (get_local $7) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (get_local $1) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $4) - (get_local $5) - (get_local $6) - ) - ) - (get_local $7) + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $1 + i32.add + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $1 + else + get_local $1 + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $1 + end + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $2 + i32.add + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $2 + else + get_local $2 + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $2 + end + get_local $2 + get_local $1 + i32.sub + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $6 + get_local $6 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $7 + block $~lib/memory/memory.copy|inlined.0 + get_local $7 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $1 + i32.add + set_local $5 + get_local $4 + get_local $5 + get_local $6 + call $~lib/internal/memory/memmove + end + get_local $7 ) (func $~lib/arraybuffer/ArrayBuffer#slice|trampoline (; 9 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 0) - ) - ) - (set_local $2 - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (call $~lib/arraybuffer/ArrayBuffer#slice - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $1 + end + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/arraybuffer/ArrayBuffer#slice ) (func $~lib/arraybuffer/ArrayBuffer#get:data (; 10 ;) (type $ii) (param $0 i32) (result i32) - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add ) (func $start (; 11 ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/arraybuffer/buffer - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 8) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (get_global $std/arraybuffer/buffer) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (block (result i32) - (set_global $~argc - (i32.const 0) - ) - (call $~lib/arraybuffer/ArrayBuffer#slice|trampoline - (get_global $std/arraybuffer/buffer) - (i32.const 0) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.ne - (call $~lib/arraybuffer/ArrayBuffer#get:data - (get_global $std/arraybuffer/sliced) - ) - (call $~lib/arraybuffer/ArrayBuffer#get:data - (get_global $std/arraybuffer/buffer) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.ne - (get_global $std/arraybuffer/sliced) - (get_global $std/arraybuffer/buffer) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/arraybuffer/ArrayBuffer#slice|trampoline - (get_global $std/arraybuffer/buffer) - (i32.const 1) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 7) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/arraybuffer/ArrayBuffer#slice|trampoline - (get_global $std/arraybuffer/buffer) - (i32.const -1) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice - (get_global $std/arraybuffer/buffer) - (i32.const 1) - (i32.const 3) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice - (get_global $std/arraybuffer/buffer) - (i32.const 1) - (i32.const -1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 6) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice - (get_global $std/arraybuffer/buffer) - (i32.const -3) - (i32.const -1) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (call $~lib/arraybuffer/ArrayBuffer#slice - (get_global $std/arraybuffer/buffer) - (i32.const -4) - (i32.const 42) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 35) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/arraybuffer/sliced - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/arraybuffer/ArrayBuffer#slice|trampoline - (get_global $std/arraybuffer/buffer) - (i32.const 42) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (get_global $std/arraybuffer/sliced) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.ne - (get_global $std/arraybuffer/sliced) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + i32.const 8 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_global $std/arraybuffer/buffer + get_global $std/arraybuffer/buffer + i32.load + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + set_global $~argc + get_global $std/arraybuffer/buffer + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#slice|trampoline + end + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/sliced + call $~lib/arraybuffer/ArrayBuffer#get:data + get_global $std/arraybuffer/buffer + call $~lib/arraybuffer/ArrayBuffer#get:data + i32.ne + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/sliced + get_global $std/arraybuffer/buffer + i32.ne + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/arraybuffer/buffer + i32.const 1 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#slice|trampoline + end + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/arraybuffer/buffer + i32.const -1 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#slice|trampoline + end + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/buffer + i32.const 1 + i32.const 3 + call $~lib/arraybuffer/ArrayBuffer#slice + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/buffer + i32.const 1 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/buffer + i32.const -3 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/buffer + i32.const -4 + i32.const 42 + call $~lib/arraybuffer/ArrayBuffer#slice + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 35 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/arraybuffer/buffer + i32.const 42 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#slice|trampoline + end + set_global $std/arraybuffer/sliced + get_global $std/arraybuffer/sliced + i32.load + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/arraybuffer/sliced + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 12 ;) (type $v) ) diff --git a/tests/compiler/std/constructor.optimized.wat b/tests/compiler/std/constructor.optimized.wat index 84fc13af..a3a1bb18 100644 --- a/tests/compiler/std/constructor.optimized.wat +++ b/tests/compiler/std/constructor.optimized.wat @@ -3,7 +3,7 @@ (type $v (func)) (type $FUNCSIG$i (func (result i32))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) @@ -21,223 +21,164 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/allocator/arena/__memory_allocate (; 0 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 0 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/memory/memory.allocate (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) + (func $~lib/memory/memory.allocate (; 1 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + call $~lib/allocator/arena/__memory_allocate ) - (func $std/constructor/EmptyCtor#constructor (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/memory/memory.allocate - (i32.const 0) - ) + (func $std/constructor/EmptyCtor#constructor (; 2 ;) (type $FUNCSIG$i) (result i32) + i32.const 0 + call $~lib/memory/memory.allocate ) - (func $std/constructor/EmptyCtorWithFieldInit#constructor (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $std/constructor/EmptyCtorWithFieldInit#constructor (; 3 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.const 1) - ) - (get_local $0) + i32.const 4 + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 1 + i32.store + get_local $0 ) - (func $std/constructor/EmptyCtorWithFieldNoInit#constructor (; 4 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $std/constructor/EmptyCtorWithFieldNoInit#constructor (; 4 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.const 0) - ) - (get_local $0) + i32.const 4 + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 ) - (func $std/constructor/CtorReturns#constructor (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (i32.const 0) - ) + (func $std/constructor/CtorReturns#constructor (; 5 ;) (type $FUNCSIG$i) (result i32) + i32.const 0 + call $~lib/allocator/arena/__memory_allocate ) - (func $std/constructor/CtorConditionallyReturns#constructor (; 6 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (if - (get_global $std/constructor/b) - (return - (call $~lib/allocator/arena/__memory_allocate - (i32.const 0) - ) - ) - ) - (call $~lib/memory/memory.allocate - (i32.const 0) - ) + (func $std/constructor/CtorConditionallyReturns#constructor (; 6 ;) (type $FUNCSIG$i) (result i32) + get_global $std/constructor/b + if + i32.const 0 + call $~lib/allocator/arena/__memory_allocate + return + end + i32.const 0 + call $~lib/memory/memory.allocate ) - (func $std/constructor/CtorConditionallyAllocates#constructor (; 7 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $std/constructor/CtorConditionallyAllocates#constructor (; 7 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (if - (get_global $std/constructor/b) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - ) - (get_local $0) + get_global $std/constructor/b + if + i32.const 0 + call $~lib/memory/memory.allocate + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + call $~lib/memory/memory.allocate + set_local $0 + end + get_local $0 ) - (func $start (; 8 ;) (; has Stack IR ;) (type $v) + (func $start (; 8 ;) (type $v) (local $0 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 8) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/constructor/emptyCtor - (call $std/constructor/EmptyCtor#constructor) - ) - (set_global $std/constructor/emptyCtorWithFieldInit - (call $std/constructor/EmptyCtorWithFieldInit#constructor) - ) - (set_global $std/constructor/emptyCtorWithFieldNoInit - (call $std/constructor/EmptyCtorWithFieldNoInit#constructor) - ) - (set_global $std/constructor/none - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.const 1) - ) - (set_global $std/constructor/justFieldInit - (get_local $0) - ) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.const 0) - ) - (set_global $std/constructor/justFieldNoInit - (get_local $0) - ) - (set_global $std/constructor/ctorReturns - (call $std/constructor/CtorReturns#constructor) - ) - (set_global $std/constructor/ctorConditionallyReturns - (call $std/constructor/CtorConditionallyReturns#constructor) - ) - (set_global $std/constructor/ctorAllocates - (call $std/constructor/EmptyCtor#constructor) - ) - (set_global $std/constructor/ctorConditionallyAllocates - (call $std/constructor/CtorConditionallyAllocates#constructor) - ) + i32.const 8 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + call $std/constructor/EmptyCtor#constructor + set_global $std/constructor/emptyCtor + call $std/constructor/EmptyCtorWithFieldInit#constructor + set_global $std/constructor/emptyCtorWithFieldInit + call $std/constructor/EmptyCtorWithFieldNoInit#constructor + set_global $std/constructor/emptyCtorWithFieldNoInit + i32.const 0 + call $~lib/memory/memory.allocate + set_global $std/constructor/none + i32.const 4 + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 1 + i32.store + get_local $0 + set_global $std/constructor/justFieldInit + i32.const 4 + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 + set_global $std/constructor/justFieldNoInit + call $std/constructor/CtorReturns#constructor + set_global $std/constructor/ctorReturns + call $std/constructor/CtorConditionallyReturns#constructor + set_global $std/constructor/ctorConditionallyReturns + call $std/constructor/EmptyCtor#constructor + set_global $std/constructor/ctorAllocates + call $std/constructor/CtorConditionallyAllocates#constructor + set_global $std/constructor/ctorConditionallyAllocates ) - (func $null (; 9 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 9 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/constructor.untouched.wat b/tests/compiler/std/constructor.untouched.wat index ad4e32f6..44466e9b 100644 --- a/tests/compiler/std/constructor.untouched.wat +++ b/tests/compiler/std/constructor.untouched.wat @@ -2,7 +2,7 @@ (type $ii (func (param i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) @@ -32,381 +32,285 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/memory/memory.allocate (; 1 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $std/constructor/EmptyCtor#constructor (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $1) - ) - ) - ) - ) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + end + tee_local $0 + end + tee_local $0 ) (func $std/constructor/EmptyCtorWithFieldInit#constructor (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.store - (get_local $1) - (i32.const 1) - ) - (get_local $1) - ) - ) - ) - ) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 4 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 1 + i32.store + get_local $1 + end + tee_local $0 + end + tee_local $0 ) (func $std/constructor/EmptyCtorWithFieldNoInit#constructor (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 4 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + end + tee_local $0 + end + tee_local $0 ) (func $std/constructor/CtorReturns#constructor (; 5 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $1 - (i32.const 0) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) + block $~lib/memory/memory.allocate|inlined.0 (result i32) + i32.const 0 + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end ) (func $std/constructor/CtorConditionallyReturns#constructor (; 6 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (get_global $std/constructor/b) - (return - (block $~lib/memory/memory.allocate|inlined.1 (result i32) - (set_local $1 - (i32.const 0) - ) - (br $~lib/memory/memory.allocate|inlined.1 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - ) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $1) - ) - ) - ) - ) + get_global $std/constructor/b + if + block $~lib/memory/memory.allocate|inlined.1 (result i32) + i32.const 0 + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.1 + end + return + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + end + tee_local $0 + end + tee_local $0 ) (func $std/constructor/CtorAllocates#constructor (; 7 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (drop - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + end + tee_local $0 + end + tee_local $0 + drop + get_local $0 ) (func $std/constructor/CtorConditionallyAllocates#constructor (; 8 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (get_global $std/constructor/b) - (drop - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $1) - ) - ) - ) - ) - ) - ) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $1) - ) - ) - ) - ) + get_global $std/constructor/b + if + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + end + tee_local $0 + end + tee_local $0 + drop + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + end + tee_local $0 + end + tee_local $0 ) (func $start (; 9 ;) (type $v) (local $0 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/constructor/emptyCtor - (call $std/constructor/EmptyCtor#constructor - (i32.const 0) - ) - ) - (set_global $std/constructor/emptyCtorWithFieldInit - (call $std/constructor/EmptyCtorWithFieldInit#constructor - (i32.const 0) - ) - ) - (set_global $std/constructor/emptyCtorWithFieldNoInit - (call $std/constructor/EmptyCtorWithFieldNoInit#constructor - (i32.const 0) - ) - ) - (set_global $std/constructor/none - (block (result i32) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 0) - ) - ) - (get_local $0) - ) - ) - (set_global $std/constructor/justFieldInit - (block (result i32) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.store - (get_local $0) - (i32.const 1) - ) - (get_local $0) - ) - ) - (set_global $std/constructor/justFieldNoInit - (block (result i32) - (set_local $0 - (call $~lib/memory/memory.allocate - (i32.const 4) - ) - ) - (i32.store - (get_local $0) - (i32.const 0) - ) - (get_local $0) - ) - ) - (set_global $std/constructor/ctorReturns - (call $std/constructor/CtorReturns#constructor - (i32.const 0) - ) - ) - (set_global $std/constructor/ctorConditionallyReturns - (call $std/constructor/CtorConditionallyReturns#constructor - (i32.const 0) - ) - ) - (set_global $std/constructor/ctorAllocates - (call $std/constructor/CtorAllocates#constructor - (i32.const 0) - ) - ) - (set_global $std/constructor/ctorConditionallyAllocates - (call $std/constructor/CtorConditionallyAllocates#constructor - (i32.const 0) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + call $std/constructor/EmptyCtor#constructor + set_global $std/constructor/emptyCtor + i32.const 0 + call $std/constructor/EmptyCtorWithFieldInit#constructor + set_global $std/constructor/emptyCtorWithFieldInit + i32.const 0 + call $std/constructor/EmptyCtorWithFieldNoInit#constructor + set_global $std/constructor/emptyCtorWithFieldNoInit + block (result i32) + i32.const 0 + call $~lib/memory/memory.allocate + set_local $0 + get_local $0 + end + set_global $std/constructor/none + block (result i32) + i32.const 4 + call $~lib/memory/memory.allocate + set_local $0 + get_local $0 + i32.const 1 + i32.store + get_local $0 + end + set_global $std/constructor/justFieldInit + block (result i32) + i32.const 4 + call $~lib/memory/memory.allocate + set_local $0 + get_local $0 + i32.const 0 + i32.store + get_local $0 + end + set_global $std/constructor/justFieldNoInit + i32.const 0 + call $std/constructor/CtorReturns#constructor + set_global $std/constructor/ctorReturns + i32.const 0 + call $std/constructor/CtorConditionallyReturns#constructor + set_global $std/constructor/ctorConditionallyReturns + i32.const 0 + call $std/constructor/CtorAllocates#constructor + set_global $std/constructor/ctorAllocates + i32.const 0 + call $std/constructor/CtorConditionallyAllocates#constructor + set_global $std/constructor/ctorConditionallyAllocates ) (func $null (; 10 ;) (type $v) ) diff --git a/tests/compiler/std/gc-array.optimized.wat b/tests/compiler/std/gc-array.optimized.wat index d0023804..e20bdd17 100644 --- a/tests/compiler/std/gc-array.optimized.wat +++ b/tests/compiler/std/gc-array.optimized.wat @@ -9,14 +9,14 @@ (type $i (func (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 16) "\01") (data (i32.const 40) "\02\00\00\00\00\00\00\00\18") (data (i32.const 64) "\05\00\00\00\00\00\00\00\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 112) "\05\00\00\00\00\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (table 7 anyfunc) + (table $0 7 anyfunc) (elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~gc $~lib/array/Array~gc $~lib/collector/itcm/__gc_mark $~lib/arraybuffer/ArrayBuffer~gc $~lib/arraybuffer/ArrayBuffer~gc $~lib/allocator/arena/__memory_free) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $~lib/collector/itcm/state (mut i32) (i32.const 0)) @@ -30,2878 +30,1966 @@ (export "memory" (memory $0)) (export "table" (table $0)) (export "main" (func $std/gc-array/main)) - (func $~lib/arraybuffer/ArrayBuffer~gc (; 1 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (get_local $0) - ) - (return) - ) - (call $~lib/collector/itcm/__gc_mark - (get_local $0) - ) + (func $~lib/arraybuffer/ArrayBuffer~gc (; 1 ;) (type $iv) (param $0 i32) + get_local $0 + i32.eqz + if + return + end + get_local $0 + call $~lib/collector/itcm/__gc_mark ) - (func $~lib/collector/itcm/ManagedObject#get:color (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) + (func $~lib/collector/itcm/ManagedObject#get:color (; 2 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const 3 + i32.and ) - (func $~lib/collector/itcm/ManagedObject#get:next (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const -4) - ) + (func $~lib/collector/itcm/ManagedObject#get:next (; 3 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const -4 + i32.and ) - (func $~lib/collector/itcm/ManagedObject#set:next (; 4 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (get_local $1) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - ) - ) + (func $~lib/collector/itcm/ManagedObject#set:next (; 4 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + get_local $1 + get_local $0 + i32.load + i32.const 3 + i32.and + i32.or + i32.store ) - (func $~lib/collector/itcm/ManagedObject#unlink (; 5 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/collector/itcm/ManagedObject#unlink (; 5 ;) (type $iv) (param $0 i32) (local $1 i32) - (i32.store offset=4 - (tee_local $1 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (tee_local $0 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $0) - (get_local $1) - ) + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + tee_local $1 + get_local $0 + i32.load offset=4 + tee_local $0 + i32.store offset=4 + get_local $0 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next ) - (func $~lib/collector/itcm/ManagedObjectList#push (; 6 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/ManagedObjectList#push (; 6 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $1) - (get_local $0) - ) - (i32.store offset=4 - (get_local $1) - (get_local $2) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $2) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + get_local $0 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $1 + get_local $2 + i32.store offset=4 + get_local $2 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $0 + get_local $1 + i32.store offset=4 ) - (func $~lib/collector/itcm/ManagedObject#makeGray (; 7 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (if - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/iter) - ) - (set_global $~lib/collector/itcm/iter - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (call $~lib/collector/itcm/ManagedObject#unlink - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/toSpace) - (get_local $0) - ) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.const -4) - ) - (i32.const 2) - ) - ) + (func $~lib/collector/itcm/ManagedObject#makeGray (; 7 ;) (type $iv) (param $0 i32) + get_local $0 + get_global $~lib/collector/itcm/iter + i32.eq + if + get_local $0 + i32.load offset=4 + set_global $~lib/collector/itcm/iter + end + get_local $0 + call $~lib/collector/itcm/ManagedObject#unlink + get_global $~lib/collector/itcm/toSpace + get_local $0 + call $~lib/collector/itcm/ManagedObjectList#push + get_local $0 + get_local $0 + i32.load + i32.const -4 + i32.and + i32.const 2 + i32.or + i32.store ) - (func $~lib/collector/itcm/__gc_mark (; 8 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/collector/itcm/__gc_mark (; 8 ;) (type $iv) (param $0 i32) (local $1 i32) - (if - (get_local $0) - (if - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:color - (tee_local $1 - (i32.sub - (get_local $0) - (i32.const 16) - ) - ) - ) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObject#makeGray - (get_local $1) - ) - ) - ) + get_local $0 + if + get_local $0 + i32.const 16 + i32.sub + tee_local $1 + call $~lib/collector/itcm/ManagedObject#get:color + get_global $~lib/collector/itcm/white + i32.eq + if + get_local $1 + call $~lib/collector/itcm/ManagedObject#makeGray + end + end ) - (func $~lib/array/Array~gc (; 9 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/array/Array~gc (; 9 ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) - (call $~lib/collector/itcm/__gc_mark - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (set_local $0 - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 2) - ) - ) - (loop $continue|0 - (if - (i32.lt_u - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/collector/itcm/__gc_mark - (i32.load offset=8 - (i32.add - (get_local $2) - (get_local $1) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $0 + i32.load + tee_local $2 + call $~lib/collector/itcm/__gc_mark + get_local $0 + i32.load offset=4 + i32.const 2 + i32.shl + set_local $0 + loop $continue|0 + get_local $1 + get_local $0 + i32.lt_u + if + get_local $2 + get_local $1 + i32.add + i32.load offset=8 + call $~lib/collector/itcm/__gc_mark + get_local $1 + i32.const 4 + i32.add + set_local $1 + br $continue|0 + end + end ) - (func $~lib/allocator/arena/__memory_allocate (; 10 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 10 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/collector/itcm/ManagedObjectList#clear (; 11 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (get_local $0) - ) - (i32.store offset=4 - (get_local $0) - (get_local $0) - ) + (func $~lib/collector/itcm/ManagedObjectList#clear (; 11 ;) (type $iv) (param $0 i32) + get_local $0 + get_local $0 + i32.store + get_local $0 + get_local $0 + i32.store offset=4 ) - (func $~lib/collector/itcm/ManagedObject#set:color (; 12 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.const -4) - ) - (get_local $1) - ) - ) + (func $~lib/collector/itcm/ManagedObject#set:color (; 12 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + get_local $0 + i32.load + i32.const -4 + i32.and + get_local $1 + i32.or + i32.store ) - (func $~lib/allocator/arena/__memory_free (; 13 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (nop) + (func $~lib/allocator/arena/__memory_free (; 13 ;) (type $iv) (param $0 i32) + nop ) - (func $~lib/collector/itcm/step (; 14 ;) (; has Stack IR ;) (type $v) + (func $~lib/collector/itcm/step (; 14 ;) (type $v) (local $0 i32) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (if - (tee_local $0 - (get_global $~lib/collector/itcm/state) - ) - (block - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $tablify|0 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - ) - (br $break|0) - ) - ) - (set_global $~lib/collector/itcm/fromSpace - (tee_local $0 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 16) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/fromSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (tee_local $0 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 16) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/toSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/iter - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (i32.const 1) - ) - ) - (call $~iterateRoots) - (set_global $~lib/collector/itcm/state - (i32.const 2) - ) - (br $break|0) - ) - (if - (i32.ne - (tee_local $0 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - ) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $0) - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (call_indirect (type $iv) - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.load offset=8 - (get_local $0) - ) - ) - ) - (block - (call $~iterateRoots) - (if - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_local $0 - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/fromSpace - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (get_local $0) - ) - (set_global $~lib/collector/itcm/white - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (set_global $~lib/collector/itcm/state - (i32.const 3) - ) - ) - ) - ) - ) - (br $break|0) - ) - (if - (i32.ne - (tee_local $0 - (get_global $~lib/collector/itcm/iter) - ) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (if - (i32.ge_u - (get_local $0) - (i32.const 180) - ) - (call $~lib/allocator/arena/__memory_free - (get_local $0) - ) - ) - ) - (block - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (i32.const 1) - ) - ) - ) - ) + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + get_global $~lib/collector/itcm/state + tee_local $0 + if + block $tablify|0 + get_local $0 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $tablify|0 + end + br $break|0 + end + i32.const 16 + call $~lib/allocator/arena/__memory_allocate + tee_local $0 + set_global $~lib/collector/itcm/fromSpace + get_global $~lib/collector/itcm/fromSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/fromSpace + call $~lib/collector/itcm/ManagedObjectList#clear + i32.const 16 + call $~lib/allocator/arena/__memory_allocate + tee_local $0 + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/toSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/iter + i32.const 1 + set_global $~lib/collector/itcm/state + end + call $~iterateRoots + i32.const 2 + set_global $~lib/collector/itcm/state + br $break|0 + end + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + tee_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + set_global $~lib/collector/itcm/iter + get_local $0 + get_global $~lib/collector/itcm/white + i32.eqz + call $~lib/collector/itcm/ManagedObject#set:color + i32.const 1 + set_global $~argc + get_local $0 + i32.const 16 + i32.add + get_local $0 + i32.load offset=8 + call_indirect (type $iv) + else + call $~iterateRoots + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + get_global $~lib/collector/itcm/toSpace + i32.eq + if + get_global $~lib/collector/itcm/fromSpace + set_local $0 + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/fromSpace + get_local $0 + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/white + i32.eqz + set_global $~lib/collector/itcm/white + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + i32.const 3 + set_global $~lib/collector/itcm/state + end + end + br $break|0 + end + get_global $~lib/collector/itcm/iter + tee_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + get_local $0 + i32.const 180 + i32.ge_u + if + get_local $0 + call $~lib/allocator/arena/__memory_free + end + else + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + i32.const 1 + set_global $~lib/collector/itcm/state + end + end ) - (func $~lib/collector/itcm/__gc_collect (; 15 ;) (; has Stack IR ;) (type $v) + (func $~lib/collector/itcm/__gc_collect (; 15 ;) (type $v) (local $0 i32) - (block $break|0 - (block $case1|0 - (br_if $case1|0 - (i32.eqz - (tee_local $0 - (get_global $~lib/collector/itcm/state) - ) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $0) - (i32.const 1) - ) - ) - (br $break|0) - ) - (call $~lib/collector/itcm/step) - ) - (loop $continue|1 - (if - (i32.ne - (get_global $~lib/collector/itcm/state) - (i32.const 1) - ) - (block - (call $~lib/collector/itcm/step) - (br $continue|1) - ) - ) - ) + block $break|0 + block $case1|0 + get_global $~lib/collector/itcm/state + tee_local $0 + i32.eqz + br_if $case1|0 + get_local $0 + i32.const 1 + i32.eq + br_if $case1|0 + br $break|0 + end + call $~lib/collector/itcm/step + end + loop $continue|1 + get_global $~lib/collector/itcm/state + i32.const 1 + i32.ne + if + call $~lib/collector/itcm/step + br $continue|1 + end + end ) - (func $~lib/gc/gc.collect (; 16 ;) (; has Stack IR ;) (type $v) - (call $~lib/collector/itcm/__gc_collect) + (func $~lib/gc/gc.collect (; 16 ;) (type $v) + call $~lib/collector/itcm/__gc_collect ) - (func $~lib/collector/itcm/__gc_allocate (; 17 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741808) - ) - (unreachable) - ) - (call $~lib/collector/itcm/step) - (i32.store offset=8 - (tee_local $0 - (call $~lib/allocator/arena/__memory_allocate - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - ) - (get_local $1) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $0) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/fromSpace) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 16) - ) + (func $~lib/collector/itcm/__gc_allocate (; 17 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.const 1073741808 + i32.gt_u + if + unreachable + end + call $~lib/collector/itcm/step + get_local $0 + i32.const 16 + i32.add + call $~lib/allocator/arena/__memory_allocate + tee_local $0 + get_local $1 + i32.store offset=8 + get_local $0 + get_global $~lib/collector/itcm/white + call $~lib/collector/itcm/ManagedObject#set:color + get_global $~lib/collector/itcm/fromSpace + get_local $0 + call $~lib/collector/itcm/ManagedObjectList#push + get_local $0 + i32.const 16 + i32.add ) - (func $~lib/internal/arraybuffer/computeSize (; 18 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - ) - ) + (func $~lib/internal/arraybuffer/computeSize (; 18 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + get_local $0 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl ) - (func $~lib/internal/memory/memset (; 19 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memset (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $1) - ) - (return) - ) - (i32.store8 - (get_local $0) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $2) - (i32.const 3) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $1 - (i32.and - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 8) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 28) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 16) - ) - (i32.const 0) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i64.const 0) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $1 + i32.eqz + if + return + end + get_local $0 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + get_local $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $2 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $0 + get_local $1 + get_local $2 + i32.sub + i32.const -4 + i32.and + tee_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 8 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 12 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 8 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 16 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 20 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 24 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 28 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 24 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 20 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 16 + i32.sub + i32.const 0 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $2 + i32.add + set_local $0 + get_local $1 + get_local $2 + i32.sub + set_local $1 + loop $continue|0 + get_local $1 + i32.const 32 + i32.ge_u + if + get_local $0 + i64.const 0 + i64.store + get_local $0 + i32.const 8 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 16 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 24 + i32.add + i64.const 0 + i64.store + get_local $1 + i32.const 32 + i32.sub + set_local $1 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/internal/arraybuffer/allocateUnsafe (; 20 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/arraybuffer/allocateUnsafe (; 20 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/collector/itcm/__gc_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - (i32.const 6) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + i32.const 6 + call $~lib/collector/itcm/__gc_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/internal/memory/memcpy (; 21 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memcpy (; 21 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (loop $continue|0 - (if - (tee_local $3 - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - ) - (block - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (block - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (if - (i32.ne - (tee_local $3 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 1) - ) - (block - (br_if $case1|2 - (i32.eq - (get_local $3) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $3) - (i32.const 3) - ) - ) - (br $break|2) - ) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|3) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|4) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + tee_local $3 + if + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|0 + end + end + get_local $0 + i32.const 3 + i32.and + i32.eqz + if + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|1 + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + get_local $0 + i32.const 3 + i32.and + tee_local $3 + i32.const 1 + i32.ne + if + get_local $3 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $3 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 1 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 5 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 9 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 13 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|3 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 2 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 6 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 10 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 14 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|4 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 3 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 7 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 11 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 15 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|5 + end + end + end + end + get_local $2 + i32.const 16 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end ) - (func $~lib/internal/memory/memmove (; 22 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memmove (; 22 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (i32.eqz - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $3) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (get_local $2) - (block - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + i32.eqz + if + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + set_local $3 + end + get_local $3 + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + br $continue|0 + end + end + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + br $continue|1 + end + end + end + loop $continue|2 + get_local $2 + if + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|2 + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|3 + end + end + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 8 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + br $continue|4 + end + end + end + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end ) - (func $~lib/internal/arraybuffer/reallocateUnsafe (; 23 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/arraybuffer/reallocateUnsafe (; 23 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_s - (get_local $1) - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (block - (if - (i32.gt_s - (get_local $1) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 37) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/computeSize - (get_local $2) - ) - ) - (if - (i32.le_s - (get_local $1) - (i32.sub - (get_local $3) - (i32.const 8) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $1) - ) - (call $~lib/internal/memory/memset - (i32.add - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $2) - ) - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - ) - (block - (call $~lib/internal/memory/memmove - (i32.add - (tee_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (i32.const 8) - ) - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $2) - ) - (call $~lib/internal/memory/memset - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (get_local $2) - ) - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (return - (get_local $3) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 61) - (i32.const 4) - ) - (unreachable) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (get_local $0) + get_local $1 + get_local $0 + i32.load + tee_local $2 + i32.gt_s + if + get_local $1 + i32.const 1073741816 + i32.gt_s + if + i32.const 0 + i32.const 120 + i32.const 37 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $2 + call $~lib/internal/arraybuffer/computeSize + set_local $3 + get_local $1 + get_local $3 + i32.const 8 + i32.sub + i32.le_s + if + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.sub + call $~lib/internal/memory/memset + else + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + tee_local $3 + i32.const 8 + i32.add + get_local $0 + i32.const 8 + i32.add + get_local $2 + call $~lib/internal/memory/memmove + get_local $3 + i32.const 8 + i32.add + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.sub + call $~lib/internal/memory/memset + get_local $3 + return + end + else + get_local $1 + get_local $2 + i32.lt_s + if + get_local $1 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 120 + i32.const 61 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.store + end + end + get_local $0 ) - (func $~lib/collector/itcm/__gc_link (; 24 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/__gc_link (; 24 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) - (if - (tee_local $0 - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:color - (tee_local $2 - (i32.sub - (get_local $0) - (i32.const 16) - ) - ) - ) - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - ) - (set_local $0 - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:color - (i32.sub - (get_local $1) - (i32.const 16) - ) - ) - (get_global $~lib/collector/itcm/white) - ) - ) - ) - (if - (get_local $0) - (call $~lib/collector/itcm/ManagedObject#makeGray - (get_local $2) - ) - ) + get_local $0 + i32.const 16 + i32.sub + tee_local $2 + call $~lib/collector/itcm/ManagedObject#get:color + get_global $~lib/collector/itcm/white + i32.eqz + i32.eq + tee_local $0 + if + get_local $1 + i32.const 16 + i32.sub + call $~lib/collector/itcm/ManagedObject#get:color + get_global $~lib/collector/itcm/white + i32.eq + set_local $0 + end + get_local $0 + if + get_local $2 + call $~lib/collector/itcm/ManagedObject#makeGray + end ) - (func $~lib/array/Array#__set (; 25 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 25 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.ge_u - (get_local $1) - (i32.shr_u - (i32.load - (tee_local $3 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 72) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - (call $~lib/collector/itcm/__gc_link - (get_local $0) - (get_local $2) - ) + get_local $1 + get_local $0 + i32.load + tee_local $3 + i32.load + i32.const 2 + i32.shr_u + i32.ge_u + if + get_local $1 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 72 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 + get_local $0 + get_local $2 + call $~lib/collector/itcm/__gc_link ) - (func $std/gc-array/main (; 26 ;) (; has Stack IR ;) (type $i) (result i32) - (if - (i32.eqz - (get_global $~started) - ) - (block - (call $start) - (set_global $~started - (i32.const 1) - ) - ) - ) - (i32.const 0) + (func $std/gc-array/main (; 26 ;) (type $i) (result i32) + get_global $~started + i32.eqz + if + call $start + i32.const 1 + set_global $~started + end + i32.const 0 ) - (func $start (; 27 ;) (; has Stack IR ;) (type $v) + (func $start (; 27 ;) (type $v) (local $0 i32) (local $1 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 184) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $~lib/collector/itcm/state - (i32.const 0) - ) - (call $~lib/gc/gc.collect) - (set_local $0 - (get_global $std/gc-array/arr) - ) - (set_local $1 - (call $~lib/collector/itcm/__gc_allocate - (i32.const 0) - (i32.const 4) - ) - ) - (call $~lib/array/Array#__set - (get_local $0) - (i32.const 0) - (get_local $1) - ) - (call $~lib/gc/gc.collect) - (set_local $0 - (get_global $std/gc-array/arr) - ) - (set_local $1 - (call $~lib/collector/itcm/__gc_allocate - (i32.const 0) - (i32.const 4) - ) - ) - (call $~lib/array/Array#__set - (get_local $0) - (i32.const 1) - (get_local $1) - ) - (call $~lib/gc/gc.collect) - (set_local $0 - (get_global $std/gc-array/arr) - ) - (set_local $1 - (call $~lib/collector/itcm/__gc_allocate - (i32.const 0) - (i32.const 4) - ) - ) - (call $~lib/array/Array#__set - (get_local $0) - (i32.const 0) - (get_local $1) - ) - (call $~lib/gc/gc.collect) + i32.const 184 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + set_global $~lib/collector/itcm/state + call $~lib/gc/gc.collect + get_global $std/gc-array/arr + set_local $0 + i32.const 0 + i32.const 4 + call $~lib/collector/itcm/__gc_allocate + set_local $1 + get_local $0 + i32.const 0 + get_local $1 + call $~lib/array/Array#__set + call $~lib/gc/gc.collect + get_global $std/gc-array/arr + set_local $0 + i32.const 0 + i32.const 4 + call $~lib/collector/itcm/__gc_allocate + set_local $1 + get_local $0 + i32.const 1 + get_local $1 + call $~lib/array/Array#__set + call $~lib/gc/gc.collect + get_global $std/gc-array/arr + set_local $0 + i32.const 0 + i32.const 4 + call $~lib/collector/itcm/__gc_allocate + set_local $1 + get_local $0 + i32.const 0 + get_local $1 + call $~lib/array/Array#__set + call $~lib/gc/gc.collect ) - (func $null (; 28 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 28 ;) (type $v) + nop ) - (func $~iterateRoots (; 29 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (call_indirect (type $iv) - (get_global $std/gc-array/arr) - (i32.const 3) - ) + (func $~iterateRoots (; 29 ;) (type $FUNCSIG$v) + get_global $std/gc-array/arr + i32.const 3 + call_indirect (type $iv) ) ) diff --git a/tests/compiler/std/gc-array.untouched.wat b/tests/compiler/std/gc-array.untouched.wat index d181db2a..706948a0 100644 --- a/tests/compiler/std/gc-array.untouched.wat +++ b/tests/compiler/std/gc-array.untouched.wat @@ -7,14 +7,14 @@ (type $iiiv (func (param i32 i32 i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $i (func (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 32) "\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\18\00\00\00\00\00\00\00") (data (i32.const 56) "\00\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 104) "\00\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (table 7 anyfunc) + (table $0 7 anyfunc) (elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~gc $~lib/array/Array~gc $~lib/collector/itcm/__gc_mark $std/gc-array/Foo~gc $~lib/string/String~gc $~lib/internal/arraybuffer/__gc) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -42,209 +42,154 @@ (export "table" (table $0)) (export "main" (func $std/gc-array/main)) (func $~lib/arraybuffer/ArrayBuffer~gc (; 1 ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (get_local $0) - ) - (return) - ) - (call $~lib/collector/itcm/__gc_mark - (get_local $0) - ) + get_local $0 + i32.eqz + if + return + end + get_local $0 + call $~lib/collector/itcm/__gc_mark ) (func $~lib/collector/itcm/ManagedObject#get:color (; 2 ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) + get_local $0 + i32.load + i32.const 3 + i32.and ) (func $~lib/collector/itcm/ManagedObject#get:next (; 3 ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.xor - (i32.const 3) - (i32.const -1) - ) - ) + get_local $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and ) (func $~lib/collector/itcm/ManagedObject#set:next (; 4 ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (get_local $1) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - ) - ) + get_local $0 + get_local $1 + get_local $0 + i32.load + i32.const 3 + i32.and + i32.or + i32.store ) (func $~lib/collector/itcm/ManagedObject#unlink (; 5 ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.store offset=4 - (get_local $1) - (get_local $2) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $2) - (get_local $1) - ) + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_local $1 + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + get_local $2 + i32.store offset=4 + get_local $2 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next ) (func $~lib/collector/itcm/ManagedObjectList#push (; 6 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $1) - (get_local $0) - ) - (i32.store offset=4 - (get_local $1) - (get_local $2) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $2) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + get_local $0 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $1 + get_local $2 + i32.store offset=4 + get_local $2 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $0 + get_local $1 + i32.store offset=4 ) (func $~lib/collector/itcm/ManagedObject#makeGray (; 7 ;) (type $iv) (param $0 i32) - (if - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/iter) - ) - (set_global $~lib/collector/itcm/iter - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (call $~lib/collector/itcm/ManagedObject#unlink - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/toSpace) - (get_local $0) - ) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.xor - (i32.const 3) - (i32.const -1) - ) - ) - (i32.const 2) - ) - ) + get_local $0 + get_global $~lib/collector/itcm/iter + i32.eq + if + get_local $0 + i32.load offset=4 + set_global $~lib/collector/itcm/iter + end + get_local $0 + call $~lib/collector/itcm/ManagedObject#unlink + get_global $~lib/collector/itcm/toSpace + get_local $0 + call $~lib/collector/itcm/ManagedObjectList#push + get_local $0 + get_local $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 2 + i32.or + i32.store ) (func $~lib/collector/itcm/__gc_mark (; 8 ;) (type $iv) (param $0 i32) (local $1 i32) - (if - (get_local $0) - (block - (set_local $1 - (block $~lib/collector/itcm/refToObj|inlined.0 (result i32) - (i32.sub - (get_local $0) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - ) - (if - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:color - (get_local $1) - ) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObject#makeGray - (get_local $1) - ) - ) - ) - ) + get_local $0 + if + block $~lib/collector/itcm/refToObj|inlined.0 (result i32) + get_local $0 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.sub + end + set_local $1 + get_local $1 + call $~lib/collector/itcm/ManagedObject#get:color + get_global $~lib/collector/itcm/white + i32.eq + if + get_local $1 + call $~lib/collector/itcm/ManagedObject#makeGray + end + end ) (func $~lib/array/Array~gc (; 9 ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $1 - (i32.load - (get_local $0) - ) - ) - (call $~lib/collector/itcm/__gc_mark - (get_local $1) - ) - (set_local $2 - (i32.const 0) - ) - (set_local $3 - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 2) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.lt_u - (get_local $2) - (get_local $3) - ) - (block - (block - (call $~lib/collector/itcm/__gc_mark - (i32.load offset=8 - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 4) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $0 + i32.load + set_local $1 + get_local $1 + call $~lib/collector/itcm/__gc_mark + i32.const 0 + set_local $2 + get_local $0 + i32.load offset=4 + i32.const 2 + i32.shl + set_local $3 + block $break|0 + loop $continue|0 + get_local $2 + get_local $3 + i32.lt_u + if + block + get_local $1 + get_local $2 + i32.add + i32.load offset=8 + call $~lib/collector/itcm/__gc_mark + get_local $2 + i32.const 4 + i32.add + set_local $2 + end + br $continue|0 + end + end + end ) (func $~lib/allocator/arena/__memory_allocate (; 10 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -253,2913 +198,2074 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/collector/itcm/ManagedObjectList#clear (; 11 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (get_local $0) - ) - (i32.store offset=4 - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + i32.store + get_local $0 + get_local $0 + i32.store offset=4 ) (func $~lib/collector/itcm/ManagedObject#set:color (; 12 ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.xor - (i32.const 3) - (i32.const -1) - ) - ) - (get_local $1) - ) - ) + get_local $0 + get_local $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + get_local $1 + i32.or + i32.store ) (func $~lib/allocator/arena/__memory_free (; 13 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $~lib/collector/itcm/step (; 14 ;) (type $v) (local $0 i32) (local $1 i32) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $1 - (get_global $~lib/collector/itcm/state) - ) - (br_if $case0|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.INIT) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.MARK) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.SWEEP) - ) - ) - (br $break|0) - ) - (block - (set_global $~lib/collector/itcm/fromSpace - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $1 - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/fromSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (block $~lib/memory/memory.allocate|inlined.1 (result i32) - (set_local $1 - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - (br $~lib/memory/memory.allocate|inlined.1 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/toSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/iter - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - ) - (block - (call $~iterateRoots - (i32.const 3) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.MARK) - ) - (br $break|0) - ) - ) - (block - (set_local $0 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - ) - (if - (i32.ne - (get_local $0) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $0) - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (call_indirect (type $iv) - (block $~lib/collector/itcm/objToRef|inlined.0 (result i32) - (i32.add - (get_local $0) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - (i32.load offset=8 - (get_local $0) - ) - ) - ) - (block - (call $~iterateRoots - (i32.const 3) - ) - (set_local $0 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - ) - (if - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_local $1 - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/fromSpace - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (get_local $1) - ) - (set_global $~lib/collector/itcm/white - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $1) - ) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.SWEEP) - ) - ) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $0 - (get_global $~lib/collector/itcm/iter) - ) - (if - (i32.ne - (get_local $0) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (if - (i32.ge_u - (get_local $0) - (get_global $HEAP_BASE) - ) - (block $~lib/memory/memory.free|inlined.0 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $0) - ) - (br $~lib/memory/memory.free|inlined.0) - ) - ) - ) - ) - (block - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - ) - (br $break|0) - ) - ) + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_global $~lib/collector/itcm/state + set_local $1 + get_local $1 + get_global $~lib/collector/itcm/State.INIT + i32.eq + br_if $case0|0 + get_local $1 + get_global $~lib/collector/itcm/State.IDLE + i32.eq + br_if $case1|0 + get_local $1 + get_global $~lib/collector/itcm/State.MARK + i32.eq + br_if $case2|0 + get_local $1 + get_global $~lib/collector/itcm/State.SWEEP + i32.eq + br_if $case3|0 + br $break|0 + end + block + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_global $~lib/collector/itcm/HEADER_SIZE + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_global $~lib/collector/itcm/fromSpace + get_global $~lib/collector/itcm/fromSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/fromSpace + call $~lib/collector/itcm/ManagedObjectList#clear + block $~lib/memory/memory.allocate|inlined.1 (result i32) + get_global $~lib/collector/itcm/HEADER_SIZE + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.1 + end + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/toSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/iter + get_global $~lib/collector/itcm/State.IDLE + set_global $~lib/collector/itcm/state + end + end + block + i32.const 3 + call $~iterateRoots + get_global $~lib/collector/itcm/State.MARK + set_global $~lib/collector/itcm/state + br $break|0 + unreachable + end + unreachable + end + block + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + set_global $~lib/collector/itcm/iter + get_local $0 + get_global $~lib/collector/itcm/white + i32.eqz + call $~lib/collector/itcm/ManagedObject#set:color + i32.const 1 + set_global $~argc + block $~lib/collector/itcm/objToRef|inlined.0 (result i32) + get_local $0 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.add + end + get_local $0 + i32.load offset=8 + call_indirect (type $iv) + else + i32.const 3 + call $~iterateRoots + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/toSpace + i32.eq + if + get_global $~lib/collector/itcm/fromSpace + set_local $1 + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/fromSpace + get_local $1 + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/white + i32.eqz + set_global $~lib/collector/itcm/white + get_local $1 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + get_global $~lib/collector/itcm/State.SWEEP + set_global $~lib/collector/itcm/state + end + end + br $break|0 + unreachable + end + unreachable + end + block + get_global $~lib/collector/itcm/iter + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + get_local $0 + get_global $HEAP_BASE + i32.ge_u + if + block $~lib/memory/memory.free|inlined.0 + block + get_local $0 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.0 + unreachable + end + unreachable + end + end + else + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + get_global $~lib/collector/itcm/State.IDLE + set_global $~lib/collector/itcm/state + end + br $break|0 + unreachable + end + unreachable + end ) (func $~lib/collector/itcm/__gc_collect (; 15 ;) (type $v) (local $0 i32) - (block $break|0 - (block $case1|0 - (block $case0|0 - (set_local $0 - (get_global $~lib/collector/itcm/state) - ) - (br_if $case0|0 - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/State.INIT) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - (br $break|0) - ) - ) - (call $~lib/collector/itcm/step) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ne - (get_global $~lib/collector/itcm/state) - (get_global $~lib/collector/itcm/State.IDLE) - ) - (block - (call $~lib/collector/itcm/step) - (br $continue|1) - ) - ) - ) - ) + block $break|0 + block $case1|0 + block $case0|0 + get_global $~lib/collector/itcm/state + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/State.INIT + i32.eq + br_if $case0|0 + get_local $0 + get_global $~lib/collector/itcm/State.IDLE + i32.eq + br_if $case1|0 + br $break|0 + end + end + call $~lib/collector/itcm/step + end + block $break|1 + loop $continue|1 + get_global $~lib/collector/itcm/state + get_global $~lib/collector/itcm/State.IDLE + i32.ne + if + call $~lib/collector/itcm/step + br $continue|1 + end + end + end ) (func $~lib/gc/gc.collect (; 16 ;) (type $v) - (call $~lib/collector/itcm/__gc_collect) - (return) + call $~lib/collector/itcm/__gc_collect + return ) (func $~lib/collector/itcm/__gc_allocate (; 17 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.sub - (get_global $~lib/internal/allocator/MAX_SIZE_32) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - (unreachable) - ) - (call $~lib/collector/itcm/step) - (set_local $3 - (block $~lib/memory/memory.allocate|inlined.2 (result i32) - (set_local $2 - (i32.add - (get_global $~lib/collector/itcm/HEADER_SIZE) - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.2 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $1) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $3) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/fromSpace) - (get_local $3) - ) - (block $~lib/collector/itcm/objToRef|inlined.1 (result i32) - (i32.add - (get_local $3) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.sub + i32.gt_u + if + unreachable + end + call $~lib/collector/itcm/step + block $~lib/memory/memory.allocate|inlined.2 (result i32) + get_global $~lib/collector/itcm/HEADER_SIZE + get_local $0 + i32.add + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.2 + end + set_local $3 + get_local $3 + get_local $1 + i32.store offset=8 + get_local $3 + get_global $~lib/collector/itcm/white + call $~lib/collector/itcm/ManagedObject#set:color + get_global $~lib/collector/itcm/fromSpace + get_local $3 + call $~lib/collector/itcm/ManagedObjectList#push + block $~lib/collector/itcm/objToRef|inlined.1 (result i32) + get_local $3 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.add + end ) (func $std/gc-array/Foo~gc (; 18 ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (get_local $0) - ) - (return) - ) - (call $~lib/collector/itcm/__gc_mark - (get_local $0) - ) + get_local $0 + i32.eqz + if + return + end + get_local $0 + call $~lib/collector/itcm/__gc_mark ) (func $~lib/string/String~gc (; 19 ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (get_local $0) - ) - (return) - ) - (call $~lib/collector/itcm/__gc_mark - (get_local $0) - ) + get_local $0 + i32.eqz + if + return + end + get_local $0 + call $~lib/collector/itcm/__gc_mark ) (func $~lib/internal/arraybuffer/computeSize (; 20 ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.sub - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/internal/memory/memset (; 21 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/internal/arraybuffer/__gc (; 22 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 23 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (call $~lib/collector/itcm/__gc_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - (i32.const 6) - ) - ) - (i32.store - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + i32.const 6 + call $~lib/collector/itcm/__gc_allocate + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/internal/memory/memcpy (; 24 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (block - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $5 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (br_if $case0|2 - (i32.eq - (get_local $5) - (i32.const 1) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $5) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $5) - (i32.const 3) - ) - ) - (br $break|2) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - (br $break|2) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) + block $break|0 + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + if + block + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|0 + end + end + end + get_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + block + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|1 + end + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $0 + i32.const 3 + i32.and + set_local $5 + get_local $5 + i32.const 1 + i32.eq + br_if $case0|2 + get_local $5 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + block $break|3 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + block + get_local $1 + i32.const 1 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 5 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 9 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 13 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|3 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $break|4 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + block + get_local $1 + i32.const 2 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 6 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 10 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 14 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|4 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block $break|5 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + block + get_local $1 + i32.const 3 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 7 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 11 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 15 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|5 + end + end + end + br $break|2 + unreachable + end + unreachable + end + end + get_local $2 + i32.const 16 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end ) (func $~lib/internal/memory/memmove (; 25 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (if (result i32) - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - (get_local $3) - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|0 - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (get_local $2) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|3 - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (i64.store - (i32.add - (get_local $0) - (get_local $2) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + end + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|0 + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + end + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + get_local $2 + if + block + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|2 + end + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|3 + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + end + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + end + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end ) (func $~lib/internal/arraybuffer/reallocateUnsafe (; 26 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3167,369 +2273,270 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if - (i32.gt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.eqz - (i32.le_s - (get_local $1) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 37) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.le_s - (get_local $1) - (i32.sub - (call $~lib/internal/arraybuffer/computeSize - (get_local $2) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $3 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (get_local $2) - ) - ) - (set_local $4 - (i32.const 0) - ) - (set_local $5 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memset - (get_local $3) - (get_local $4) - (get_local $5) - ) - ) - ) - (block - (set_local $5 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (block $~lib/memory/memory.copy|inlined.0 - (set_local $4 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $3 - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $4) - (get_local $3) - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.1 - (set_local $3 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (get_local $2) - ) - ) - (set_local $4 - (i32.const 0) - ) - (set_local $6 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memset - (get_local $3) - (get_local $4) - (get_local $6) - ) - ) - (return - (get_local $5) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.eqz - (i32.ge_s - (get_local $1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 61) - (i32.const 4) - ) - (unreachable) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.gt_s + if + get_local $1 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_s + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 37 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $2 + call $~lib/internal/arraybuffer/computeSize + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.sub + i32.le_s + if + get_local $0 + get_local $1 + i32.store + block $~lib/memory/memory.fill|inlined.0 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $2 + i32.add + set_local $3 + i32.const 0 + set_local $4 + get_local $1 + get_local $2 + i32.sub + set_local $5 + get_local $3 + get_local $4 + get_local $5 + call $~lib/internal/memory/memset + end + else + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $5 + block $~lib/memory/memory.copy|inlined.0 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $3 + get_local $4 + get_local $3 + get_local $2 + call $~lib/internal/memory/memmove + end + block $~lib/memory/memory.fill|inlined.1 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $2 + i32.add + set_local $3 + i32.const 0 + set_local $4 + get_local $1 + get_local $2 + i32.sub + set_local $6 + get_local $3 + get_local $4 + get_local $6 + call $~lib/internal/memory/memset + end + get_local $5 + return + end + else + get_local $1 + get_local $2 + i32.lt_s + if + get_local $1 + i32.const 0 + i32.ge_s + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 61 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.store + end + end + get_local $0 ) (func $~lib/collector/itcm/__gc_link (; 27 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (set_local $2 - (block $~lib/collector/itcm/refToObj|inlined.1 (result i32) - (i32.sub - (get_local $0) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - ) - (if - (if (result i32) - (tee_local $3 - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:color - (get_local $2) - ) - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - ) - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:color - (block $~lib/collector/itcm/refToObj|inlined.3 (result i32) - (i32.sub - (get_local $1) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - ) - (get_global $~lib/collector/itcm/white) - ) - (get_local $3) - ) - (call $~lib/collector/itcm/ManagedObject#makeGray - (get_local $2) - ) - ) + block $~lib/collector/itcm/refToObj|inlined.1 (result i32) + get_local $0 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.sub + end + set_local $2 + get_local $2 + call $~lib/collector/itcm/ManagedObject#get:color + get_global $~lib/collector/itcm/white + i32.eqz + i32.eq + tee_local $3 + if (result i32) + block $~lib/collector/itcm/refToObj|inlined.3 (result i32) + get_local $1 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.sub + end + call $~lib/collector/itcm/ManagedObject#get:color + get_global $~lib/collector/itcm/white + i32.eq + else + get_local $3 + end + if + get_local $2 + call $~lib/collector/itcm/ManagedObject#makeGray + end ) (func $~lib/array/Array#__set (; 28 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 2) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 72) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) - (call $~lib/collector/itcm/__gc_link - (get_local $0) - (get_local $2) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 2 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + get_local $1 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 72 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 + end + get_local $0 + get_local $2 + call $~lib/collector/itcm/__gc_link ) (func $std/gc-array/main (; 29 ;) (type $i) (result i32) - (if - (i32.eqz - (get_global $~started) - ) - (block - (call $start) - (set_global $~started - (i32.const 1) - ) - ) - ) - (i32.const 0) + get_global $~started + i32.eqz + if + call $start + i32.const 1 + set_global $~started + end + i32.const 0 ) (func $start (; 30 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.INIT) - ) - (call $~lib/gc/gc.collect) - (call $~lib/array/Array#__set - (get_global $std/gc-array/arr) - (i32.const 0) - (block (result i32) - (set_local $0 - (call $~lib/collector/itcm/__gc_allocate - (i32.const 0) - (i32.const 4) - ) - ) - (get_local $0) - ) - ) - (call $~lib/gc/gc.collect) - (call $~lib/array/Array#__set - (get_global $std/gc-array/arr) - (i32.const 1) - (block (result i32) - (set_local $1 - (call $~lib/collector/itcm/__gc_allocate - (i32.const 0) - (i32.const 4) - ) - ) - (get_local $1) - ) - ) - (call $~lib/gc/gc.collect) - (call $~lib/array/Array#__set - (get_global $std/gc-array/arr) - (i32.const 0) - (block (result i32) - (set_local $2 - (call $~lib/collector/itcm/__gc_allocate - (i32.const 0) - (i32.const 4) - ) - ) - (get_local $2) - ) - ) - (call $~lib/gc/gc.collect) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + get_global $~lib/collector/itcm/State.INIT + set_global $~lib/collector/itcm/state + call $~lib/gc/gc.collect + get_global $std/gc-array/arr + i32.const 0 + block (result i32) + i32.const 0 + i32.const 4 + call $~lib/collector/itcm/__gc_allocate + set_local $0 + get_local $0 + end + call $~lib/array/Array#__set + call $~lib/gc/gc.collect + get_global $std/gc-array/arr + i32.const 1 + block (result i32) + i32.const 0 + i32.const 4 + call $~lib/collector/itcm/__gc_allocate + set_local $1 + get_local $1 + end + call $~lib/array/Array#__set + call $~lib/gc/gc.collect + get_global $std/gc-array/arr + i32.const 0 + block (result i32) + i32.const 0 + i32.const 4 + call $~lib/collector/itcm/__gc_allocate + set_local $2 + get_local $2 + end + call $~lib/array/Array#__set + call $~lib/gc/gc.collect ) (func $null (; 31 ;) (type $v) ) (func $~iterateRoots (; 32 ;) (type $iv) (param $0 i32) - (call_indirect (type $iv) - (get_global $std/gc-array/arr) - (get_local $0) - ) + get_global $std/gc-array/arr + get_local $0 + call_indirect (type $iv) ) ) diff --git a/tests/compiler/std/gc-basics.optimized.wat b/tests/compiler/std/gc-basics.optimized.wat index 4e70d096..c083ee0d 100644 --- a/tests/compiler/std/gc-basics.optimized.wat +++ b/tests/compiler/std/gc-basics.optimized.wat @@ -7,11 +7,11 @@ (type $i (func (result i32))) (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 16) "\03\00\00\00\00\00\00\00\10\00\00\00s\00t\00d\00/\00g\00c\00-\00b\00a\00s\00i\00c\00s\00.\00t\00s") - (table 4 anyfunc) + (table $0 4 anyfunc) (elem (i32.const 0) $null $std/gc-basics/MyObject_visit $~lib/collector/itcm/__gc_mark $~lib/string/String~gc) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $~lib/collector/itcm/state (mut i32) (i32.const 0)) @@ -26,638 +26,462 @@ (export "memory" (memory $0)) (export "table" (table $0)) (export "main" (func $std/gc-basics/main)) - (func $std/gc-basics/MyObject_visit (; 1 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (nop) + (func $std/gc-basics/MyObject_visit (; 1 ;) (type $iv) (param $0 i32) + nop ) - (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/collector/itcm/ManagedObjectList#clear (; 3 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (get_local $0) - ) - (i32.store offset=4 - (get_local $0) - (get_local $0) - ) + (func $~lib/collector/itcm/ManagedObjectList#clear (; 3 ;) (type $iv) (param $0 i32) + get_local $0 + get_local $0 + i32.store + get_local $0 + get_local $0 + i32.store offset=4 ) - (func $~lib/collector/itcm/ManagedObject#get:color (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) + (func $~lib/collector/itcm/ManagedObject#get:color (; 4 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const 3 + i32.and ) - (func $~lib/collector/itcm/ManagedObject#get:next (; 5 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const -4) - ) + (func $~lib/collector/itcm/ManagedObject#get:next (; 5 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const -4 + i32.and ) - (func $~lib/collector/itcm/ManagedObject#set:next (; 6 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (get_local $1) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - ) - ) + (func $~lib/collector/itcm/ManagedObject#set:next (; 6 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + get_local $1 + get_local $0 + i32.load + i32.const 3 + i32.and + i32.or + i32.store ) - (func $~lib/collector/itcm/ManagedObject#unlink (; 7 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/collector/itcm/ManagedObject#unlink (; 7 ;) (type $iv) (param $0 i32) (local $1 i32) - (i32.store offset=4 - (tee_local $1 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (tee_local $0 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $0) - (get_local $1) - ) + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + tee_local $1 + get_local $0 + i32.load offset=4 + tee_local $0 + i32.store offset=4 + get_local $0 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next ) - (func $~lib/collector/itcm/ManagedObjectList#push (; 8 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/ManagedObjectList#push (; 8 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $1) - (get_local $0) - ) - (i32.store offset=4 - (get_local $1) - (get_local $2) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $2) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + get_local $0 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $1 + get_local $2 + i32.store offset=4 + get_local $2 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $0 + get_local $1 + i32.store offset=4 ) - (func $~lib/collector/itcm/ManagedObject#makeGray (; 9 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (if - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/iter) - ) - (set_global $~lib/collector/itcm/iter - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (call $~lib/collector/itcm/ManagedObject#unlink - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/toSpace) - (get_local $0) - ) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.const -4) - ) - (i32.const 2) - ) - ) + (func $~lib/collector/itcm/ManagedObject#makeGray (; 9 ;) (type $iv) (param $0 i32) + get_local $0 + get_global $~lib/collector/itcm/iter + i32.eq + if + get_local $0 + i32.load offset=4 + set_global $~lib/collector/itcm/iter + end + get_local $0 + call $~lib/collector/itcm/ManagedObject#unlink + get_global $~lib/collector/itcm/toSpace + get_local $0 + call $~lib/collector/itcm/ManagedObjectList#push + get_local $0 + get_local $0 + i32.load + i32.const -4 + i32.and + i32.const 2 + i32.or + i32.store ) - (func $~lib/collector/itcm/__gc_mark (; 10 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/collector/itcm/__gc_mark (; 10 ;) (type $iv) (param $0 i32) (local $1 i32) - (if - (get_local $0) - (if - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:color - (tee_local $1 - (i32.sub - (get_local $0) - (i32.const 16) - ) - ) - ) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObject#makeGray - (get_local $1) - ) - ) - ) + get_local $0 + if + get_local $0 + i32.const 16 + i32.sub + tee_local $1 + call $~lib/collector/itcm/ManagedObject#get:color + get_global $~lib/collector/itcm/white + i32.eq + if + get_local $1 + call $~lib/collector/itcm/ManagedObject#makeGray + end + end ) - (func $~lib/collector/itcm/ManagedObject#set:color (; 11 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.const -4) - ) - (get_local $1) - ) - ) + (func $~lib/collector/itcm/ManagedObject#set:color (; 11 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + get_local $0 + i32.load + i32.const -4 + i32.and + get_local $1 + i32.or + i32.store ) - (func $~lib/collector/itcm/step (; 12 ;) (; has Stack IR ;) (type $v) + (func $~lib/collector/itcm/step (; 12 ;) (type $v) (local $0 i32) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (if - (tee_local $0 - (get_global $~lib/collector/itcm/state) - ) - (block - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $tablify|0 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - ) - (br $break|0) - ) - ) - (set_global $~lib/collector/itcm/fromSpace - (tee_local $0 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 16) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/fromSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (tee_local $0 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 16) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/toSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/iter - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (i32.const 1) - ) - ) - (call $~iterateRoots) - (set_global $~lib/collector/itcm/state - (i32.const 2) - ) - (br $break|0) - ) - (if - (i32.ne - (tee_local $0 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - ) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $0) - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (call_indirect (type $iv) - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.load offset=8 - (get_local $0) - ) - ) - ) - (block - (call $~iterateRoots) - (if - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_local $0 - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/fromSpace - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (get_local $0) - ) - (set_global $~lib/collector/itcm/white - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (set_global $~lib/collector/itcm/state - (i32.const 3) - ) - ) - ) - ) - ) - (br $break|0) - ) - (if - (i32.ne - (tee_local $0 - (get_global $~lib/collector/itcm/iter) - ) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (if - (i32.ge_u - (get_local $0) - (i32.const 60) - ) - (call $std/gc-basics/MyObject_visit - (get_local $0) - ) - ) - ) - (block - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (i32.const 1) - ) - ) - ) - ) + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + get_global $~lib/collector/itcm/state + tee_local $0 + if + block $tablify|0 + get_local $0 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $tablify|0 + end + br $break|0 + end + i32.const 16 + call $~lib/allocator/arena/__memory_allocate + tee_local $0 + set_global $~lib/collector/itcm/fromSpace + get_global $~lib/collector/itcm/fromSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/fromSpace + call $~lib/collector/itcm/ManagedObjectList#clear + i32.const 16 + call $~lib/allocator/arena/__memory_allocate + tee_local $0 + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/toSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/iter + i32.const 1 + set_global $~lib/collector/itcm/state + end + call $~iterateRoots + i32.const 2 + set_global $~lib/collector/itcm/state + br $break|0 + end + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + tee_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + set_global $~lib/collector/itcm/iter + get_local $0 + get_global $~lib/collector/itcm/white + i32.eqz + call $~lib/collector/itcm/ManagedObject#set:color + i32.const 1 + set_global $~argc + get_local $0 + i32.const 16 + i32.add + get_local $0 + i32.load offset=8 + call_indirect (type $iv) + else + call $~iterateRoots + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + get_global $~lib/collector/itcm/toSpace + i32.eq + if + get_global $~lib/collector/itcm/fromSpace + set_local $0 + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/fromSpace + get_local $0 + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/white + i32.eqz + set_global $~lib/collector/itcm/white + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + i32.const 3 + set_global $~lib/collector/itcm/state + end + end + br $break|0 + end + get_global $~lib/collector/itcm/iter + tee_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + get_local $0 + i32.const 60 + i32.ge_u + if + get_local $0 + call $std/gc-basics/MyObject_visit + end + else + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + i32.const 1 + set_global $~lib/collector/itcm/state + end + end ) - (func $~lib/collector/itcm/__gc_allocate (; 13 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/collector/itcm/__gc_allocate (; 13 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (call $~lib/collector/itcm/step) - (i32.store offset=8 - (tee_local $0 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 20) - ) - ) - (i32.const 1) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $0) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/fromSpace) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 16) - ) + call $~lib/collector/itcm/step + i32.const 20 + call $~lib/allocator/arena/__memory_allocate + tee_local $0 + i32.const 1 + i32.store offset=8 + get_local $0 + get_global $~lib/collector/itcm/white + call $~lib/collector/itcm/ManagedObject#set:color + get_global $~lib/collector/itcm/fromSpace + get_local $0 + call $~lib/collector/itcm/ManagedObjectList#push + get_local $0 + i32.const 16 + i32.add ) - (func $~lib/string/String~gc (; 14 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (get_local $0) - ) - (return) - ) - (call $~lib/collector/itcm/__gc_mark - (get_local $0) - ) + (func $~lib/string/String~gc (; 14 ;) (type $iv) (param $0 i32) + get_local $0 + i32.eqz + if + return + end + get_local $0 + call $~lib/collector/itcm/__gc_mark ) - (func $~lib/collector/itcm/__gc_collect (; 15 ;) (; has Stack IR ;) (type $v) + (func $~lib/collector/itcm/__gc_collect (; 15 ;) (type $v) (local $0 i32) - (block $break|0 - (block $case1|0 - (br_if $case1|0 - (i32.eqz - (tee_local $0 - (get_global $~lib/collector/itcm/state) - ) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $0) - (i32.const 1) - ) - ) - (br $break|0) - ) - (call $~lib/collector/itcm/step) - ) - (loop $continue|1 - (if - (i32.ne - (get_global $~lib/collector/itcm/state) - (i32.const 1) - ) - (block - (call $~lib/collector/itcm/step) - (br $continue|1) - ) - ) - ) + block $break|0 + block $case1|0 + get_global $~lib/collector/itcm/state + tee_local $0 + i32.eqz + br_if $case1|0 + get_local $0 + i32.const 1 + i32.eq + br_if $case1|0 + br $break|0 + end + call $~lib/collector/itcm/step + end + loop $continue|1 + get_global $~lib/collector/itcm/state + i32.const 1 + i32.ne + if + call $~lib/collector/itcm/step + br $continue|1 + end + end ) - (func $~lib/gc/gc.collect (; 16 ;) (; has Stack IR ;) (type $v) - (call $~lib/collector/itcm/__gc_collect) + (func $~lib/gc/gc.collect (; 16 ;) (type $v) + call $~lib/collector/itcm/__gc_collect ) - (func $std/gc-basics/main (; 17 ;) (; has Stack IR ;) (type $i) (result i32) - (if - (i32.eqz - (get_global $~started) - ) - (block - (call $start) - (set_global $~started - (i32.const 1) - ) - ) - ) - (i32.const 0) + (func $std/gc-basics/main (; 17 ;) (type $i) (result i32) + get_global $~started + i32.eqz + if + call $start + i32.const 1 + set_global $~started + end + i32.const 0 ) - (func $start (; 18 ;) (; has Stack IR ;) (type $v) + (func $start (; 18 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 64) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $~lib/collector/itcm/state - (i32.const 0) - ) - (set_global $std/gc-basics/obj - (call $~lib/collector/itcm/__gc_allocate) - ) - (i32.store - (get_global $std/gc-basics/obj) - (i32.const 123) - ) - (set_local $2 - (i32.load offset=4 - (tee_local $0 - (i32.sub - (get_global $std/gc-basics/obj) - (i32.const 16) - ) - ) - ) - ) - (if - (tee_local $1 - (i32.ne - (tee_local $3 - (i32.and - (i32.load - (get_local $0) - ) - (i32.const -4) - ) - ) - (i32.const 0) - ) - ) - (set_local $1 - (i32.ne - (get_local $2) - (i32.const 0) - ) - ) - ) - (if - (get_local $1) - (set_local $1 - (i32.eq - (get_local $3) - (get_local $2) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 19) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $0) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 21) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=12 - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=16 - (get_local $0) - ) - (i32.const 123) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 25) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/gc/gc.collect) - (set_global $std/gc-basics/obj - (i32.const 0) - ) - (call $~lib/gc/gc.collect) + i32.const 64 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + set_global $~lib/collector/itcm/state + call $~lib/collector/itcm/__gc_allocate + set_global $std/gc-basics/obj + get_global $std/gc-basics/obj + i32.const 123 + i32.store + get_global $std/gc-basics/obj + i32.const 16 + i32.sub + tee_local $0 + i32.load offset=4 + set_local $2 + get_local $0 + i32.load + i32.const -4 + i32.and + tee_local $3 + i32.const 0 + i32.ne + tee_local $1 + if + get_local $2 + i32.const 0 + i32.ne + set_local $1 + end + get_local $1 + if + get_local $3 + get_local $2 + i32.eq + set_local $1 + end + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 19 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=8 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 21 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=12 + if + i32.const 0 + i32.const 24 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=16 + i32.const 123 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 25 + i32.const 2 + call $~lib/env/abort + unreachable + end + call $~lib/gc/gc.collect + i32.const 0 + set_global $std/gc-basics/obj + call $~lib/gc/gc.collect ) - (func $null (; 19 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 19 ;) (type $v) + nop ) - (func $~iterateRoots (; 20 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (call_indirect (type $iv) - (get_global $std/gc-basics/obj) - (i32.const 2) - ) - (call_indirect (type $iv) - (get_global $std/gc-basics/obj2) - (i32.const 2) - ) + (func $~iterateRoots (; 20 ;) (type $FUNCSIG$v) + get_global $std/gc-basics/obj + i32.const 2 + call_indirect (type $iv) + get_global $std/gc-basics/obj2 + i32.const 2 + call_indirect (type $iv) ) ) diff --git a/tests/compiler/std/gc-basics.untouched.wat b/tests/compiler/std/gc-basics.untouched.wat index 7e6e1310..c59c3444 100644 --- a/tests/compiler/std/gc-basics.untouched.wat +++ b/tests/compiler/std/gc-basics.untouched.wat @@ -6,11 +6,11 @@ (type $iiv (func (param i32 i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $i (func (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\00\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\10\00\00\00s\00t\00d\00/\00g\00c\00-\00b\00a\00s\00i\00c\00s\00.\00t\00s\00") - (table 4 anyfunc) + (table $0 4 anyfunc) (elem (i32.const 0) $null $std/gc-basics/MyObject_visit $~lib/collector/itcm/__gc_mark $~lib/string/String~gc) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -37,7 +37,7 @@ (export "table" (table $0)) (export "main" (func $std/gc-basics/main)) (func $std/gc-basics/MyObject_visit (; 1 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -46,614 +46,457 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/collector/itcm/ManagedObjectList#clear (; 3 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (get_local $0) - ) - (i32.store offset=4 - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + i32.store + get_local $0 + get_local $0 + i32.store offset=4 ) (func $~lib/collector/itcm/ManagedObject#get:color (; 4 ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) + get_local $0 + i32.load + i32.const 3 + i32.and ) (func $~lib/collector/itcm/ManagedObject#get:next (; 5 ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.xor - (i32.const 3) - (i32.const -1) - ) - ) + get_local $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and ) (func $~lib/collector/itcm/ManagedObject#set:next (; 6 ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (get_local $1) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - ) - ) + get_local $0 + get_local $1 + get_local $0 + i32.load + i32.const 3 + i32.and + i32.or + i32.store ) (func $~lib/collector/itcm/ManagedObject#unlink (; 7 ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.store offset=4 - (get_local $1) - (get_local $2) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $2) - (get_local $1) - ) + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_local $1 + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + get_local $2 + i32.store offset=4 + get_local $2 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next ) (func $~lib/collector/itcm/ManagedObjectList#push (; 8 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $1) - (get_local $0) - ) - (i32.store offset=4 - (get_local $1) - (get_local $2) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $2) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + get_local $0 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $1 + get_local $2 + i32.store offset=4 + get_local $2 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $0 + get_local $1 + i32.store offset=4 ) (func $~lib/collector/itcm/ManagedObject#makeGray (; 9 ;) (type $iv) (param $0 i32) - (if - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/iter) - ) - (set_global $~lib/collector/itcm/iter - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (call $~lib/collector/itcm/ManagedObject#unlink - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/toSpace) - (get_local $0) - ) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.xor - (i32.const 3) - (i32.const -1) - ) - ) - (i32.const 2) - ) - ) + get_local $0 + get_global $~lib/collector/itcm/iter + i32.eq + if + get_local $0 + i32.load offset=4 + set_global $~lib/collector/itcm/iter + end + get_local $0 + call $~lib/collector/itcm/ManagedObject#unlink + get_global $~lib/collector/itcm/toSpace + get_local $0 + call $~lib/collector/itcm/ManagedObjectList#push + get_local $0 + get_local $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 2 + i32.or + i32.store ) (func $~lib/collector/itcm/__gc_mark (; 10 ;) (type $iv) (param $0 i32) (local $1 i32) - (if - (get_local $0) - (block - (set_local $1 - (block $~lib/collector/itcm/refToObj|inlined.0 (result i32) - (i32.sub - (get_local $0) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - ) - (if - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:color - (get_local $1) - ) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObject#makeGray - (get_local $1) - ) - ) - ) - ) + get_local $0 + if + block $~lib/collector/itcm/refToObj|inlined.0 (result i32) + get_local $0 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.sub + end + set_local $1 + get_local $1 + call $~lib/collector/itcm/ManagedObject#get:color + get_global $~lib/collector/itcm/white + i32.eq + if + get_local $1 + call $~lib/collector/itcm/ManagedObject#makeGray + end + end ) (func $~lib/collector/itcm/ManagedObject#set:color (; 11 ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.xor - (i32.const 3) - (i32.const -1) - ) - ) - (get_local $1) - ) - ) + get_local $0 + get_local $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + get_local $1 + i32.or + i32.store ) (func $~lib/allocator/arena/__memory_free (; 12 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $~lib/collector/itcm/step (; 13 ;) (type $v) (local $0 i32) (local $1 i32) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $1 - (get_global $~lib/collector/itcm/state) - ) - (br_if $case0|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.INIT) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.MARK) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.SWEEP) - ) - ) - (br $break|0) - ) - (block - (set_global $~lib/collector/itcm/fromSpace - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $1 - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/fromSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (block $~lib/memory/memory.allocate|inlined.1 (result i32) - (set_local $1 - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - (br $~lib/memory/memory.allocate|inlined.1 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/toSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/iter - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - ) - (block - (call $~iterateRoots - (i32.const 2) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.MARK) - ) - (br $break|0) - ) - ) - (block - (set_local $0 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - ) - (if - (i32.ne - (get_local $0) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $0) - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (call_indirect (type $iv) - (block $~lib/collector/itcm/objToRef|inlined.0 (result i32) - (i32.add - (get_local $0) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - (i32.load offset=8 - (get_local $0) - ) - ) - ) - (block - (call $~iterateRoots - (i32.const 2) - ) - (set_local $0 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - ) - (if - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_local $1 - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/fromSpace - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (get_local $1) - ) - (set_global $~lib/collector/itcm/white - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $1) - ) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.SWEEP) - ) - ) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $0 - (get_global $~lib/collector/itcm/iter) - ) - (if - (i32.ne - (get_local $0) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (if - (i32.ge_u - (get_local $0) - (get_global $HEAP_BASE) - ) - (block $~lib/memory/memory.free|inlined.0 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $0) - ) - (br $~lib/memory/memory.free|inlined.0) - ) - ) - ) - ) - (block - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - ) - (br $break|0) - ) - ) + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_global $~lib/collector/itcm/state + set_local $1 + get_local $1 + get_global $~lib/collector/itcm/State.INIT + i32.eq + br_if $case0|0 + get_local $1 + get_global $~lib/collector/itcm/State.IDLE + i32.eq + br_if $case1|0 + get_local $1 + get_global $~lib/collector/itcm/State.MARK + i32.eq + br_if $case2|0 + get_local $1 + get_global $~lib/collector/itcm/State.SWEEP + i32.eq + br_if $case3|0 + br $break|0 + end + block + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_global $~lib/collector/itcm/HEADER_SIZE + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_global $~lib/collector/itcm/fromSpace + get_global $~lib/collector/itcm/fromSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/fromSpace + call $~lib/collector/itcm/ManagedObjectList#clear + block $~lib/memory/memory.allocate|inlined.1 (result i32) + get_global $~lib/collector/itcm/HEADER_SIZE + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.1 + end + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/toSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/iter + get_global $~lib/collector/itcm/State.IDLE + set_global $~lib/collector/itcm/state + end + end + block + i32.const 2 + call $~iterateRoots + get_global $~lib/collector/itcm/State.MARK + set_global $~lib/collector/itcm/state + br $break|0 + unreachable + end + unreachable + end + block + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + set_global $~lib/collector/itcm/iter + get_local $0 + get_global $~lib/collector/itcm/white + i32.eqz + call $~lib/collector/itcm/ManagedObject#set:color + i32.const 1 + set_global $~argc + block $~lib/collector/itcm/objToRef|inlined.0 (result i32) + get_local $0 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.add + end + get_local $0 + i32.load offset=8 + call_indirect (type $iv) + else + i32.const 2 + call $~iterateRoots + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/toSpace + i32.eq + if + get_global $~lib/collector/itcm/fromSpace + set_local $1 + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/fromSpace + get_local $1 + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/white + i32.eqz + set_global $~lib/collector/itcm/white + get_local $1 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + get_global $~lib/collector/itcm/State.SWEEP + set_global $~lib/collector/itcm/state + end + end + br $break|0 + unreachable + end + unreachable + end + block + get_global $~lib/collector/itcm/iter + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + get_local $0 + get_global $HEAP_BASE + i32.ge_u + if + block $~lib/memory/memory.free|inlined.0 + block + get_local $0 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.0 + unreachable + end + unreachable + end + end + else + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + get_global $~lib/collector/itcm/State.IDLE + set_global $~lib/collector/itcm/state + end + br $break|0 + unreachable + end + unreachable + end ) (func $~lib/collector/itcm/__gc_allocate (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.sub - (get_global $~lib/internal/allocator/MAX_SIZE_32) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - (unreachable) - ) - (call $~lib/collector/itcm/step) - (set_local $3 - (block $~lib/memory/memory.allocate|inlined.2 (result i32) - (set_local $2 - (i32.add - (get_global $~lib/collector/itcm/HEADER_SIZE) - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.2 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $1) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $3) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/fromSpace) - (get_local $3) - ) - (block $~lib/collector/itcm/objToRef|inlined.1 (result i32) - (i32.add - (get_local $3) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.sub + i32.gt_u + if + unreachable + end + call $~lib/collector/itcm/step + block $~lib/memory/memory.allocate|inlined.2 (result i32) + get_global $~lib/collector/itcm/HEADER_SIZE + get_local $0 + i32.add + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.2 + end + set_local $3 + get_local $3 + get_local $1 + i32.store offset=8 + get_local $3 + get_global $~lib/collector/itcm/white + call $~lib/collector/itcm/ManagedObject#set:color + get_global $~lib/collector/itcm/fromSpace + get_local $3 + call $~lib/collector/itcm/ManagedObjectList#push + block $~lib/collector/itcm/objToRef|inlined.1 (result i32) + get_local $3 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.add + end ) (func $~lib/string/String~gc (; 15 ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (get_local $0) - ) - (return) - ) - (call $~lib/collector/itcm/__gc_mark - (get_local $0) - ) + get_local $0 + i32.eqz + if + return + end + get_local $0 + call $~lib/collector/itcm/__gc_mark ) (func $~lib/collector/itcm/__gc_collect (; 16 ;) (type $v) (local $0 i32) - (block $break|0 - (block $case1|0 - (block $case0|0 - (set_local $0 - (get_global $~lib/collector/itcm/state) - ) - (br_if $case0|0 - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/State.INIT) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - (br $break|0) - ) - ) - (call $~lib/collector/itcm/step) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ne - (get_global $~lib/collector/itcm/state) - (get_global $~lib/collector/itcm/State.IDLE) - ) - (block - (call $~lib/collector/itcm/step) - (br $continue|1) - ) - ) - ) - ) + block $break|0 + block $case1|0 + block $case0|0 + get_global $~lib/collector/itcm/state + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/State.INIT + i32.eq + br_if $case0|0 + get_local $0 + get_global $~lib/collector/itcm/State.IDLE + i32.eq + br_if $case1|0 + br $break|0 + end + end + call $~lib/collector/itcm/step + end + block $break|1 + loop $continue|1 + get_global $~lib/collector/itcm/state + get_global $~lib/collector/itcm/State.IDLE + i32.ne + if + call $~lib/collector/itcm/step + br $continue|1 + end + end + end ) (func $~lib/gc/gc.collect (; 17 ;) (type $v) - (call $~lib/collector/itcm/__gc_collect) - (return) + call $~lib/collector/itcm/__gc_collect + return ) (func $std/gc-basics/main (; 18 ;) (type $i) (result i32) - (if - (i32.eqz - (get_global $~started) - ) - (block - (call $start) - (set_global $~started - (i32.const 1) - ) - ) - ) - (i32.const 0) + get_global $~started + i32.eqz + if + call $start + i32.const 1 + set_global $~started + end + i32.const 0 ) (func $start (; 19 ;) (type $v) (local $0 i32) @@ -662,175 +505,127 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.INIT) - ) - (set_global $std/gc-basics/obj - (call $~lib/collector/itcm/__gc_allocate - (i32.const 4) - (i32.const 1) - ) - ) - (i32.store - (get_global $std/gc-basics/obj) - (i32.const 123) - ) - (block - (set_local $0 - (i32.sub - (get_global $std/gc-basics/obj) - (i32.const 16) - ) - ) - (set_local $1 - (i32.and - (i32.load - (get_local $0) - ) - (i32.xor - (i32.const 3) - (i32.const -1) - ) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $3 - (if (result i32) - (tee_local $3 - (i32.ne - (get_local $1) - (i32.const 0) - ) - ) - (i32.ne - (get_local $2) - (i32.const 0) - ) - (get_local $3) - ) - ) - (i32.eq - (get_local $1) - (get_local $2) - ) - (get_local $3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 19) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_local $3) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 21) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $4 - (i32.load offset=12 - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_local $4) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (get_local $5) - (i32.const 123) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 25) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (call $~lib/gc/gc.collect) - (set_global $std/gc-basics/obj - (i32.const 0) - ) - (call $~lib/gc/gc.collect) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + get_global $~lib/collector/itcm/State.INIT + set_global $~lib/collector/itcm/state + i32.const 4 + i32.const 1 + call $~lib/collector/itcm/__gc_allocate + set_global $std/gc-basics/obj + get_global $std/gc-basics/obj + i32.const 123 + i32.store + block + get_global $std/gc-basics/obj + i32.const 16 + i32.sub + set_local $0 + get_local $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + set_local $1 + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + i32.const 0 + i32.ne + tee_local $3 + if (result i32) + get_local $2 + i32.const 0 + i32.ne + else + get_local $3 + end + tee_local $3 + if (result i32) + get_local $1 + get_local $2 + i32.eq + else + get_local $3 + end + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 19 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $3 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 21 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=12 + set_local $4 + get_local $4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load offset=16 + set_local $5 + get_local $5 + i32.const 123 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 25 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + call $~lib/gc/gc.collect + i32.const 0 + set_global $std/gc-basics/obj + call $~lib/gc/gc.collect ) (func $null (; 20 ;) (type $v) ) (func $~iterateRoots (; 21 ;) (type $iv) (param $0 i32) - (call_indirect (type $iv) - (get_global $std/gc-basics/obj) - (get_local $0) - ) - (call_indirect (type $iv) - (get_global $std/gc-basics/obj2) - (get_local $0) - ) + get_global $std/gc-basics/obj + get_local $0 + call_indirect (type $iv) + get_global $std/gc-basics/obj2 + get_local $0 + call_indirect (type $iv) ) ) diff --git a/tests/compiler/std/gc-integration.optimized.wat b/tests/compiler/std/gc-integration.optimized.wat index 5e584c93..53c2903b 100644 --- a/tests/compiler/std/gc-integration.optimized.wat +++ b/tests/compiler/std/gc-integration.optimized.wat @@ -3,11 +3,11 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (type $FUNCSIG$v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\15\00\00\00s\00t\00d\00/\00g\00c\00-\00i\00n\00t\00e\00g\00r\00a\00t\00i\00o\00n\00.\00t\00s") - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $start~anonymous|1) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $std/gc-integration/B.d (mut i32) (i32.const 16)) (global $std/gc-integration/a_ref (mut i32) (i32.const 24)) (global $std/gc-integration/b_ref (mut i32) (i32.const 32)) @@ -15,69 +15,54 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start~anonymous|1 (; 1 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (set_global $std/gc-integration/i - (i32.add - (get_global $std/gc-integration/i) - (i32.const 1) - ) - ) - (if - (i32.ne - (get_local $0) - (i32.shl - (get_global $std/gc-integration/i) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 18) - (i32.const 37) - ) - (unreachable) - ) - ) + (func $start~anonymous|1 (; 1 ;) (type $iv) (param $0 i32) + get_global $std/gc-integration/i + i32.const 1 + i32.add + set_global $std/gc-integration/i + get_local $0 + get_global $std/gc-integration/i + i32.const 3 + i32.shl + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 18 + i32.const 37 + call $~lib/env/abort + unreachable + end ) - (func $start (; 2 ;) (; has Stack IR ;) (type $v) - (call $~iterateRoots) - (if - (i32.ne - (get_global $std/gc-integration/i) - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 2 ;) (type $v) + call $~iterateRoots + get_global $std/gc-integration/i + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) - (func $~iterateRoots (; 4 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (call_indirect (type $iv) - (i32.const 8) - (i32.const 1) - ) - (call_indirect (type $iv) - (get_global $std/gc-integration/B.d) - (i32.const 1) - ) - (call_indirect (type $iv) - (get_global $std/gc-integration/a_ref) - (i32.const 1) - ) - (call_indirect (type $iv) - (get_global $std/gc-integration/b_ref) - (i32.const 1) - ) + (func $~iterateRoots (; 4 ;) (type $FUNCSIG$v) + i32.const 8 + i32.const 1 + call_indirect (type $iv) + get_global $std/gc-integration/B.d + i32.const 1 + call_indirect (type $iv) + get_global $std/gc-integration/a_ref + i32.const 1 + call_indirect (type $iv) + get_global $std/gc-integration/b_ref + i32.const 1 + call_indirect (type $iv) ) ) diff --git a/tests/compiler/std/gc-integration.untouched.wat b/tests/compiler/std/gc-integration.untouched.wat index d241a63c..78327465 100644 --- a/tests/compiler/std/gc-integration.untouched.wat +++ b/tests/compiler/std/gc-integration.untouched.wat @@ -2,11 +2,11 @@ (type $iv (func (param i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\15\00\00\00s\00t\00d\00/\00g\00c\00-\00i\00n\00t\00e\00g\00r\00a\00t\00i\00o\00n\00.\00t\00s\00") - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $start~anonymous|1) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $std/gc-integration/B.c i32 (i32.const 8)) (global $std/gc-integration/B.d (mut i32) (i32.const 16)) (global $std/gc-integration/no_ref (mut i32) (i32.const 64)) @@ -18,81 +18,61 @@ (export "table" (table $0)) (start $start) (func $start~anonymous|1 (; 1 ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (i32.eq - (get_local $0) - (i32.shl - (block (result i32) - (set_global $std/gc-integration/i - (i32.add - (get_global $std/gc-integration/i) - (i32.const 1) - ) - ) - (get_global $std/gc-integration/i) - ) - (i32.const 3) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 18) - (i32.const 37) - ) - (unreachable) - ) - ) + get_local $0 + block (result i32) + get_global $std/gc-integration/i + i32.const 1 + i32.add + set_global $std/gc-integration/i + get_global $std/gc-integration/i + end + i32.const 3 + i32.shl + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 18 + i32.const 37 + call $~lib/env/abort + unreachable + end ) (func $start (; 2 ;) (type $v) - (drop - (get_global $std/gc-integration/B.c) - ) - (drop - (get_global $std/gc-integration/B.d) - ) - (call $~iterateRoots - (i32.const 1) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/gc-integration/i) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $std/gc-integration/B.c + drop + get_global $std/gc-integration/B.d + drop + i32.const 1 + call $~iterateRoots + get_global $std/gc-integration/i + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 3 ;) (type $v) ) (func $~iterateRoots (; 4 ;) (type $iv) (param $0 i32) - (call_indirect (type $iv) - (get_global $std/gc-integration/B.c) - (get_local $0) - ) - (call_indirect (type $iv) - (get_global $std/gc-integration/B.d) - (get_local $0) - ) - (call_indirect (type $iv) - (get_global $std/gc-integration/a_ref) - (get_local $0) - ) - (call_indirect (type $iv) - (get_global $std/gc-integration/b_ref) - (get_local $0) - ) + get_global $std/gc-integration/B.c + get_local $0 + call_indirect (type $iv) + get_global $std/gc-integration/B.d + get_local $0 + call_indirect (type $iv) + get_global $std/gc-integration/a_ref + get_local $0 + call_indirect (type $iv) + get_global $std/gc-integration/b_ref + get_local $0 + call_indirect (type $iv) ) ) diff --git a/tests/compiler/std/gc-object.optimized.wat b/tests/compiler/std/gc-object.optimized.wat index 0e882cc3..2709de3b 100644 --- a/tests/compiler/std/gc-object.optimized.wat +++ b/tests/compiler/std/gc-object.optimized.wat @@ -6,7 +6,7 @@ (type $FUNCSIG$v (func)) (type $FUNCSIG$i (func (result i32))) (memory $0 0) - (table 4 anyfunc) + (table $0 4 anyfunc) (elem (i32.const 0) $null $~lib/collector/itcm/__gc_mark $std/gc-object/Custom~gc $std/gc-object/Base~gc) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) @@ -21,559 +21,407 @@ (export "memory" (memory $0)) (export "table" (table $0)) (export "main" (func $std/gc-object/main)) - (func $~lib/allocator/arena/__memory_allocate (; 0 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 0 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/collector/itcm/ManagedObjectList#clear (; 1 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (get_local $0) - ) - (i32.store offset=4 - (get_local $0) - (get_local $0) - ) + (func $~lib/collector/itcm/ManagedObjectList#clear (; 1 ;) (type $iv) (param $0 i32) + get_local $0 + get_local $0 + i32.store + get_local $0 + get_local $0 + i32.store offset=4 ) - (func $~lib/collector/itcm/ManagedObject#get:color (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) + (func $~lib/collector/itcm/ManagedObject#get:color (; 2 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const 3 + i32.and ) - (func $~lib/collector/itcm/ManagedObject#get:next (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const -4) - ) + (func $~lib/collector/itcm/ManagedObject#get:next (; 3 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const -4 + i32.and ) - (func $~lib/collector/itcm/ManagedObject#set:next (; 4 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (get_local $1) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - ) - ) + (func $~lib/collector/itcm/ManagedObject#set:next (; 4 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + get_local $1 + get_local $0 + i32.load + i32.const 3 + i32.and + i32.or + i32.store ) - (func $~lib/collector/itcm/ManagedObject#unlink (; 5 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/collector/itcm/ManagedObject#unlink (; 5 ;) (type $iv) (param $0 i32) (local $1 i32) - (i32.store offset=4 - (tee_local $1 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (tee_local $0 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $0) - (get_local $1) - ) + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + tee_local $1 + get_local $0 + i32.load offset=4 + tee_local $0 + i32.store offset=4 + get_local $0 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next ) - (func $~lib/collector/itcm/ManagedObjectList#push (; 6 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/ManagedObjectList#push (; 6 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $1) - (get_local $0) - ) - (i32.store offset=4 - (get_local $1) - (get_local $2) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $2) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + get_local $0 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $1 + get_local $2 + i32.store offset=4 + get_local $2 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $0 + get_local $1 + i32.store offset=4 ) - (func $~lib/collector/itcm/ManagedObject#makeGray (; 7 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (if - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/iter) - ) - (set_global $~lib/collector/itcm/iter - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (call $~lib/collector/itcm/ManagedObject#unlink - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/toSpace) - (get_local $0) - ) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.const -4) - ) - (i32.const 2) - ) - ) + (func $~lib/collector/itcm/ManagedObject#makeGray (; 7 ;) (type $iv) (param $0 i32) + get_local $0 + get_global $~lib/collector/itcm/iter + i32.eq + if + get_local $0 + i32.load offset=4 + set_global $~lib/collector/itcm/iter + end + get_local $0 + call $~lib/collector/itcm/ManagedObject#unlink + get_global $~lib/collector/itcm/toSpace + get_local $0 + call $~lib/collector/itcm/ManagedObjectList#push + get_local $0 + get_local $0 + i32.load + i32.const -4 + i32.and + i32.const 2 + i32.or + i32.store ) - (func $~lib/collector/itcm/__gc_mark (; 8 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/collector/itcm/__gc_mark (; 8 ;) (type $iv) (param $0 i32) (local $1 i32) - (if - (get_local $0) - (if - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:color - (tee_local $1 - (i32.sub - (get_local $0) - (i32.const 16) - ) - ) - ) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObject#makeGray - (get_local $1) - ) - ) - ) + get_local $0 + if + get_local $0 + i32.const 16 + i32.sub + tee_local $1 + call $~lib/collector/itcm/ManagedObject#get:color + get_global $~lib/collector/itcm/white + i32.eq + if + get_local $1 + call $~lib/collector/itcm/ManagedObject#makeGray + end + end ) - (func $~lib/collector/itcm/ManagedObject#set:color (; 9 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.const -4) - ) - (get_local $1) - ) - ) + (func $~lib/collector/itcm/ManagedObject#set:color (; 9 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $0 + get_local $0 + i32.load + i32.const -4 + i32.and + get_local $1 + i32.or + i32.store ) - (func $~lib/allocator/arena/__memory_free (; 10 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (nop) + (func $~lib/allocator/arena/__memory_free (; 10 ;) (type $FUNCSIG$v) + nop ) - (func $~lib/collector/itcm/step (; 11 ;) (; has Stack IR ;) (type $v) + (func $~lib/collector/itcm/step (; 11 ;) (type $v) (local $0 i32) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (if - (tee_local $0 - (get_global $~lib/collector/itcm/state) - ) - (block - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $tablify|0 - (i32.sub - (get_local $0) - (i32.const 1) - ) - ) - ) - (br $break|0) - ) - ) - (set_global $~lib/collector/itcm/fromSpace - (tee_local $0 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 16) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/fromSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (tee_local $0 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 16) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/toSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/iter - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (i32.const 1) - ) - ) - (call $~iterateRoots) - (set_global $~lib/collector/itcm/state - (i32.const 2) - ) - (br $break|0) - ) - (if - (i32.ne - (tee_local $0 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - ) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $0) - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (call_indirect (type $iv) - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.load offset=8 - (get_local $0) - ) - ) - ) - (block - (call $~iterateRoots) - (if - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_local $0 - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/fromSpace - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (get_local $0) - ) - (set_global $~lib/collector/itcm/white - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (set_global $~lib/collector/itcm/state - (i32.const 3) - ) - ) - ) - ) - ) - (br $break|0) - ) - (if - (i32.ne - (tee_local $0 - (get_global $~lib/collector/itcm/iter) - ) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (if - (i32.ge_u - (get_local $0) - (i32.const 8) - ) - (call $~lib/allocator/arena/__memory_free) - ) - ) - (block - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (i32.const 1) - ) - ) - ) - ) + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + get_global $~lib/collector/itcm/state + tee_local $0 + if + block $tablify|0 + get_local $0 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $tablify|0 + end + br $break|0 + end + i32.const 16 + call $~lib/allocator/arena/__memory_allocate + tee_local $0 + set_global $~lib/collector/itcm/fromSpace + get_global $~lib/collector/itcm/fromSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/fromSpace + call $~lib/collector/itcm/ManagedObjectList#clear + i32.const 16 + call $~lib/allocator/arena/__memory_allocate + tee_local $0 + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/toSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/iter + i32.const 1 + set_global $~lib/collector/itcm/state + end + call $~iterateRoots + i32.const 2 + set_global $~lib/collector/itcm/state + br $break|0 + end + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + tee_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + set_global $~lib/collector/itcm/iter + get_local $0 + get_global $~lib/collector/itcm/white + i32.eqz + call $~lib/collector/itcm/ManagedObject#set:color + i32.const 1 + set_global $~argc + get_local $0 + i32.const 16 + i32.add + get_local $0 + i32.load offset=8 + call_indirect (type $iv) + else + call $~iterateRoots + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + get_global $~lib/collector/itcm/toSpace + i32.eq + if + get_global $~lib/collector/itcm/fromSpace + set_local $0 + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/fromSpace + get_local $0 + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/white + i32.eqz + set_global $~lib/collector/itcm/white + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + i32.const 3 + set_global $~lib/collector/itcm/state + end + end + br $break|0 + end + get_global $~lib/collector/itcm/iter + tee_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + get_local $0 + i32.const 8 + i32.ge_u + if + call $~lib/allocator/arena/__memory_free + end + else + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + i32.const 1 + set_global $~lib/collector/itcm/state + end + end ) - (func $~lib/collector/itcm/__gc_allocate (; 12 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/collector/itcm/__gc_allocate (; 12 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (call $~lib/collector/itcm/step) - (i32.store offset=8 - (tee_local $0 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 24) - ) - ) - (i32.const 2) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $0) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/fromSpace) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 16) - ) + call $~lib/collector/itcm/step + i32.const 24 + call $~lib/allocator/arena/__memory_allocate + tee_local $0 + i32.const 2 + i32.store offset=8 + get_local $0 + get_global $~lib/collector/itcm/white + call $~lib/collector/itcm/ManagedObject#set:color + get_global $~lib/collector/itcm/fromSpace + get_local $0 + call $~lib/collector/itcm/ManagedObjectList#push + get_local $0 + i32.const 16 + i32.add ) - (func $std/gc-object/Base~gc (; 13 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (get_local $0) - ) - (return) - ) - (call $~lib/collector/itcm/__gc_mark - (get_local $0) - ) + (func $std/gc-object/Base~gc (; 13 ;) (type $iv) (param $0 i32) + get_local $0 + i32.eqz + if + return + end + get_local $0 + call $~lib/collector/itcm/__gc_mark ) - (func $std/gc-object/Custom~gc (; 14 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (get_local $0) - ) - (return) - ) - (call_indirect (type $iv) - (get_local $0) - (i32.const 3) - ) - (call $~lib/collector/itcm/__gc_mark - (i32.load - (get_local $0) - ) - ) - (call $~lib/collector/itcm/__gc_mark - (i32.load offset=4 - (get_local $0) - ) - ) + (func $std/gc-object/Custom~gc (; 14 ;) (type $iv) (param $0 i32) + get_local $0 + i32.eqz + if + return + end + get_local $0 + i32.const 3 + call_indirect (type $iv) + get_local $0 + i32.load + call $~lib/collector/itcm/__gc_mark + get_local $0 + i32.load offset=4 + call $~lib/collector/itcm/__gc_mark ) - (func $~lib/collector/itcm/__gc_collect (; 15 ;) (; has Stack IR ;) (type $v) + (func $~lib/collector/itcm/__gc_collect (; 15 ;) (type $v) (local $0 i32) - (block $break|0 - (block $case1|0 - (br_if $case1|0 - (i32.eqz - (tee_local $0 - (get_global $~lib/collector/itcm/state) - ) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $0) - (i32.const 1) - ) - ) - (br $break|0) - ) - (call $~lib/collector/itcm/step) - ) - (loop $continue|1 - (if - (i32.ne - (get_global $~lib/collector/itcm/state) - (i32.const 1) - ) - (block - (call $~lib/collector/itcm/step) - (br $continue|1) - ) - ) - ) + block $break|0 + block $case1|0 + get_global $~lib/collector/itcm/state + tee_local $0 + i32.eqz + br_if $case1|0 + get_local $0 + i32.const 1 + i32.eq + br_if $case1|0 + br $break|0 + end + call $~lib/collector/itcm/step + end + loop $continue|1 + get_global $~lib/collector/itcm/state + i32.const 1 + i32.ne + if + call $~lib/collector/itcm/step + br $continue|1 + end + end ) - (func $~lib/gc/gc.collect (; 16 ;) (; has Stack IR ;) (type $v) - (call $~lib/collector/itcm/__gc_collect) + (func $~lib/gc/gc.collect (; 16 ;) (type $v) + call $~lib/collector/itcm/__gc_collect ) - (func $std/gc-object/main (; 17 ;) (; has Stack IR ;) (type $v) - (if - (i32.eqz - (get_global $~started) - ) - (block - (call $start) - (set_global $~started - (i32.const 1) - ) - ) - ) + (func $std/gc-object/main (; 17 ;) (type $v) + get_global $~started + i32.eqz + if + call $start + i32.const 1 + set_global $~started + end ) - (func $start (; 18 ;) (; has Stack IR ;) (type $v) + (func $start (; 18 ;) (type $v) (local $0 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 8) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $~lib/collector/itcm/state - (i32.const 0) - ) - (i32.store - (tee_local $0 - (call $~lib/collector/itcm/__gc_allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (set_global $std/gc-object/obj - (get_local $0) - ) - (call $~lib/gc/gc.collect) - (i32.store - (get_global $std/gc-object/obj) - (get_global $std/gc-object/obj) - ) - (call $~lib/gc/gc.collect) - (set_global $std/gc-object/obj - (i32.const 0) - ) - (call $~lib/gc/gc.collect) + i32.const 8 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + set_global $~lib/collector/itcm/state + call $~lib/collector/itcm/__gc_allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + set_global $std/gc-object/obj + call $~lib/gc/gc.collect + get_global $std/gc-object/obj + get_global $std/gc-object/obj + i32.store + call $~lib/gc/gc.collect + i32.const 0 + set_global $std/gc-object/obj + call $~lib/gc/gc.collect ) - (func $null (; 19 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 19 ;) (type $v) + nop ) - (func $~iterateRoots (; 20 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (call_indirect (type $iv) - (get_global $std/gc-object/obj) - (i32.const 1) - ) + (func $~iterateRoots (; 20 ;) (type $FUNCSIG$v) + get_global $std/gc-object/obj + i32.const 1 + call_indirect (type $iv) ) ) diff --git a/tests/compiler/std/gc-object.untouched.wat b/tests/compiler/std/gc-object.untouched.wat index 2d23f72d..8b4b4a8b 100644 --- a/tests/compiler/std/gc-object.untouched.wat +++ b/tests/compiler/std/gc-object.untouched.wat @@ -5,7 +5,7 @@ (type $iv (func (param i32))) (type $iiv (func (param i32 i32))) (memory $0 0) - (table 4 anyfunc) + (table $0 4 anyfunc) (elem (i32.const 0) $null $~lib/collector/itcm/__gc_mark $std/gc-object/Custom~gc $std/gc-object/Base~gc) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) @@ -38,692 +38,515 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/collector/itcm/ManagedObjectList#clear (; 1 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (get_local $0) - ) - (i32.store offset=4 - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + i32.store + get_local $0 + get_local $0 + i32.store offset=4 ) (func $~lib/collector/itcm/ManagedObject#get:color (; 2 ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) + get_local $0 + i32.load + i32.const 3 + i32.and ) (func $~lib/collector/itcm/ManagedObject#get:next (; 3 ;) (type $ii) (param $0 i32) (result i32) - (i32.and - (i32.load - (get_local $0) - ) - (i32.xor - (i32.const 3) - (i32.const -1) - ) - ) + get_local $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and ) (func $~lib/collector/itcm/ManagedObject#set:next (; 4 ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (get_local $1) - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - ) - ) + get_local $0 + get_local $1 + get_local $0 + i32.load + i32.const 3 + i32.and + i32.or + i32.store ) (func $~lib/collector/itcm/ManagedObject#unlink (; 5 ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) - (set_local $1 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.store offset=4 - (get_local $1) - (get_local $2) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $2) - (get_local $1) - ) + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_local $1 + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + get_local $2 + i32.store offset=4 + get_local $2 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next ) (func $~lib/collector/itcm/ManagedObjectList#push (; 6 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $1) - (get_local $0) - ) - (i32.store offset=4 - (get_local $1) - (get_local $2) - ) - (call $~lib/collector/itcm/ManagedObject#set:next - (get_local $2) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $1 + get_local $0 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $1 + get_local $2 + i32.store offset=4 + get_local $2 + get_local $1 + call $~lib/collector/itcm/ManagedObject#set:next + get_local $0 + get_local $1 + i32.store offset=4 ) (func $~lib/collector/itcm/ManagedObject#makeGray (; 7 ;) (type $iv) (param $0 i32) - (if - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/iter) - ) - (set_global $~lib/collector/itcm/iter - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (call $~lib/collector/itcm/ManagedObject#unlink - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/toSpace) - (get_local $0) - ) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.xor - (i32.const 3) - (i32.const -1) - ) - ) - (i32.const 2) - ) - ) + get_local $0 + get_global $~lib/collector/itcm/iter + i32.eq + if + get_local $0 + i32.load offset=4 + set_global $~lib/collector/itcm/iter + end + get_local $0 + call $~lib/collector/itcm/ManagedObject#unlink + get_global $~lib/collector/itcm/toSpace + get_local $0 + call $~lib/collector/itcm/ManagedObjectList#push + get_local $0 + get_local $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 2 + i32.or + i32.store ) (func $~lib/collector/itcm/__gc_mark (; 8 ;) (type $iv) (param $0 i32) (local $1 i32) - (if - (get_local $0) - (block - (set_local $1 - (block $~lib/collector/itcm/refToObj|inlined.0 (result i32) - (i32.sub - (get_local $0) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - ) - (if - (i32.eq - (call $~lib/collector/itcm/ManagedObject#get:color - (get_local $1) - ) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObject#makeGray - (get_local $1) - ) - ) - ) - ) + get_local $0 + if + block $~lib/collector/itcm/refToObj|inlined.0 (result i32) + get_local $0 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.sub + end + set_local $1 + get_local $1 + call $~lib/collector/itcm/ManagedObject#get:color + get_global $~lib/collector/itcm/white + i32.eq + if + get_local $1 + call $~lib/collector/itcm/ManagedObject#makeGray + end + end ) (func $~lib/collector/itcm/ManagedObject#set:color (; 9 ;) (type $iiv) (param $0 i32) (param $1 i32) - (i32.store - (get_local $0) - (i32.or - (i32.and - (i32.load - (get_local $0) - ) - (i32.xor - (i32.const 3) - (i32.const -1) - ) - ) - (get_local $1) - ) - ) + get_local $0 + get_local $0 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + get_local $1 + i32.or + i32.store ) (func $~lib/allocator/arena/__memory_free (; 10 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $~lib/collector/itcm/step (; 11 ;) (type $v) (local $0 i32) (local $1 i32) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $1 - (get_global $~lib/collector/itcm/state) - ) - (br_if $case0|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.INIT) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.MARK) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $1) - (get_global $~lib/collector/itcm/State.SWEEP) - ) - ) - (br $break|0) - ) - (block - (set_global $~lib/collector/itcm/fromSpace - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $1 - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/fromSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (block $~lib/memory/memory.allocate|inlined.1 (result i32) - (set_local $1 - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - (br $~lib/memory/memory.allocate|inlined.1 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - (i32.store offset=8 - (get_global $~lib/collector/itcm/toSpace) - (i32.const -1) - ) - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/iter - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - ) - (block - (call $~iterateRoots - (i32.const 1) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.MARK) - ) - (br $break|0) - ) - ) - (block - (set_local $0 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - ) - (if - (i32.ne - (get_local $0) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (get_local $0) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $0) - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (call_indirect (type $iv) - (block $~lib/collector/itcm/objToRef|inlined.0 (result i32) - (i32.add - (get_local $0) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - (i32.load offset=8 - (get_local $0) - ) - ) - ) - (block - (call $~iterateRoots - (i32.const 1) - ) - (set_local $0 - (call $~lib/collector/itcm/ManagedObject#get:next - (get_global $~lib/collector/itcm/iter) - ) - ) - (if - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_local $1 - (get_global $~lib/collector/itcm/fromSpace) - ) - (set_global $~lib/collector/itcm/fromSpace - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/toSpace - (get_local $1) - ) - (set_global $~lib/collector/itcm/white - (i32.eqz - (get_global $~lib/collector/itcm/white) - ) - ) - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $1) - ) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.SWEEP) - ) - ) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $0 - (get_global $~lib/collector/itcm/iter) - ) - (if - (i32.ne - (get_local $0) - (get_global $~lib/collector/itcm/toSpace) - ) - (block - (set_global $~lib/collector/itcm/iter - (call $~lib/collector/itcm/ManagedObject#get:next - (get_local $0) - ) - ) - (if - (i32.ge_u - (get_local $0) - (get_global $HEAP_BASE) - ) - (block $~lib/memory/memory.free|inlined.0 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $0) - ) - (br $~lib/memory/memory.free|inlined.0) - ) - ) - ) - ) - (block - (call $~lib/collector/itcm/ManagedObjectList#clear - (get_global $~lib/collector/itcm/toSpace) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - ) - (br $break|0) - ) - ) + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_global $~lib/collector/itcm/state + set_local $1 + get_local $1 + get_global $~lib/collector/itcm/State.INIT + i32.eq + br_if $case0|0 + get_local $1 + get_global $~lib/collector/itcm/State.IDLE + i32.eq + br_if $case1|0 + get_local $1 + get_global $~lib/collector/itcm/State.MARK + i32.eq + br_if $case2|0 + get_local $1 + get_global $~lib/collector/itcm/State.SWEEP + i32.eq + br_if $case3|0 + br $break|0 + end + block + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_global $~lib/collector/itcm/HEADER_SIZE + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_global $~lib/collector/itcm/fromSpace + get_global $~lib/collector/itcm/fromSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/fromSpace + call $~lib/collector/itcm/ManagedObjectList#clear + block $~lib/memory/memory.allocate|inlined.1 (result i32) + get_global $~lib/collector/itcm/HEADER_SIZE + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.1 + end + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/toSpace + i32.const -1 + i32.store offset=8 + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/iter + get_global $~lib/collector/itcm/State.IDLE + set_global $~lib/collector/itcm/state + end + end + block + i32.const 1 + call $~iterateRoots + get_global $~lib/collector/itcm/State.MARK + set_global $~lib/collector/itcm/state + br $break|0 + unreachable + end + unreachable + end + block + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + set_global $~lib/collector/itcm/iter + get_local $0 + get_global $~lib/collector/itcm/white + i32.eqz + call $~lib/collector/itcm/ManagedObject#set:color + i32.const 1 + set_global $~argc + block $~lib/collector/itcm/objToRef|inlined.0 (result i32) + get_local $0 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.add + end + get_local $0 + i32.load offset=8 + call_indirect (type $iv) + else + i32.const 1 + call $~iterateRoots + get_global $~lib/collector/itcm/iter + call $~lib/collector/itcm/ManagedObject#get:next + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/toSpace + i32.eq + if + get_global $~lib/collector/itcm/fromSpace + set_local $1 + get_global $~lib/collector/itcm/toSpace + set_global $~lib/collector/itcm/fromSpace + get_local $1 + set_global $~lib/collector/itcm/toSpace + get_global $~lib/collector/itcm/white + i32.eqz + set_global $~lib/collector/itcm/white + get_local $1 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + get_global $~lib/collector/itcm/State.SWEEP + set_global $~lib/collector/itcm/state + end + end + br $break|0 + unreachable + end + unreachable + end + block + get_global $~lib/collector/itcm/iter + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/toSpace + i32.ne + if + get_local $0 + call $~lib/collector/itcm/ManagedObject#get:next + set_global $~lib/collector/itcm/iter + get_local $0 + get_global $HEAP_BASE + i32.ge_u + if + block $~lib/memory/memory.free|inlined.0 + block + get_local $0 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.0 + unreachable + end + unreachable + end + end + else + get_global $~lib/collector/itcm/toSpace + call $~lib/collector/itcm/ManagedObjectList#clear + get_global $~lib/collector/itcm/State.IDLE + set_global $~lib/collector/itcm/state + end + br $break|0 + unreachable + end + unreachable + end ) (func $~lib/collector/itcm/__gc_allocate (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.sub - (get_global $~lib/internal/allocator/MAX_SIZE_32) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) - (unreachable) - ) - (call $~lib/collector/itcm/step) - (set_local $3 - (block $~lib/memory/memory.allocate|inlined.2 (result i32) - (set_local $2 - (i32.add - (get_global $~lib/collector/itcm/HEADER_SIZE) - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.2 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $1) - ) - (call $~lib/collector/itcm/ManagedObject#set:color - (get_local $3) - (get_global $~lib/collector/itcm/white) - ) - (call $~lib/collector/itcm/ManagedObjectList#push - (get_global $~lib/collector/itcm/fromSpace) - (get_local $3) - ) - (block $~lib/collector/itcm/objToRef|inlined.1 (result i32) - (i32.add - (get_local $3) - (get_global $~lib/collector/itcm/HEADER_SIZE) - ) - ) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.sub + i32.gt_u + if + unreachable + end + call $~lib/collector/itcm/step + block $~lib/memory/memory.allocate|inlined.2 (result i32) + get_global $~lib/collector/itcm/HEADER_SIZE + get_local $0 + i32.add + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.2 + end + set_local $3 + get_local $3 + get_local $1 + i32.store offset=8 + get_local $3 + get_global $~lib/collector/itcm/white + call $~lib/collector/itcm/ManagedObject#set:color + get_global $~lib/collector/itcm/fromSpace + get_local $3 + call $~lib/collector/itcm/ManagedObjectList#push + block $~lib/collector/itcm/objToRef|inlined.1 (result i32) + get_local $3 + get_global $~lib/collector/itcm/HEADER_SIZE + i32.add + end ) (func $std/gc-object/Base~gc (; 13 ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (get_local $0) - ) - (return) - ) - (call $~lib/collector/itcm/__gc_mark - (get_local $0) - ) + get_local $0 + i32.eqz + if + return + end + get_local $0 + call $~lib/collector/itcm/__gc_mark ) (func $std/gc-object/Custom~gc (; 14 ;) (type $iv) (param $0 i32) - (if - (i32.eqz - (get_local $0) - ) - (return) - ) - (call_indirect (type $iv) - (get_local $0) - (i32.const 3) - ) - (call $~lib/collector/itcm/__gc_mark - (i32.load - (get_local $0) - ) - ) - (call $~lib/collector/itcm/__gc_mark - (i32.load offset=4 - (get_local $0) - ) - ) + get_local $0 + i32.eqz + if + return + end + get_local $0 + i32.const 3 + call_indirect (type $iv) + get_local $0 + i32.load + call $~lib/collector/itcm/__gc_mark + get_local $0 + i32.load offset=4 + call $~lib/collector/itcm/__gc_mark ) (func $~lib/collector/itcm/__gc_collect (; 15 ;) (type $v) (local $0 i32) - (block $break|0 - (block $case1|0 - (block $case0|0 - (set_local $0 - (get_global $~lib/collector/itcm/state) - ) - (br_if $case0|0 - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/State.INIT) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $0) - (get_global $~lib/collector/itcm/State.IDLE) - ) - ) - (br $break|0) - ) - ) - (call $~lib/collector/itcm/step) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ne - (get_global $~lib/collector/itcm/state) - (get_global $~lib/collector/itcm/State.IDLE) - ) - (block - (call $~lib/collector/itcm/step) - (br $continue|1) - ) - ) - ) - ) + block $break|0 + block $case1|0 + block $case0|0 + get_global $~lib/collector/itcm/state + set_local $0 + get_local $0 + get_global $~lib/collector/itcm/State.INIT + i32.eq + br_if $case0|0 + get_local $0 + get_global $~lib/collector/itcm/State.IDLE + i32.eq + br_if $case1|0 + br $break|0 + end + end + call $~lib/collector/itcm/step + end + block $break|1 + loop $continue|1 + get_global $~lib/collector/itcm/state + get_global $~lib/collector/itcm/State.IDLE + i32.ne + if + call $~lib/collector/itcm/step + br $continue|1 + end + end + end ) (func $~lib/gc/gc.collect (; 16 ;) (type $v) - (call $~lib/collector/itcm/__gc_collect) - (return) + call $~lib/collector/itcm/__gc_collect + return ) (func $std/gc-object/main (; 17 ;) (type $v) - (if - (i32.eqz - (get_global $~started) - ) - (block - (call $start) - (set_global $~started - (i32.const 1) - ) - ) - ) + get_global $~started + i32.eqz + if + call $start + i32.const 1 + set_global $~started + end ) (func $start (; 18 ;) (type $v) (local $0 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $~lib/collector/itcm/state - (get_global $~lib/collector/itcm/State.INIT) - ) - (set_global $std/gc-object/obj - (block (result i32) - (set_local $0 - (call $~lib/collector/itcm/__gc_allocate - (i32.const 8) - (i32.const 2) - ) - ) - (i32.store - (get_local $0) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (get_local $0) - ) - ) - (call $~lib/gc/gc.collect) - (i32.store - (get_global $std/gc-object/obj) - (get_global $std/gc-object/obj) - ) - (call $~lib/gc/gc.collect) - (set_global $std/gc-object/obj - (i32.const 0) - ) - (call $~lib/gc/gc.collect) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + get_global $~lib/collector/itcm/State.INIT + set_global $~lib/collector/itcm/state + block (result i32) + i32.const 8 + i32.const 2 + call $~lib/collector/itcm/__gc_allocate + set_local $0 + get_local $0 + i32.const 0 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + end + set_global $std/gc-object/obj + call $~lib/gc/gc.collect + get_global $std/gc-object/obj + get_global $std/gc-object/obj + i32.store + call $~lib/gc/gc.collect + i32.const 0 + set_global $std/gc-object/obj + call $~lib/gc/gc.collect ) (func $null (; 19 ;) (type $v) ) (func $~iterateRoots (; 20 ;) (type $iv) (param $0 i32) - (call_indirect (type $iv) - (get_global $std/gc-object/obj) - (get_local $0) - ) + get_global $std/gc-object/obj + get_local $0 + call_indirect (type $iv) ) ) diff --git a/tests/compiler/std/hash.optimized.wat b/tests/compiler/std/hash.optimized.wat index d0c2478a..43fc01e6 100644 --- a/tests/compiler/std/hash.optimized.wat +++ b/tests/compiler/std/hash.optimized.wat @@ -6,328 +6,219 @@ (data (i32.const 16) "\01\00\00\00a") (data (i32.const 24) "\02\00\00\00a\00b") (data (i32.const 32) "\03\00\00\00a\00b\00c") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/internal/hash/hashStr (; 0 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/hash/hashStr (; 0 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $2 - (i32.const -2128831035) - ) - (block $break|0 - (set_local $3 - (i32.shl - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $1) - (get_local $3) - ) - ) - (set_local $2 - (i32.mul - (i32.xor - (get_local $2) - (i32.load8_u offset=4 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (i32.const 16777619) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $2) + i32.const -2128831035 + set_local $2 + block $break|0 + get_local $0 + i32.load + i32.const 1 + i32.shl + set_local $3 + loop $repeat|0 + get_local $1 + get_local $3 + i32.ge_u + br_if $break|0 + get_local $2 + get_local $0 + get_local $1 + i32.add + i32.load8_u offset=4 + i32.xor + i32.const 16777619 + i32.mul + set_local $2 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $2 ) - (func $std/hash/check (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.const 1) + (func $std/hash/check (; 1 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 ) - (func $~lib/internal/hash/hash32 (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $0) - (i32.const 24) - ) - ) - (i32.const 16777619) - ) + (func $~lib/internal/hash/hash32 (; 2 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul ) - (func $~lib/internal/hash/hash64 (; 3 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/hash/hash64 (; 3 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.and - (tee_local $1 - (i32.wrap/i64 - (get_local $0) - ) - ) - (i32.const 255) - ) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $1) - (i32.const 24) - ) - ) - (i32.const 16777619) - ) - (i32.and - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (get_local $0) - (i64.const 32) - ) - ) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $1) - (i32.const 24) - ) - ) - (i32.const 16777619) - ) + get_local $0 + i32.wrap/i64 + tee_local $1 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul ) - (func $start (; 4 ;) (; has Stack IR ;) (type $v) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hashStr - (i32.const 0) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hashStr - (i32.const 8) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hashStr - (i32.const 16) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hashStr - (i32.const 24) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hashStr - (i32.const 32) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash32 - (i32.const 0) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash32 - (i32.const 1065353216) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash32 - (i32.const 1066192077) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash32 - (i32.const 0) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash32 - (i32.const 2139095040) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash32 - (i32.const 2143289344) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash64 - (i64.const 0) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash64 - (i64.const 4607182418800017408) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash64 - (i64.const 4607632778762754458) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash64 - (i64.const 0) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash64 - (i64.const 9218868437227405312) - ) - ) - ) - (drop - (call $std/hash/check - (call $~lib/internal/hash/hash64 - (i64.const 9221120237041090560) - ) - ) - ) + (func $start (; 4 ;) (type $v) + i32.const 0 + call $~lib/internal/hash/hashStr + call $std/hash/check + drop + i32.const 8 + call $~lib/internal/hash/hashStr + call $std/hash/check + drop + i32.const 16 + call $~lib/internal/hash/hashStr + call $std/hash/check + drop + i32.const 24 + call $~lib/internal/hash/hashStr + call $std/hash/check + drop + i32.const 32 + call $~lib/internal/hash/hashStr + call $std/hash/check + drop + i32.const 0 + call $~lib/internal/hash/hash32 + call $std/hash/check + drop + i32.const 1065353216 + call $~lib/internal/hash/hash32 + call $std/hash/check + drop + i32.const 1066192077 + call $~lib/internal/hash/hash32 + call $std/hash/check + drop + i32.const 0 + call $~lib/internal/hash/hash32 + call $std/hash/check + drop + i32.const 2139095040 + call $~lib/internal/hash/hash32 + call $std/hash/check + drop + i32.const 2143289344 + call $~lib/internal/hash/hash32 + call $std/hash/check + drop + i64.const 0 + call $~lib/internal/hash/hash64 + call $std/hash/check + drop + i64.const 4607182418800017408 + call $~lib/internal/hash/hash64 + call $std/hash/check + drop + i64.const 4607632778762754458 + call $~lib/internal/hash/hash64 + call $std/hash/check + drop + i64.const 0 + call $~lib/internal/hash/hash64 + call $std/hash/check + drop + i64.const 9218868437227405312 + call $~lib/internal/hash/hash64 + call $std/hash/check + drop + i64.const 9221120237041090560 + call $~lib/internal/hash/hash64 + call $std/hash/check + drop ) - (func $null (; 5 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 5 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/hash.untouched.wat b/tests/compiler/std/hash.untouched.wat index 9d19d4e4..e9a83318 100644 --- a/tests/compiler/std/hash.untouched.wat +++ b/tests/compiler/std/hash.untouched.wat @@ -7,7 +7,7 @@ (data (i32.const 16) "\01\00\00\00a\00") (data (i32.const 24) "\02\00\00\00a\00b\00") (data (i32.const 32) "\03\00\00\00a\00b\00c\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) @@ -29,517 +29,346 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $1 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (block $break|0 - (block - (set_local $2 - (i32.const 0) - ) - (set_local $3 - (i32.shl - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.load8_u offset=4 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + get_global $~lib/internal/hash/FNV_OFFSET + set_local $1 + block $break|0 + block + i32.const 0 + set_local $2 + get_local $0 + i32.load + i32.const 1 + i32.shl + set_local $3 + end + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_u + i32.eqz + br_if $break|0 + get_local $1 + get_local $0 + get_local $2 + i32.add + i32.load8_u offset=4 + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) (func $std/hash/check (; 1 ;) (type $ii) (param $0 i32) (result i32) - (i32.const 1) + i32.const 1 ) (func $~lib/internal/hash/hash32 (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (set_local $1 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (get_local $0) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.shr_u - (get_local $0) - (i32.const 24) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (get_local $1) + get_global $~lib/internal/hash/FNV_OFFSET + set_local $1 + get_local $1 + get_local $0 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 24 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 ) (func $~lib/internal/hash/hash64 (; 3 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $1 - (i32.wrap/i64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $0) - (i64.const 32) - ) - ) - ) - (set_local $3 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.shr_u - (get_local $1) - (i32.const 24) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (get_local $2) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $2) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $2) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.shr_u - (get_local $2) - (i32.const 24) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (get_local $3) + get_local $0 + i32.wrap/i64 + set_local $1 + get_local $0 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + get_global $~lib/internal/hash/FNV_OFFSET + set_local $3 + get_local $3 + get_local $1 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $1 + i32.const 24 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 24 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 ) (func $start (; 4 ;) (type $v) (local $0 i32) (local $1 f32) (local $2 f64) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $0 - (i32.const 0) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hashStr - (get_local $0) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (set_local $0 - (i32.const 8) - ) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hashStr - (get_local $0) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $0 - (i32.const 16) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hashStr - (get_local $0) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (set_local $0 - (i32.const 24) - ) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hashStr - (get_local $0) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (set_local $0 - (i32.const 32) - ) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hashStr - (get_local $0) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $1 - (f32.const 0) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (set_local $1 - (f32.const 1) - ) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $1 - (f32.const 1.100000023841858) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (set_local $1 - (f32.const 0) - ) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (set_local $1 - (f32.const inf) - ) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.5 (result i32) - (set_local $1 - (f32.const nan:0x400000) - ) - (br $~lib/internal/hash/hash|inlined.5 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $2 - (f64.const 0) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $2) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (set_local $2 - (f64.const 1) - ) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $2) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $2 - (f64.const 1.1) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $2) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (set_local $2 - (f64.const 0) - ) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $2) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (set_local $2 - (f64.const inf) - ) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $2) - ) - ) - ) - ) - ) - ) - (drop - (call $std/hash/check - (block $~lib/internal/hash/hash|inlined.5 (result i32) - (set_local $2 - (f64.const nan:0x8000000000000) - ) - (br $~lib/internal/hash/hash|inlined.5 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $2) - ) - ) - ) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.0 (result i32) + i32.const 0 + set_local $0 + get_local $0 + call $~lib/internal/hash/hashStr + br $~lib/internal/hash/hash|inlined.0 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.1 (result i32) + i32.const 8 + set_local $0 + get_local $0 + call $~lib/internal/hash/hashStr + br $~lib/internal/hash/hash|inlined.1 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.2 (result i32) + i32.const 16 + set_local $0 + get_local $0 + call $~lib/internal/hash/hashStr + br $~lib/internal/hash/hash|inlined.2 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.3 (result i32) + i32.const 24 + set_local $0 + get_local $0 + call $~lib/internal/hash/hashStr + br $~lib/internal/hash/hash|inlined.3 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.4 (result i32) + i32.const 32 + set_local $0 + get_local $0 + call $~lib/internal/hash/hashStr + br $~lib/internal/hash/hash|inlined.4 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.0 (result i32) + f32.const 0 + set_local $1 + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.0 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.1 (result i32) + f32.const 1 + set_local $1 + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.1 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.2 (result i32) + f32.const 1.100000023841858 + set_local $1 + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.2 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.3 (result i32) + f32.const 0 + set_local $1 + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.3 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.4 (result i32) + f32.const inf + set_local $1 + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.4 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.5 (result i32) + f32.const nan:0x400000 + set_local $1 + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.5 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.0 (result i32) + f64.const 0 + set_local $2 + get_local $2 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.0 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.1 (result i32) + f64.const 1 + set_local $2 + get_local $2 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.1 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.2 (result i32) + f64.const 1.1 + set_local $2 + get_local $2 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.2 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.3 (result i32) + f64.const 0 + set_local $2 + get_local $2 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.3 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.4 (result i32) + f64.const inf + set_local $2 + get_local $2 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.4 + end + call $std/hash/check + drop + block $~lib/internal/hash/hash|inlined.5 (result i32) + f64.const nan:0x8000000000000 + set_local $2 + get_local $2 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.5 + end + call $std/hash/check + drop ) (func $null (; 5 ;) (type $v) ) diff --git a/tests/compiler/std/libm.optimized.wat b/tests/compiler/std/libm.optimized.wat index c1063e9f..eedadf97 100644 --- a/tests/compiler/std/libm.optimized.wat +++ b/tests/compiler/std/libm.optimized.wat @@ -7,7 +7,7 @@ (type $v (func)) (type $FUNCSIG$d (func (result f64))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $std/libm/E f64 (f64.const 2.718281828459045)) (global $std/libm/LN10 f64 (f64.const 2.302585092994046)) @@ -61,286 +61,193 @@ (export "tan" (func $std/libm/cos)) (export "tanh" (func $std/libm/tanh)) (export "trunc" (func $std/libm/trunc)) - (func $std/libm/abs (; 0 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (f64.abs - (get_local $0) - ) + (func $std/libm/abs (; 0 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + f64.abs ) - (func $~lib/math/R (; 1 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (f64.div - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.16666666666666666) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.3255658186224009) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.20121253213486293) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.04005553450067941) - (f64.mul - (get_local $0) - (f64.add - (f64.const 7.915349942898145e-04) - (f64.mul - (get_local $0) - (f64.const 3.479331075960212e-05) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.add - (f64.const 1) - (f64.mul - (get_local $0) - (f64.add - (f64.const -2.403394911734414) - (f64.mul - (get_local $0) - (f64.add - (f64.const 2.0209457602335057) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.6882839716054533) - (f64.mul - (get_local $0) - (f64.const 0.07703815055590194) - ) - ) - ) - ) - ) - ) - ) - ) - ) + (func $~lib/math/R (; 1 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + f64.const 0.16666666666666666 + get_local $0 + f64.const -0.3255658186224009 + get_local $0 + f64.const 0.20121253213486293 + get_local $0 + f64.const -0.04005553450067941 + get_local $0 + f64.const 7.915349942898145e-04 + get_local $0 + f64.const 3.479331075960212e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.const 1 + get_local $0 + f64.const -2.403394911734414 + get_local $0 + f64.const 2.0209457602335057 + get_local $0 + f64.const -0.6882839716054533 + get_local $0 + f64.const 0.07703815055590194 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.div ) - (func $~lib/math/NativeMath.acos (; 2 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 2 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) (local $4 i32) (local $5 f64) - (if - (i32.ge_u - (tee_local $2 - (i32.and - (tee_local $4 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 1072693248) - ) - (block - (if - (i32.eqz - (i32.or - (i32.sub - (get_local $2) - (i32.const 1072693248) - ) - (i32.wrap/i64 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - ) - ) - (block - (if - (i32.shr_u - (get_local $4) - (i32.const 31) - ) - (return - (f64.const 3.141592653589793) - ) - ) - (return - (f64.const 0) - ) - ) - ) - (return - (f64.div - (f64.const 0) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1071644672) - ) - (block - (if - (i32.le_u - (get_local $2) - (i32.const 1012924416) - ) - (return - (f64.const 1.5707963267948966) - ) - ) - (set_local $1 - (call $~lib/math/R - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (return - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (get_local $0) - (f64.sub - (f64.const 6.123233995736766e-17) - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $4) - (i32.const 31) - ) - (block - (set_local $0 - (f64.sqrt - (tee_local $1 - (f64.add - (f64.const 0.5) - (f64.mul - (get_local $0) - (f64.const 0.5) - ) - ) - ) - ) - ) - (set_local $1 - (call $~lib/math/R - (get_local $1) - ) - ) - (return - (f64.mul - (f64.const 2) - (f64.sub - (f64.const 1.5707963267948966) - (f64.add - (get_local $0) - (f64.sub - (f64.mul - (get_local $1) - (get_local $0) - ) - (f64.const 6.123233995736766e-17) - ) - ) - ) - ) - ) - ) - ) - (set_local $0 - (f64.sqrt - (tee_local $1 - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $0) - (f64.const 0.5) - ) - ) - ) - ) - ) - (set_local $5 - (f64.div - (f64.sub - (get_local $1) - (f64.mul - (tee_local $3 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $3) - ) - ) - (f64.add - (get_local $0) - (get_local $3) - ) - ) - ) - (set_local $1 - (call $~lib/math/R - (get_local $1) - ) - ) - (f64.mul - (f64.const 2) - (f64.add - (get_local $3) - (f64.add - (f64.mul - (get_local $1) - (get_local $0) - ) - (get_local $5) - ) - ) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $4 + i32.const 2147483647 + i32.and + tee_local $2 + i32.const 1072693248 + i32.ge_u + if + get_local $2 + i32.const 1072693248 + i32.sub + get_local $0 + i64.reinterpret/f64 + i32.wrap/i64 + i32.or + i32.eqz + if + get_local $4 + i32.const 31 + i32.shr_u + if + f64.const 3.141592653589793 + return + end + f64.const 0 + return + end + f64.const 0 + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $2 + i32.const 1071644672 + i32.lt_u + if + get_local $2 + i32.const 1012924416 + i32.le_u + if + f64.const 1.5707963267948966 + return + end + get_local $0 + get_local $0 + f64.mul + call $~lib/math/R + set_local $1 + f64.const 1.5707963267948966 + get_local $0 + f64.const 6.123233995736766e-17 + get_local $0 + get_local $1 + f64.mul + f64.sub + f64.sub + f64.sub + return + end + get_local $4 + i32.const 31 + i32.shr_u + if + f64.const 0.5 + get_local $0 + f64.const 0.5 + f64.mul + f64.add + tee_local $1 + f64.sqrt + set_local $0 + get_local $1 + call $~lib/math/R + set_local $1 + f64.const 2 + f64.const 1.5707963267948966 + get_local $0 + get_local $1 + get_local $0 + f64.mul + f64.const 6.123233995736766e-17 + f64.sub + f64.add + f64.sub + f64.mul + return + end + f64.const 0.5 + get_local $0 + f64.const 0.5 + f64.mul + f64.sub + tee_local $1 + f64.sqrt + set_local $0 + get_local $1 + get_local $0 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $3 + get_local $3 + f64.mul + f64.sub + get_local $0 + get_local $3 + f64.add + f64.div + set_local $5 + get_local $1 + call $~lib/math/R + set_local $1 + f64.const 2 + get_local $3 + get_local $1 + get_local $0 + f64.mul + get_local $5 + f64.add + f64.add + f64.mul ) - (func $std/libm/acos (; 3 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.acos - (get_local $0) - ) + (func $std/libm/acos (; 3 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.acos ) - (func $~lib/math/NativeMath.log1p (; 4 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 4 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -349,299 +256,203 @@ (local $6 f64) (local $7 i64) (local $8 f64) - (set_local $2 - (i32.const 1) - ) - (if - (i32.eqz - (tee_local $5 - (i32.lt_u - (tee_local $3 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (i32.const 1071284858) - ) - ) - ) - (set_local $5 - (i32.shr_u - (get_local $3) - (i32.const 31) - ) - ) - ) - (if - (get_local $5) - (block - (if - (i32.ge_u - (get_local $3) - (i32.const -1074790400) - ) - (block - (if - (f64.eq - (get_local $0) - (f64.const -1) - ) - (return - (f64.div - (get_local $0) - (f64.const 0) - ) - ) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - ) - (if - (i32.lt_u - (i32.shl - (get_local $3) - (i32.const 1) - ) - (i32.const 2034237440) - ) - (return - (get_local $0) - ) - ) - (if - (i32.le_u - (get_local $3) - (i32.const -1076707644) - ) - (block - (set_local $2 - (i32.const 0) - ) - (set_local $1 - (get_local $0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $3) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - ) - ) - (if - (get_local $2) - (block - (set_local $4 - (if (result f64) - (i32.lt_s - (tee_local $2 - (i32.sub - (i32.shr_u - (tee_local $5 - (i32.add - (i32.wrap/i64 - (i64.shr_u - (tee_local $7 - (i64.reinterpret/f64 - (f64.add - (f64.const 1) - (get_local $0) - ) - ) - ) - (i64.const 32) - ) - ) - (i32.const 614242) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (i32.const 54) - ) - (block (result f64) - (set_local $1 - (f64.reinterpret/i64 - (get_local $7) - ) - ) - (f64.div - (tee_local $4 - (if (result f64) - (i32.ge_s - (get_local $2) - (i32.const 2) - ) - (f64.sub - (f64.const 1) - (f64.sub - (get_local $1) - (get_local $0) - ) - ) - (f64.sub - (get_local $0) - (f64.sub - (get_local $1) - (f64.const 1) - ) - ) - ) - ) - (get_local $1) - ) - ) - (f64.const 0) - ) - ) - (set_local $1 - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.shl - (i64.extend_u/i32 - (i32.add - (i32.and - (get_local $5) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (i64.const 32) - ) - (i64.and - (get_local $7) - (i64.const 4294967295) - ) - ) - ) - (f64.const 1) - ) - ) - ) - ) - (set_local $0 - (f64.mul - (tee_local $8 - (f64.mul - (tee_local $6 - (f64.div - (get_local $1) - (f64.add - (f64.const 2) - (get_local $1) - ) - ) - ) - (get_local $6) - ) - ) - (get_local $8) - ) - ) - (f64.add - (f64.add - (f64.sub - (f64.add - (f64.mul - (get_local $6) - (f64.add - (tee_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $1) - ) - (get_local $1) - ) - ) - (f64.add - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $0) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $0) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.add - (f64.mul - (tee_local $0 - (f64.convert_s/i32 - (get_local $2) - ) - ) - (f64.const 1.9082149292705877e-10) - ) - (get_local $4) - ) - ) - (get_local $6) - ) - (get_local $1) - ) - (f64.mul - (get_local $0) - (f64.const 0.6931471803691238) - ) - ) + i32.const 1 + set_local $2 + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $3 + i32.const 1071284858 + i32.lt_u + tee_local $5 + i32.eqz + if + get_local $3 + i32.const 31 + i32.shr_u + set_local $5 + end + get_local $5 + if + get_local $3 + i32.const -1074790400 + i32.ge_u + if + get_local $0 + f64.const -1 + f64.eq + if + get_local $0 + f64.const 0 + f64.div + return + end + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $3 + i32.const 1 + i32.shl + i32.const 2034237440 + i32.lt_u + if + get_local $0 + return + end + get_local $3 + i32.const -1076707644 + i32.le_u + if + i32.const 0 + set_local $2 + get_local $0 + set_local $1 + end + else + get_local $3 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + end + end + get_local $2 + if + f64.const 1 + get_local $0 + f64.add + i64.reinterpret/f64 + tee_local $7 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 614242 + i32.add + tee_local $5 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + tee_local $2 + i32.const 54 + i32.lt_s + if (result f64) + get_local $7 + f64.reinterpret/i64 + set_local $1 + get_local $2 + i32.const 2 + i32.ge_s + if (result f64) + f64.const 1 + get_local $1 + get_local $0 + f64.sub + f64.sub + else + get_local $0 + get_local $1 + f64.const 1 + f64.sub + f64.sub + end + tee_local $4 + get_local $1 + f64.div + else + f64.const 0 + end + set_local $4 + get_local $5 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $7 + i64.const 4294967295 + i64.and + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub + set_local $1 + end + get_local $1 + f64.const 2 + get_local $1 + f64.add + f64.div + tee_local $6 + get_local $6 + f64.mul + tee_local $8 + get_local $8 + f64.mul + set_local $0 + get_local $6 + f64.const 0.5 + get_local $1 + f64.mul + get_local $1 + f64.mul + tee_local $6 + get_local $8 + f64.const 0.6666666666666735 + get_local $0 + f64.const 0.2857142874366239 + get_local $0 + f64.const 0.1818357216161805 + get_local $0 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $0 + f64.const 0.3999999999940942 + get_local $0 + f64.const 0.22222198432149784 + get_local $0 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + f64.mul + get_local $2 + f64.convert_s/i32 + tee_local $0 + f64.const 1.9082149292705877e-10 + f64.mul + get_local $4 + f64.add + f64.add + get_local $6 + f64.sub + get_local $1 + f64.add + get_local $0 + f64.const 0.6931471803691238 + f64.mul + f64.add ) - (func $~lib/math/NativeMath.log (; 5 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 5 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -649,1658 +460,1159 @@ (local $5 f64) (local $6 f64) (local $7 f64) - (if - (i32.eqz - (tee_local $2 - (i32.lt_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (i32.const 1048576) - ) - ) - ) - (set_local $2 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - ) - (if - (get_local $2) - (block - (if - (i64.eq - (i64.shl - (get_local $4) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $3 - (i32.const -54) - ) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (block - (if - (tee_local $2 - (i32.eq - (get_local $1) - (i32.const 1072693248) - ) - ) - (set_local $2 - (i64.eq - (i64.shl - (get_local $4) - (i64.const 32) - ) - (i64.const 0) - ) - ) - ) - (if - (get_local $2) - (return - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 614242) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $0 - (f64.mul - (tee_local $7 - (f64.mul - (tee_local $6 - (f64.div - (tee_local $5 - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.shl - (i64.extend_u/i32 - (i32.add - (i32.and - (get_local $1) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (i64.const 32) - ) - (i64.and - (get_local $4) - (i64.const 4294967295) - ) - ) - ) - (f64.const 1) - ) - ) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (get_local $6) - ) - ) - (get_local $7) - ) - ) - (f64.add - (f64.add - (f64.sub - (f64.add - (f64.mul - (get_local $6) - (f64.add - (tee_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (f64.add - (f64.mul - (get_local $7) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $0) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $0) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (tee_local $0 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (f64.const 1.9082149292705877e-10) - ) - ) - (get_local $6) - ) - (get_local $5) - ) - (f64.mul - (get_local $0) - (f64.const 0.6931471803691238) - ) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 1048576 + i32.lt_u + tee_local $2 + i32.eqz + if + get_local $1 + i32.const 31 + i32.shr_u + set_local $2 + end + get_local $2 + if + get_local $4 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + i32.const -54 + set_local $3 + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + tee_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + else + get_local $1 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1072693248 + i32.eq + tee_local $2 + if + get_local $4 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + set_local $2 + end + get_local $2 + if + f64.const 0 + return + end + end + end + get_local $3 + get_local $1 + i32.const 614242 + i32.add + tee_local $1 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $3 + get_local $1 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $4 + i64.const 4294967295 + i64.and + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub + tee_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + tee_local $6 + get_local $6 + f64.mul + tee_local $7 + get_local $7 + f64.mul + set_local $0 + get_local $6 + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + tee_local $6 + get_local $7 + f64.const 0.6666666666666735 + get_local $0 + f64.const 0.2857142874366239 + get_local $0 + f64.const 0.1818357216161805 + get_local $0 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $0 + f64.const 0.3999999999940942 + get_local $0 + f64.const 0.22222198432149784 + get_local $0 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + f64.mul + get_local $3 + f64.convert_s/i32 + tee_local $0 + f64.const 1.9082149292705877e-10 + f64.mul + f64.add + get_local $6 + f64.sub + get_local $5 + f64.add + get_local $0 + f64.const 0.6931471803691238 + f64.mul + f64.add ) - (func $~lib/math/NativeMath.acosh (; 6 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 6 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) - (if - (i64.lt_u - (tee_local $1 - (i64.and - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (i64.const 1024) - ) - (return - (call $~lib/math/NativeMath.log1p - (f64.add - (tee_local $0 - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (f64.sqrt - (f64.add - (f64.mul - (get_local $0) - (get_local $0) - ) - (f64.mul - (f64.const 2) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (if - (i64.lt_u - (get_local $1) - (i64.const 1049) - ) - (return - (call $~lib/math/NativeMath.log - (f64.sub - (f64.mul - (f64.const 2) - (get_local $0) - ) - (f64.div - (f64.const 1) - (f64.add - (get_local $0) - (f64.sqrt - (f64.sub - (f64.mul - (get_local $0) - (get_local $0) - ) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.add - (call $~lib/math/NativeMath.log - (get_local $0) - ) - (f64.const 0.6931471805599453) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + tee_local $1 + i64.const 1024 + i64.lt_u + if + get_local $0 + f64.const 1 + f64.sub + tee_local $0 + get_local $0 + get_local $0 + f64.mul + f64.const 2 + get_local $0 + f64.mul + f64.add + f64.sqrt + f64.add + call $~lib/math/NativeMath.log1p + return + end + get_local $1 + i64.const 1049 + i64.lt_u + if + f64.const 2 + get_local $0 + f64.mul + f64.const 1 + get_local $0 + get_local $0 + get_local $0 + f64.mul + f64.const 1 + f64.sub + f64.sqrt + f64.add + f64.div + f64.sub + call $~lib/math/NativeMath.log + return + end + get_local $0 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add ) - (func $std/libm/acosh (; 7 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.acosh - (get_local $0) - ) + (func $std/libm/acosh (; 7 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.acosh ) - (func $~lib/math/NativeMath.asin (; 8 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 8 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) (local $4 f64) - (if - (i32.ge_u - (tee_local $2 - (i32.and - (tee_local $3 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 1072693248) - ) - (block - (if - (i32.eqz - (i32.or - (i32.sub - (get_local $2) - (i32.const 1072693248) - ) - (i32.wrap/i64 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - ) - ) - (return - (f64.add - (f64.mul - (get_local $0) - (f64.const 1.5707963267948966) - ) - (f64.const 7.52316384526264e-37) - ) - ) - ) - (return - (f64.div - (f64.const 0) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1071644672) - ) - (block - (if - (tee_local $3 - (i32.lt_u - (get_local $2) - (i32.const 1045430272) - ) - ) - (set_local $3 - (i32.ge_u - (get_local $2) - (i32.const 1048576) - ) - ) - ) - (if - (get_local $3) - (return - (get_local $0) - ) - ) - (set_local $1 - (call $~lib/math/R - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (return - (f64.add - (get_local $0) - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (set_local $0 - (f64.sqrt - (tee_local $1 - (f64.sub - (f64.const 0.5) - (f64.mul - (f64.abs - (get_local $0) - ) - (f64.const 0.5) - ) - ) - ) - ) - ) - (set_local $4 - (call $~lib/math/R - (get_local $1) - ) - ) - (set_local $0 - (if (result f64) - (i32.ge_u - (get_local $2) - (i32.const 1072640819) - ) - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (f64.mul - (f64.const 2) - (f64.add - (get_local $0) - (f64.mul - (get_local $0) - (get_local $4) - ) - ) - ) - (f64.const 6.123233995736766e-17) - ) - ) - (f64.sub - (f64.const 0.7853981633974483) - (f64.sub - (f64.sub - (f64.mul - (f64.mul - (f64.const 2) - (get_local $0) - ) - (get_local $4) - ) - (f64.sub - (f64.const 6.123233995736766e-17) - (f64.mul - (f64.const 2) - (f64.div - (f64.sub - (get_local $1) - (f64.mul - (tee_local $1 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $1) - ) - ) - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (f64.sub - (f64.const 0.7853981633974483) - (f64.mul - (f64.const 2) - (get_local $1) - ) - ) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $3) - (i32.const 31) - ) - (return - (f64.neg - (get_local $0) - ) - ) - ) - (get_local $0) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $3 + i32.const 2147483647 + i32.and + tee_local $2 + i32.const 1072693248 + i32.ge_u + if + get_local $2 + i32.const 1072693248 + i32.sub + get_local $0 + i64.reinterpret/f64 + i32.wrap/i64 + i32.or + i32.eqz + if + get_local $0 + f64.const 1.5707963267948966 + f64.mul + f64.const 7.52316384526264e-37 + f64.add + return + end + f64.const 0 + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $2 + i32.const 1071644672 + i32.lt_u + if + get_local $2 + i32.const 1045430272 + i32.lt_u + tee_local $3 + if + get_local $2 + i32.const 1048576 + i32.ge_u + set_local $3 + end + get_local $3 + if + get_local $0 + return + end + get_local $0 + get_local $0 + f64.mul + call $~lib/math/R + set_local $1 + get_local $0 + get_local $0 + get_local $1 + f64.mul + f64.add + return + end + f64.const 0.5 + get_local $0 + f64.abs + f64.const 0.5 + f64.mul + f64.sub + tee_local $1 + f64.sqrt + set_local $0 + get_local $1 + call $~lib/math/R + set_local $4 + get_local $2 + i32.const 1072640819 + i32.ge_u + if (result f64) + f64.const 1.5707963267948966 + f64.const 2 + get_local $0 + get_local $0 + get_local $4 + f64.mul + f64.add + f64.mul + f64.const 6.123233995736766e-17 + f64.sub + f64.sub + else + f64.const 0.7853981633974483 + f64.const 2 + get_local $0 + f64.mul + get_local $4 + f64.mul + f64.const 6.123233995736766e-17 + f64.const 2 + get_local $1 + get_local $0 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $1 + get_local $1 + f64.mul + f64.sub + get_local $0 + get_local $1 + f64.add + f64.div + f64.mul + f64.sub + f64.sub + f64.const 0.7853981633974483 + f64.const 2 + get_local $1 + f64.mul + f64.sub + f64.sub + f64.sub + end + set_local $0 + get_local $3 + i32.const 31 + i32.shr_u + if + get_local $0 + f64.neg + return + end + get_local $0 ) - (func $std/libm/asin (; 9 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.asin - (get_local $0) - ) + (func $std/libm/asin (; 9 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.asin ) - (func $~lib/math/NativeMath.asinh (; 10 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 10 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) - (set_local $1 - (f64.reinterpret/i64 - (i64.and - (tee_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 9223372036854775807) - ) - ) - ) - (if - (i64.ge_u - (tee_local $2 - (i64.and - (i64.shr_u - (get_local $2) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (i64.const 1049) - ) - (set_local $1 - (f64.add - (call $~lib/math/NativeMath.log - (get_local $1) - ) - (f64.const 0.6931471805599453) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.const 1024) - ) - (set_local $1 - (call $~lib/math/NativeMath.log - (f64.add - (f64.mul - (f64.const 2) - (get_local $1) - ) - (f64.div - (f64.const 1) - (f64.add - (f64.sqrt - (f64.add - (f64.mul - (get_local $1) - (get_local $1) - ) - (f64.const 1) - ) - ) - (get_local $1) - ) - ) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.const 997) - ) - (set_local $1 - (call $~lib/math/NativeMath.log1p - (f64.add - (get_local $1) - (f64.div - (tee_local $1 - (f64.mul - (get_local $1) - (get_local $1) - ) - ) - (f64.add - (f64.sqrt - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.copysign - (get_local $1) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $2 + i64.const 9223372036854775807 + i64.and + f64.reinterpret/i64 + set_local $1 + get_local $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + tee_local $2 + i64.const 1049 + i64.ge_u + if + get_local $1 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add + set_local $1 + else + get_local $2 + i64.const 1024 + i64.ge_u + if + f64.const 2 + get_local $1 + f64.mul + f64.const 1 + get_local $1 + get_local $1 + f64.mul + f64.const 1 + f64.add + f64.sqrt + get_local $1 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log + set_local $1 + else + get_local $2 + i64.const 997 + i64.ge_u + if + get_local $1 + get_local $1 + get_local $1 + f64.mul + tee_local $1 + get_local $1 + f64.const 1 + f64.add + f64.sqrt + f64.const 1 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log1p + set_local $1 + end + end + end + get_local $1 + get_local $0 + f64.copysign ) - (func $std/libm/asinh (; 11 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.asinh - (get_local $0) - ) + (func $std/libm/asinh (; 11 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.asinh ) - (func $~lib/builtins/isNaN (; 12 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (f64.ne - (get_local $0) - (get_local $0) - ) + (func $~lib/builtins/isNaN (; 12 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + get_local $0 + f64.ne ) - (func $~lib/math/NativeMath.atan (; 13 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 13 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) (local $4 f64) - (set_local $4 - (get_local $0) - ) - (if - (i32.ge_u - (tee_local $2 - (i32.and - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 1141899264) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.copysign - (f64.const 1.5707963267948966) - (get_local $4) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1071382528) - ) - (block - (if - (i32.lt_u - (get_local $2) - (i32.const 1044381696) - ) - (return - (get_local $0) - ) - ) - (set_local $2 - (i32.const -1) - ) - ) - (block - (set_local $0 - (f64.abs - (get_local $0) - ) - ) - (set_local $0 - (if (result f64) - (i32.lt_u - (get_local $2) - (i32.const 1072889856) - ) - (if (result f64) - (i32.lt_u - (get_local $2) - (i32.const 1072037888) - ) - (block (result f64) - (set_local $2 - (i32.const 0) - ) - (f64.div - (f64.sub - (f64.mul - (f64.const 2) - (get_local $0) - ) - (f64.const 1) - ) - (f64.add - (f64.const 2) - (get_local $0) - ) - ) - ) - (block (result f64) - (set_local $2 - (i32.const 1) - ) - (f64.div - (f64.sub - (get_local $0) - (f64.const 1) - ) - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - ) - ) - (if (result f64) - (i32.lt_u - (get_local $2) - (i32.const 1073971200) - ) - (block (result f64) - (set_local $2 - (i32.const 2) - ) - (f64.div - (f64.sub - (get_local $0) - (f64.const 1.5) - ) - (f64.add - (f64.const 1) - (f64.mul - (f64.const 1.5) - (get_local $0) - ) - ) - ) - ) - (block (result f64) - (set_local $2 - (i32.const 3) - ) - (f64.div - (f64.const -1) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (set_local $1 - (f64.mul - (tee_local $3 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - (get_local $3) - ) - ) - (set_local $1 - (f64.mul - (get_local $0) - (f64.add - (f64.mul - (get_local $3) - (f64.add - (f64.const 0.3333333333333293) - (f64.mul - (get_local $1) - (f64.add - (f64.const 0.14285714272503466) - (f64.mul - (get_local $1) - (f64.add - (f64.const 0.09090887133436507) - (f64.mul - (get_local $1) - (f64.add - (f64.const 0.06661073137387531) - (f64.mul - (get_local $1) - (f64.add - (f64.const 0.049768779946159324) - (f64.mul - (get_local $1) - (f64.const 0.016285820115365782) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $1) - (f64.add - (f64.const -0.19999999999876483) - (f64.mul - (get_local $1) - (f64.add - (f64.const -0.11111110405462356) - (f64.mul - (get_local $1) - (f64.add - (f64.const -0.0769187620504483) - (f64.mul - (get_local $1) - (f64.add - (f64.const -0.058335701337905735) - (f64.mul - (get_local $1) - (f64.const -0.036531572744216916) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (f64.sub - (get_local $0) - (get_local $1) - ) - ) - ) - (block $break|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (if - (get_local $2) - (block - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $tablify|0 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $case4|0) - ) - ) - (set_local $3 - (f64.sub - (f64.const 0.4636476090008061) - (f64.sub - (f64.sub - (get_local $1) - (f64.const 2.2698777452961687e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (set_local $3 - (f64.sub - (f64.const 0.7853981633974483) - (f64.sub - (f64.sub - (get_local $1) - (f64.const 3.061616997868383e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (set_local $3 - (f64.sub - (f64.const 0.982793723247329) - (f64.sub - (f64.sub - (get_local $1) - (f64.const 1.3903311031230998e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (set_local $3 - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (f64.sub - (get_local $1) - (f64.const 6.123233995736766e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (unreachable) - ) - (f64.copysign - (get_local $3) - (get_local $4) - ) + get_local $0 + set_local $4 + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 2147483647 + i32.and + tee_local $2 + i32.const 1141899264 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + f64.const 1.5707963267948966 + get_local $4 + f64.copysign + return + end + get_local $2 + i32.const 1071382528 + i32.lt_u + if + get_local $2 + i32.const 1044381696 + i32.lt_u + if + get_local $0 + return + end + i32.const -1 + set_local $2 + else + get_local $0 + f64.abs + set_local $0 + get_local $2 + i32.const 1072889856 + i32.lt_u + if (result f64) + get_local $2 + i32.const 1072037888 + i32.lt_u + if (result f64) + i32.const 0 + set_local $2 + f64.const 2 + get_local $0 + f64.mul + f64.const 1 + f64.sub + f64.const 2 + get_local $0 + f64.add + f64.div + else + i32.const 1 + set_local $2 + get_local $0 + f64.const 1 + f64.sub + get_local $0 + f64.const 1 + f64.add + f64.div + end + else + get_local $2 + i32.const 1073971200 + i32.lt_u + if (result f64) + i32.const 2 + set_local $2 + get_local $0 + f64.const 1.5 + f64.sub + f64.const 1 + f64.const 1.5 + get_local $0 + f64.mul + f64.add + f64.div + else + i32.const 3 + set_local $2 + f64.const -1 + get_local $0 + f64.div + end + end + set_local $0 + end + get_local $0 + get_local $0 + f64.mul + tee_local $3 + get_local $3 + f64.mul + set_local $1 + get_local $0 + get_local $3 + f64.const 0.3333333333333293 + get_local $1 + f64.const 0.14285714272503466 + get_local $1 + f64.const 0.09090887133436507 + get_local $1 + f64.const 0.06661073137387531 + get_local $1 + f64.const 0.049768779946159324 + get_local $1 + f64.const 0.016285820115365782 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $1 + f64.const -0.19999999999876483 + get_local $1 + f64.const -0.11111110405462356 + get_local $1 + f64.const -0.0769187620504483 + get_local $1 + f64.const -0.058335701337905735 + get_local $1 + f64.const -0.036531572744216916 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $1 + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $0 + get_local $1 + f64.sub + return + end + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + get_local $2 + if + block $tablify|0 + get_local $2 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $tablify|0 + end + br $case4|0 + end + f64.const 0.4636476090008061 + get_local $1 + f64.const 2.2698777452961687e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + end + f64.const 0.7853981633974483 + get_local $1 + f64.const 3.061616997868383e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + end + f64.const 0.982793723247329 + get_local $1 + f64.const 1.3903311031230998e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + end + f64.const 1.5707963267948966 + get_local $1 + f64.const 6.123233995736766e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + end + unreachable + end + get_local $3 + get_local $4 + f64.copysign ) - (func $std/libm/atan (; 14 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.atan - (get_local $0) - ) + (func $std/libm/atan (; 14 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.atan ) - (func $~lib/math/NativeMath.atanh (; 15 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 15 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 i64) (local $4 f64) - (set_local $2 - (i64.and - (i64.shr_u - (tee_local $3 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $1 - (f64.reinterpret/i64 - (i64.and - (get_local $3) - (i64.const 9223372036854775807) - ) - ) - ) - (if - (i64.lt_u - (get_local $2) - (i64.const 1022) - ) - (if - (i64.ge_u - (get_local $2) - (i64.const 991) - ) - (set_local $1 - (f64.mul - (f64.const 0.5) - (call $~lib/math/NativeMath.log1p - (f64.add - (tee_local $4 - (f64.mul - (f64.const 2) - (get_local $1) - ) - ) - (f64.div - (f64.mul - (get_local $4) - (get_local $1) - ) - (f64.sub - (f64.const 1) - (get_local $1) - ) - ) - ) - ) - ) - ) - ) - (set_local $1 - (f64.mul - (f64.const 0.5) - (call $~lib/math/NativeMath.log1p - (f64.mul - (f64.const 2) - (f64.div - (get_local $1) - (f64.sub - (f64.const 1) - (get_local $1) - ) - ) - ) - ) - ) - ) - ) - (f64.copysign - (get_local $1) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $2 + get_local $3 + i64.const 9223372036854775807 + i64.and + f64.reinterpret/i64 + set_local $1 + get_local $2 + i64.const 1022 + i64.lt_u + if + get_local $2 + i64.const 991 + i64.ge_u + if + f64.const 0.5 + f64.const 2 + get_local $1 + f64.mul + tee_local $4 + get_local $4 + get_local $1 + f64.mul + f64.const 1 + get_local $1 + f64.sub + f64.div + f64.add + call $~lib/math/NativeMath.log1p + f64.mul + set_local $1 + end + else + f64.const 0.5 + f64.const 2 + get_local $1 + f64.const 1 + get_local $1 + f64.sub + f64.div + f64.mul + call $~lib/math/NativeMath.log1p + f64.mul + set_local $1 + end + get_local $1 + get_local $0 + f64.copysign ) - (func $std/libm/atanh (; 16 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.atanh - (get_local $0) - ) + (func $std/libm/atanh (; 16 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.atanh ) - (func $~lib/math/NativeMath.atan2 (; 17 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 17 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i64) (local $7 i32) - (block $folding-inner0 - (if - (i32.eqz - (tee_local $2 - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - ) - (set_local $2 - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (if - (get_local $2) - (return - (f64.add - (get_local $1) - (get_local $0) - ) - ) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (tee_local $6 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $2 - (i32.wrap/i64 - (get_local $6) - ) - ) - (set_local $5 - (i32.wrap/i64 - (i64.shr_u - (tee_local $6 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $7 - (i32.wrap/i64 - (get_local $6) - ) - ) - (if - (i32.eqz - (i32.or - (i32.sub - (get_local $4) - (i32.const 1072693248) - ) - (get_local $2) - ) - ) - (return - (call $~lib/math/NativeMath.atan - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 31) - ) - (i32.and - (i32.shr_u - (get_local $4) - (i32.const 30) - ) - (i32.const 2) - ) - ) - ) - (set_local $4 - (i32.and - (get_local $4) - (i32.const 2147483647) - ) - ) - (if - (i32.eqz - (i32.or - (tee_local $5 - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - ) - (get_local $7) - ) - ) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (br_if $case1|0 - (i32.eqz - (get_local $3) - ) - ) - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $tablify|0 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $break|0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.const 3.141592653589793) - ) - ) - (return - (f64.const -3.141592653589793) - ) - ) - ) - (br_if $folding-inner0 - (i32.eqz - (i32.or - (get_local $4) - (get_local $2) - ) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 2146435072) - ) - (if - (i32.eq - (get_local $5) - (i32.const 2146435072) - ) - (block $break|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (if - (get_local $3) - (block - (block $tablify|00 - (br_table $case1|1 $case2|1 $case3|1 $tablify|00 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $break|1) - ) - ) - (return - (f64.const 0.7853981633974483) - ) - ) - (return - (f64.const -0.7853981633974483) - ) - ) - (return - (f64.const 2.356194490192345) - ) - ) - (return - (f64.const -2.356194490192345) - ) - ) - (block $break|2 - (block $case3|2 - (block $case2|2 - (block $case1|2 - (if - (get_local $3) - (block - (block $tablify|01 - (br_table $case1|2 $case2|2 $case3|2 $tablify|01 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $break|2) - ) - ) - (return - (f64.const 0) - ) - ) - (return - (f64.const -0) - ) - ) - (return - (f64.const 3.141592653589793) - ) - ) - (return - (f64.const -3.141592653589793) - ) - ) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.lt_u - (i32.add - (get_local $4) - (i32.const 67108864) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.eq - (get_local $5) - (i32.const 2146435072) - ) - ) - ) - (br_if $folding-inner0 - (get_local $2) - ) - (if - (tee_local $2 - (i32.and - (get_local $3) - (i32.const 2) - ) - ) - (set_local $2 - (i32.lt_u - (i32.add - (get_local $5) - (i32.const 67108864) - ) - (get_local $4) - ) - ) - ) - (set_local $0 - (if (result f64) - (get_local $2) - (f64.const 0) - (call $~lib/math/NativeMath.atan - (f64.abs - (f64.div - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (block $break|3 - (block $case3|3 - (block $case2|3 - (block $case1|3 - (if - (tee_local $2 - (get_local $3) - ) - (block - (block $tablify|02 - (br_table $case1|3 $case2|3 $case3|3 $tablify|02 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $break|3) - ) - ) - (return - (get_local $0) - ) - ) - (return - (f64.neg - (get_local $0) - ) - ) - ) - (return - (f64.sub - (f64.const 3.141592653589793) - (f64.sub - (get_local $0) - (f64.const 1.2246467991473532e-16) - ) - ) - ) - ) - (return - (f64.sub - (f64.sub - (get_local $0) - (f64.const 1.2246467991473532e-16) - ) - (f64.const 3.141592653589793) - ) - ) - ) - (unreachable) - ) - (tee_local $0 - (if (result f64) - (i32.and - (get_local $3) - (i32.const 1) - ) - (f64.const -1.5707963267948966) - (f64.const 1.5707963267948966) - ) - ) + block $folding-inner0 + get_local $1 + call $~lib/builtins/isNaN + tee_local $2 + i32.eqz + if + get_local $0 + call $~lib/builtins/isNaN + set_local $2 + end + get_local $2 + if + get_local $1 + get_local $0 + f64.add + return + end + get_local $1 + i64.reinterpret/f64 + tee_local $6 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $4 + get_local $6 + i32.wrap/i64 + set_local $2 + get_local $0 + i64.reinterpret/f64 + tee_local $6 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $5 + get_local $6 + i32.wrap/i64 + set_local $7 + get_local $4 + i32.const 1072693248 + i32.sub + get_local $2 + i32.or + i32.eqz + if + get_local $0 + call $~lib/math/NativeMath.atan + return + end + get_local $5 + i32.const 31 + i32.shr_u + get_local $4 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + i32.or + set_local $3 + get_local $4 + i32.const 2147483647 + i32.and + set_local $4 + get_local $5 + i32.const 2147483647 + i32.and + tee_local $5 + get_local $7 + i32.or + i32.eqz + if + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + get_local $3 + i32.eqz + br_if $case1|0 + block $tablify|0 + get_local $3 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $tablify|0 + end + br $break|0 + end + get_local $0 + return + end + f64.const 3.141592653589793 + return + end + f64.const -3.141592653589793 + return + end + end + get_local $4 + get_local $2 + i32.or + i32.eqz + br_if $folding-inner0 + get_local $4 + i32.const 2146435072 + i32.eq + if + get_local $5 + i32.const 2146435072 + i32.eq + if + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + get_local $3 + if + block $tablify|00 + get_local $3 + i32.const 1 + i32.sub + br_table $case1|1 $case2|1 $case3|1 $tablify|00 + end + br $break|1 + end + f64.const 0.7853981633974483 + return + end + f64.const -0.7853981633974483 + return + end + f64.const 2.356194490192345 + return + end + f64.const -2.356194490192345 + return + end + else + block $break|2 + block $case3|2 + block $case2|2 + block $case1|2 + get_local $3 + if + block $tablify|01 + get_local $3 + i32.const 1 + i32.sub + br_table $case1|2 $case2|2 $case3|2 $tablify|01 + end + br $break|2 + end + f64.const 0 + return + end + f64.const -0 + return + end + f64.const 3.141592653589793 + return + end + f64.const -3.141592653589793 + return + end + end + end + get_local $4 + i32.const 67108864 + i32.add + get_local $5 + i32.lt_u + tee_local $2 + i32.eqz + if + get_local $5 + i32.const 2146435072 + i32.eq + set_local $2 + end + get_local $2 + br_if $folding-inner0 + get_local $3 + i32.const 2 + i32.and + tee_local $2 + if + get_local $5 + i32.const 67108864 + i32.add + get_local $4 + i32.lt_u + set_local $2 + end + get_local $2 + if (result f64) + f64.const 0 + else + get_local $0 + get_local $1 + f64.div + f64.abs + call $~lib/math/NativeMath.atan + end + set_local $0 + block $break|3 + block $case3|3 + block $case2|3 + block $case1|3 + get_local $3 + tee_local $2 + if + block $tablify|02 + get_local $2 + i32.const 1 + i32.sub + br_table $case1|3 $case2|3 $case3|3 $tablify|02 + end + br $break|3 + end + get_local $0 + return + end + get_local $0 + f64.neg + return + end + f64.const 3.141592653589793 + get_local $0 + f64.const 1.2246467991473532e-16 + f64.sub + f64.sub + return + end + get_local $0 + f64.const 1.2246467991473532e-16 + f64.sub + f64.const 3.141592653589793 + f64.sub + return + end + unreachable + end + get_local $3 + i32.const 1 + i32.and + if (result f64) + f64.const -1.5707963267948966 + else + f64.const 1.5707963267948966 + end + tee_local $0 ) - (func $std/libm/atan2 (; 18 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (call $~lib/math/NativeMath.atan2 - (get_local $0) - (get_local $1) - ) + (func $std/libm/atan2 (; 18 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.atan2 ) - (func $~lib/math/NativeMath.cbrt (; 19 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 19 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) (local $4 i64) - (if - (i32.ge_u - (tee_local $3 - (i32.and - (i32.wrap/i64 - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 2146435072) - ) - (return - (f64.add - (get_local $0) - (get_local $0) - ) - ) - ) - (set_local $3 - (if (result i32) - (i32.lt_u - (get_local $3) - (i32.const 1048576) - ) - (block (result i32) - (if - (i32.eqz - (tee_local $3 - (i32.and - (i32.wrap/i64 - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (i64.const 32) - ) - ) - (i32.const 2147483647) - ) - ) - ) - (return - (get_local $0) - ) - ) - (i32.add - (i32.div_u - (get_local $3) - (i32.const 3) - ) - (i32.const 696219795) - ) - ) - (i32.add - (i32.div_u - (get_local $3) - (i32.const 3) - ) - (i32.const 715094163) - ) - ) - ) - (set_local $2 - (f64.mul - (f64.mul - (tee_local $1 - (f64.reinterpret/i64 - (i64.or - (i64.and - (get_local $4) - (i64.const -9223372036854775808) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (get_local $1) - ) - (f64.div - (get_local $1) - (get_local $0) - ) - ) - ) - (set_local $2 - (f64.mul - (tee_local $1 - (f64.reinterpret/i64 - (i64.and - (i64.add - (i64.reinterpret/f64 - (f64.mul - (get_local $1) - (f64.add - (f64.add - (f64.const 1.87595182427177) - (f64.mul - (get_local $2) - (f64.add - (f64.const -1.8849797954337717) - (f64.mul - (get_local $2) - (f64.const 1.6214297201053545) - ) - ) - ) - ) - (f64.mul - (f64.mul - (f64.mul - (get_local $2) - (get_local $2) - ) - (get_local $2) - ) - (f64.add - (f64.const -0.758397934778766) - (f64.mul - (get_local $2) - (f64.const 0.14599619288661245) - ) - ) - ) - ) - ) - ) - (i64.const 2147483648) - ) - (i64.const -1073741824) - ) - ) - ) - (get_local $1) - ) - ) - (f64.add - (get_local $1) - (f64.mul - (get_local $1) - (f64.div - (f64.sub - (tee_local $2 - (f64.div - (get_local $0) - (get_local $2) - ) - ) - (get_local $1) - ) - (f64.add - (f64.add - (get_local $1) - (get_local $1) - ) - (get_local $2) - ) - ) - ) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 2147483647 + i32.and + tee_local $3 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + get_local $0 + f64.add + return + end + get_local $3 + i32.const 1048576 + i32.lt_u + if (result i32) + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + tee_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 2147483647 + i32.and + tee_local $3 + i32.eqz + if + get_local $0 + return + end + get_local $3 + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add + else + get_local $3 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add + end + set_local $3 + get_local $4 + i64.const -9223372036854775808 + i64.and + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + tee_local $1 + get_local $1 + f64.mul + get_local $1 + get_local $0 + f64.div + f64.mul + set_local $2 + get_local $1 + f64.const 1.87595182427177 + get_local $2 + f64.const -1.8849797954337717 + get_local $2 + f64.const 1.6214297201053545 + f64.mul + f64.add + f64.mul + f64.add + get_local $2 + get_local $2 + f64.mul + get_local $2 + f64.mul + f64.const -0.758397934778766 + get_local $2 + f64.const 0.14599619288661245 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + i64.reinterpret/f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret/i64 + tee_local $1 + get_local $1 + f64.mul + set_local $2 + get_local $1 + get_local $1 + get_local $0 + get_local $2 + f64.div + tee_local $2 + get_local $1 + f64.sub + get_local $1 + get_local $1 + f64.add + get_local $2 + f64.add + f64.div + f64.mul + f64.add ) - (func $std/libm/cbrt (; 20 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.cbrt - (get_local $0) - ) + (func $std/libm/cbrt (; 20 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.cbrt ) - (func $std/libm/ceil (; 21 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (f64.ceil - (get_local $0) - ) + (func $std/libm/ceil (; 21 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + f64.ceil ) - (func $std/libm/clz32 (; 22 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (f64.convert_s/i32 - (i32.clz - (i32.trunc_s/f64 - (get_local $0) - ) - ) - ) + (func $std/libm/clz32 (; 22 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + i32.trunc_s/f64 + i32.clz + f64.convert_s/i32 ) - (func $~lib/math/NativeMath.cos (; 23 ;) (; has Stack IR ;) (type $FUNCSIG$d) (result f64) - (unreachable) + (func $~lib/math/NativeMath.cos (; 23 ;) (type $FUNCSIG$d) (result f64) + unreachable ) - (func $std/libm/cos (; 24 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.cos) + (func $std/libm/cos (; 24 ;) (type $FF) (param $0 f64) (result f64) + call $~lib/math/NativeMath.cos ) - (func $~lib/math/NativeMath.expm1 (; 25 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 25 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -2309,841 +1621,579 @@ (local $6 i32) (local $7 i64) (local $8 f64) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (tee_local $7 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 63) - ) - ) - ) - (if - (i32.ge_u - (tee_local $4 - (i32.wrap/i64 - (i64.and - (i64.shr_u - (get_local $7) - (i64.const 32) - ) - (i64.const 2147483647) - ) - ) - ) - (i32.const 1078159482) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (if - (get_local $6) - (return - (f64.const -1) - ) - ) - (if - (f64.gt - (get_local $0) - (f64.const 709.782712893384) - ) - (return - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $4) - (i32.const 1071001154) - ) - (block - (set_local $0 - (f64.sub - (tee_local $2 - (f64.sub - (get_local $0) - (f64.mul - (tee_local $1 - (f64.convert_s/i32 - (tee_local $3 - (select - (i32.sub - (i32.const 1) - (i32.shl - (get_local $6) - (i32.const 1) - ) - ) - (i32.trunc_s/f64 - (f64.add - (f64.mul - (f64.const 1.4426950408889634) - (get_local $0) - ) - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - ) - (i32.lt_u - (get_local $4) - (i32.const 1072734898) - ) - ) - ) - ) - ) - (f64.const 0.6931471803691238) - ) - ) - ) - (tee_local $1 - (f64.mul - (get_local $1) - (f64.const 1.9082149292705877e-10) - ) - ) - ) - ) - (set_local $5 - (f64.sub - (f64.sub - (get_local $2) - (get_local $0) - ) - (get_local $1) - ) - ) - ) - (if - (i32.lt_u - (get_local $4) - (i32.const 1016070144) - ) - (return - (get_local $0) - ) - ) - ) - (set_local $1 - (f64.add - (f64.const 1) - (f64.mul - (tee_local $2 - (f64.mul - (get_local $0) - (tee_local $8 - (f64.mul - (f64.const 0.5) - (get_local $0) - ) - ) - ) - ) - (f64.add - (f64.const -0.03333333333333313) - (f64.mul - (get_local $2) - (f64.add - (f64.const 1.5873015872548146e-03) - (f64.mul - (get_local $2) - (f64.add - (f64.const -7.93650757867488e-05) - (f64.mul - (get_local $2) - (f64.add - (f64.const 4.008217827329362e-06) - (f64.mul - (get_local $2) - (f64.const -2.0109921818362437e-07) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $1 - (f64.mul - (get_local $2) - (f64.div - (f64.sub - (get_local $1) - (tee_local $1 - (f64.sub - (f64.const 3) - (f64.mul - (get_local $1) - (get_local $8) - ) - ) - ) - ) - (f64.sub - (f64.const 6) - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (f64.sub - (get_local $0) - (f64.sub - (f64.mul - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) - ) - ) - ) - (set_local $1 - (f64.sub - (f64.sub - (f64.mul - (get_local $0) - (f64.sub - (get_local $1) - (get_local $5) - ) - ) - (get_local $5) - ) - (get_local $2) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const -1) - ) - (return - (f64.sub - (f64.mul - (f64.const 0.5) - (f64.sub - (get_local $0) - (get_local $1) - ) - ) - (f64.const 0.5) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1) - ) - (block - (if - (f64.lt - (get_local $0) - (f64.const -0.25) - ) - (return - (f64.mul - (f64.const -2) - (f64.sub - (get_local $1) - (f64.add - (get_local $0) - (f64.const 0.5) - ) - ) - ) - ) - ) - (return - (f64.add - (f64.const 1) - (f64.mul - (f64.const 2) - (f64.sub - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - ) - (set_local $5 - (f64.reinterpret/i64 - (i64.shl - (i64.add - (i64.extend_s/i32 - (get_local $3) - ) - (i64.const 1023) - ) - (i64.const 52) - ) - ) - ) - (if - (i32.eqz - (tee_local $4 - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - ) - (set_local $4 - (i32.gt_s - (get_local $3) - (i32.const 56) - ) - ) - ) - (if - (get_local $4) - (block - (set_local $2 - (f64.add - (f64.sub - (get_local $0) - (get_local $1) - ) - (f64.const 1) - ) - ) - (return - (f64.sub - (tee_local $2 - (if (result f64) - (i32.eq - (get_local $3) - (i32.const 1024) - ) - (f64.mul - (f64.mul - (get_local $2) - (f64.const 2) - ) - (f64.const 8988465674311579538646525e283) - ) - (f64.mul - (get_local $2) - (get_local $5) - ) - ) - ) - (f64.const 1) - ) - ) - ) - ) - (set_local $2 - (f64.reinterpret/i64 - (i64.shl - (i64.sub - (i64.const 1023) - (i64.extend_s/i32 - (get_local $3) - ) - ) - (i64.const 52) - ) - ) - ) - (f64.mul - (f64.add - (get_local $0) - (tee_local $2 - (if (result f64) - (i32.lt_s - (get_local $3) - (i32.const 20) - ) - (f64.sub - (f64.sub - (f64.const 1) - (get_local $2) - ) - (get_local $1) - ) - (f64.sub - (f64.const 1) - (f64.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - ) - (get_local $5) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $7 + i64.const 63 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $7 + i64.const 32 + i64.shr_u + i64.const 2147483647 + i64.and + i32.wrap/i64 + tee_local $4 + i32.const 1078159482 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + get_local $6 + if + f64.const -1 + return + end + get_local $0 + f64.const 709.782712893384 + f64.gt + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + return + end + end + get_local $4 + i32.const 1071001154 + i32.gt_u + if + get_local $0 + i32.const 1 + get_local $6 + i32.const 1 + i32.shl + i32.sub + f64.const 1.4426950408889634 + get_local $0 + f64.mul + f64.const 0.5 + get_local $0 + f64.copysign + f64.add + i32.trunc_s/f64 + get_local $4 + i32.const 1072734898 + i32.lt_u + select + tee_local $3 + f64.convert_s/i32 + tee_local $1 + f64.const 0.6931471803691238 + f64.mul + f64.sub + tee_local $2 + get_local $1 + f64.const 1.9082149292705877e-10 + f64.mul + tee_local $1 + f64.sub + set_local $0 + get_local $2 + get_local $0 + f64.sub + get_local $1 + f64.sub + set_local $5 + else + get_local $4 + i32.const 1016070144 + i32.lt_u + if + get_local $0 + return + end + end + f64.const 1 + get_local $0 + f64.const 0.5 + get_local $0 + f64.mul + tee_local $8 + f64.mul + tee_local $2 + f64.const -0.03333333333333313 + get_local $2 + f64.const 1.5873015872548146e-03 + get_local $2 + f64.const -7.93650757867488e-05 + get_local $2 + f64.const 4.008217827329362e-06 + get_local $2 + f64.const -2.0109921818362437e-07 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + set_local $1 + get_local $2 + get_local $1 + f64.const 3 + get_local $1 + get_local $8 + f64.mul + f64.sub + tee_local $1 + f64.sub + f64.const 6 + get_local $0 + get_local $1 + f64.mul + f64.sub + f64.div + f64.mul + set_local $1 + get_local $3 + i32.eqz + if + get_local $0 + get_local $0 + get_local $1 + f64.mul + get_local $2 + f64.sub + f64.sub + return + end + get_local $0 + get_local $1 + get_local $5 + f64.sub + f64.mul + get_local $5 + f64.sub + get_local $2 + f64.sub + set_local $1 + get_local $3 + i32.const -1 + i32.eq + if + f64.const 0.5 + get_local $0 + get_local $1 + f64.sub + f64.mul + f64.const 0.5 + f64.sub + return + end + get_local $3 + i32.const 1 + i32.eq + if + get_local $0 + f64.const -0.25 + f64.lt + if + f64.const -2 + get_local $1 + get_local $0 + f64.const 0.5 + f64.add + f64.sub + f64.mul + return + end + f64.const 1 + f64.const 2 + get_local $0 + get_local $1 + f64.sub + f64.mul + f64.add + return + end + get_local $3 + i64.extend_s/i32 + i64.const 1023 + i64.add + i64.const 52 + i64.shl + f64.reinterpret/i64 + set_local $5 + get_local $3 + i32.const 0 + i32.lt_s + tee_local $4 + i32.eqz + if + get_local $3 + i32.const 56 + i32.gt_s + set_local $4 + end + get_local $4 + if + get_local $0 + get_local $1 + f64.sub + f64.const 1 + f64.add + set_local $2 + get_local $3 + i32.const 1024 + i32.eq + if (result f64) + get_local $2 + f64.const 2 + f64.mul + f64.const 8988465674311579538646525e283 + f64.mul + else + get_local $2 + get_local $5 + f64.mul + end + tee_local $2 + f64.const 1 + f64.sub + return + end + i64.const 1023 + get_local $3 + i64.extend_s/i32 + i64.sub + i64.const 52 + i64.shl + f64.reinterpret/i64 + set_local $2 + get_local $0 + get_local $3 + i32.const 20 + i32.lt_s + if (result f64) + f64.const 1 + get_local $2 + f64.sub + get_local $1 + f64.sub + else + f64.const 1 + get_local $1 + get_local $2 + f64.add + f64.sub + end + tee_local $2 + f64.add + get_local $5 + f64.mul ) - (func $~lib/math/NativeMath.scalbn (; 26 ;) (; has Stack IR ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - (if - (i32.gt_s - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (i32.const 1023) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (select - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (i32.const 1023) - (i32.lt_s - (get_local $1) - (i32.const 1023) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 2.004168360008973e-292) - ) - ) - (if - (i32.lt_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 969) - ) - ) - (i32.const -1022) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 2.004168360008973e-292) - ) - ) - (set_local $1 - (select - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 969) - ) - ) - (i32.const -1022) - (i32.gt_s - (get_local $1) - (i32.const -1022) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.reinterpret/i64 - (i64.shl - (i64.add - (i64.extend_s/i32 - (get_local $1) - ) - (i64.const 1023) - ) - (i64.const 52) - ) - ) - ) + (func $~lib/math/NativeMath.scalbn (; 26 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $0 + get_local $1 + i32.const 1023 + i32.sub + tee_local $1 + i32.const 1023 + i32.gt_s + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $0 + get_local $1 + i32.const 1023 + i32.sub + tee_local $1 + i32.const 1023 + get_local $1 + i32.const 1023 + i32.lt_s + select + set_local $1 + end + else + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $0 + f64.const 2.004168360008973e-292 + f64.mul + set_local $0 + get_local $1 + i32.const 969 + i32.add + tee_local $1 + i32.const -1022 + i32.lt_s + if + get_local $0 + f64.const 2.004168360008973e-292 + f64.mul + set_local $0 + get_local $1 + i32.const 969 + i32.add + tee_local $1 + i32.const -1022 + get_local $1 + i32.const -1022 + i32.gt_s + select + set_local $1 + end + end + end + get_local $0 + get_local $1 + i64.extend_s/i32 + i64.const 1023 + i64.add + i64.const 52 + i64.shl + f64.reinterpret/i64 + f64.mul ) - (func $~lib/math/NativeMath.exp (; 27 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 27 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 f64) (local $4 f64) (local $5 i32) - (set_local $5 - (i32.shr_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (i32.const 31) - ) - ) - (if - (i32.ge_u - (tee_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (i32.const 1082532651) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (if - (f64.gt - (get_local $0) - (f64.const 709.782712893384) - ) - (return - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - ) - (if - (f64.lt - (get_local $0) - (f64.const -745.1332191019411) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1071001154) - ) - (set_local $0 - (f64.sub - (tee_local $4 - (f64.sub - (get_local $0) - (f64.mul - (tee_local $0 - (f64.convert_s/i32 - (tee_local $2 - (if (result i32) - (i32.ge_u - (get_local $1) - (i32.const 1072734898) - ) - (i32.trunc_s/f64 - (f64.add - (f64.mul - (f64.const 1.4426950408889634) - (get_local $0) - ) - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - ) - (i32.sub - (i32.const 1) - (i32.shl - (get_local $5) - (i32.const 1) - ) - ) - ) - ) - ) - ) - (f64.const 0.6931471803691238) - ) - ) - ) - (tee_local $3 - (f64.mul - (get_local $0) - (f64.const 1.9082149292705877e-10) - ) - ) - ) - ) - (set_local $4 - (if (result f64) - (i32.gt_u - (get_local $1) - (i32.const 1043333120) - ) - (get_local $0) - (return - (f64.add - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - ) - (set_local $0 - (f64.add - (f64.const 1) - (f64.add - (f64.sub - (f64.div - (f64.mul - (get_local $0) - (tee_local $0 - (f64.sub - (get_local $0) - (f64.mul - (tee_local $0 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $0) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $0) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $0) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $0) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.sub - (f64.const 2) - (get_local $0) - ) - ) - (get_local $3) - ) - (get_local $4) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (get_local $0) - ) - ) - (call $~lib/math/NativeMath.scalbn - (get_local $0) - (get_local $2) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 31 + i32.shr_u + set_local $5 + get_local $1 + i32.const 2147483647 + i32.and + tee_local $1 + i32.const 1082532651 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + get_local $0 + f64.const 709.782712893384 + f64.gt + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + return + end + get_local $0 + f64.const -745.1332191019411 + f64.lt + if + f64.const 0 + return + end + end + get_local $1 + i32.const 1071001154 + i32.gt_u + if + get_local $0 + get_local $1 + i32.const 1072734898 + i32.ge_u + if (result i32) + f64.const 1.4426950408889634 + get_local $0 + f64.mul + f64.const 0.5 + get_local $0 + f64.copysign + f64.add + i32.trunc_s/f64 + else + i32.const 1 + get_local $5 + i32.const 1 + i32.shl + i32.sub + end + tee_local $2 + f64.convert_s/i32 + tee_local $0 + f64.const 0.6931471803691238 + f64.mul + f64.sub + tee_local $4 + get_local $0 + f64.const 1.9082149292705877e-10 + f64.mul + tee_local $3 + f64.sub + set_local $0 + else + get_local $1 + i32.const 1043333120 + i32.gt_u + if (result f64) + get_local $0 + else + f64.const 1 + get_local $0 + f64.add + return + end + set_local $4 + end + f64.const 1 + get_local $0 + get_local $0 + get_local $0 + get_local $0 + f64.mul + tee_local $0 + f64.const 0.16666666666666602 + get_local $0 + f64.const -2.7777777777015593e-03 + get_local $0 + f64.const 6.613756321437934e-05 + get_local $0 + f64.const -1.6533902205465252e-06 + get_local $0 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + tee_local $0 + f64.mul + f64.const 2 + get_local $0 + f64.sub + f64.div + get_local $3 + f64.sub + get_local $4 + f64.add + f64.add + set_local $0 + get_local $2 + i32.eqz + if + get_local $0 + return + end + get_local $0 + get_local $2 + call $~lib/math/NativeMath.scalbn ) - (func $~lib/math/NativeMath.cosh (; 28 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 28 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) - (set_local $0 - (f64.reinterpret/i64 - (tee_local $2 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 9223372036854775807) - ) - ) - ) - ) - (if - (i32.lt_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (i32.const 1072049730) - ) - (block - (if - (i32.lt_u - (get_local $1) - (i32.const 1045430272) - ) - (return - (f64.const 1) - ) - ) - (return - (f64.add - (f64.const 1) - (f64.div - (f64.mul - (tee_local $0 - (call $~lib/math/NativeMath.expm1 - (get_local $0) - ) - ) - (get_local $0) - ) - (f64.add - (f64.const 2) - (f64.mul - (f64.const 2) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1082535490) - ) - (return - (f64.mul - (f64.const 0.5) - (f64.add - (tee_local $0 - (call $~lib/math/NativeMath.exp - (get_local $0) - ) - ) - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - ) - (f64.mul - (f64.mul - (call $~lib/math/NativeMath.exp - (f64.sub - (get_local $0) - (f64.const 1416.0996898839683) - ) - ) - (f64.const 2247116418577894884661631e283) - ) - (f64.const 2247116418577894884661631e283) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + tee_local $2 + f64.reinterpret/i64 + set_local $0 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 1072049730 + i32.lt_u + if + get_local $1 + i32.const 1045430272 + i32.lt_u + if + f64.const 1 + return + end + f64.const 1 + get_local $0 + call $~lib/math/NativeMath.expm1 + tee_local $0 + get_local $0 + f64.mul + f64.const 2 + f64.const 2 + get_local $0 + f64.mul + f64.add + f64.div + f64.add + return + end + get_local $1 + i32.const 1082535490 + i32.lt_u + if + f64.const 0.5 + get_local $0 + call $~lib/math/NativeMath.exp + tee_local $0 + f64.const 1 + get_local $0 + f64.div + f64.add + f64.mul + return + end + get_local $0 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + f64.const 2247116418577894884661631e283 + f64.mul + f64.const 2247116418577894884661631e283 + f64.mul ) - (func $std/libm/cosh (; 29 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.cosh - (get_local $0) - ) + (func $std/libm/cosh (; 29 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.cosh ) - (func $std/libm/exp (; 30 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.exp - (get_local $0) - ) + (func $std/libm/exp (; 30 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.exp ) - (func $std/libm/expm1 (; 31 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.expm1 - (get_local $0) - ) + (func $std/libm/expm1 (; 31 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.expm1 ) - (func $std/libm/floor (; 32 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (f64.floor - (get_local $0) - ) + (func $std/libm/floor (; 32 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + f64.floor ) - (func $std/libm/fround (; 33 ;) (; has Stack IR ;) (type $Ff) (param $0 f64) (result f32) - (f32.demote/f64 - (get_local $0) - ) + (func $std/libm/fround (; 33 ;) (type $Ff) (param $0 f64) (result f32) + get_local $0 + f32.demote/f64 ) - (func $~lib/math/NativeMath.hypot (; 34 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 34 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 i64) (local $4 f64) @@ -3154,292 +2204,198 @@ (local $9 i32) (local $10 i64) (local $11 f64) - (if - (i64.lt_u - (tee_local $5 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 9223372036854775807) - ) - ) - (tee_local $3 - (i64.and - (i64.reinterpret/f64 - (get_local $1) - ) - (i64.const 9223372036854775807) - ) - ) - ) - (block - (set_local $10 - (get_local $5) - ) - (set_local $5 - (get_local $3) - ) - (set_local $3 - (get_local $10) - ) - ) - ) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (get_local $5) - (i64.const 52) - ) - ) - ) - (set_local $1 - (f64.reinterpret/i64 - (get_local $3) - ) - ) - (if - (i32.eq - (tee_local $8 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.const 52) - ) - ) - ) - (i32.const 2047) - ) - (return - (get_local $1) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $5) - ) - ) - (if - (i32.eqz - (tee_local $9 - (i32.eq - (get_local $6) - (i32.const 2047) - ) - ) - ) - (set_local $9 - (i64.eq - (get_local $3) - (i64.const 0) - ) - ) - ) - (if - (get_local $9) - (return - (get_local $0) - ) - ) - (if - (i32.gt_s - (i32.sub - (get_local $6) - (get_local $8) - ) - (i32.const 64) - ) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $7 - (f64.const 1) - ) - (if - (i32.gt_s - (get_local $6) - (i32.const 1533) - ) - (block - (set_local $7 - (f64.const 5260135901548373507240989e186) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 1.90109156629516e-211) - ) - ) - (set_local $1 - (f64.mul - (get_local $1) - (f64.const 1.90109156629516e-211) - ) - ) - ) - (if - (i32.lt_s - (get_local $8) - (i32.const 573) - ) - (block - (set_local $7 - (f64.const 1.90109156629516e-211) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 5260135901548373507240989e186) - ) - ) - (set_local $1 - (f64.mul - (get_local $1) - (f64.const 5260135901548373507240989e186) - ) - ) - ) - ) - ) - (set_local $4 - (f64.sub - (get_local $0) - (tee_local $2 - (f64.add - (f64.sub - (get_local $0) - (tee_local $2 - (f64.mul - (get_local $0) - (f64.const 134217729) - ) - ) - ) - (get_local $2) - ) - ) - ) - ) - (set_local $11 - (f64.add - (f64.sub - (f64.mul - (get_local $2) - (get_local $2) - ) - (tee_local $0 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (f64.mul - (f64.add - (f64.mul - (f64.const 2) - (get_local $2) - ) - (get_local $4) - ) - (get_local $4) - ) - ) - ) - (set_local $4 - (f64.sub - (get_local $1) - (tee_local $2 - (f64.add - (f64.sub - (get_local $1) - (tee_local $2 - (f64.mul - (get_local $1) - (f64.const 134217729) - ) - ) - ) - (get_local $2) - ) - ) - ) - ) - (f64.mul - (get_local $7) - (f64.sqrt - (f64.add - (f64.add - (f64.add - (tee_local $2 - (f64.add - (f64.sub - (f64.mul - (get_local $2) - (get_local $2) - ) - (tee_local $1 - (f64.mul - (get_local $1) - (get_local $1) - ) - ) - ) - (f64.mul - (f64.add - (f64.mul - (f64.const 2) - (get_local $2) - ) - (get_local $4) - ) - (get_local $4) - ) - ) - ) - (get_local $11) - ) - (get_local $1) - ) - (get_local $0) - ) - ) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + tee_local $5 + get_local $1 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + tee_local $3 + i64.lt_u + if + get_local $5 + set_local $10 + get_local $3 + set_local $5 + get_local $10 + set_local $3 + end + get_local $5 + i64.const 52 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $3 + f64.reinterpret/i64 + set_local $1 + get_local $3 + i64.const 52 + i64.shr_u + i32.wrap/i64 + tee_local $8 + i32.const 2047 + i32.eq + if + get_local $1 + return + end + get_local $5 + f64.reinterpret/i64 + set_local $0 + get_local $6 + i32.const 2047 + i32.eq + tee_local $9 + i32.eqz + if + get_local $3 + i64.const 0 + i64.eq + set_local $9 + end + get_local $9 + if + get_local $0 + return + end + get_local $6 + get_local $8 + i32.sub + i32.const 64 + i32.gt_s + if + get_local $0 + get_local $1 + f64.add + return + end + f64.const 1 + set_local $7 + get_local $6 + i32.const 1533 + i32.gt_s + if + f64.const 5260135901548373507240989e186 + set_local $7 + get_local $0 + f64.const 1.90109156629516e-211 + f64.mul + set_local $0 + get_local $1 + f64.const 1.90109156629516e-211 + f64.mul + set_local $1 + else + get_local $8 + i32.const 573 + i32.lt_s + if + f64.const 1.90109156629516e-211 + set_local $7 + get_local $0 + f64.const 5260135901548373507240989e186 + f64.mul + set_local $0 + get_local $1 + f64.const 5260135901548373507240989e186 + f64.mul + set_local $1 + end + end + get_local $0 + get_local $0 + get_local $0 + f64.const 134217729 + f64.mul + tee_local $2 + f64.sub + get_local $2 + f64.add + tee_local $2 + f64.sub + set_local $4 + get_local $2 + get_local $2 + f64.mul + get_local $0 + get_local $0 + f64.mul + tee_local $0 + f64.sub + f64.const 2 + get_local $2 + f64.mul + get_local $4 + f64.add + get_local $4 + f64.mul + f64.add + set_local $11 + get_local $1 + get_local $1 + get_local $1 + f64.const 134217729 + f64.mul + tee_local $2 + f64.sub + get_local $2 + f64.add + tee_local $2 + f64.sub + set_local $4 + get_local $7 + get_local $2 + get_local $2 + f64.mul + get_local $1 + get_local $1 + f64.mul + tee_local $1 + f64.sub + f64.const 2 + get_local $2 + f64.mul + get_local $4 + f64.add + get_local $4 + f64.mul + f64.add + tee_local $2 + get_local $11 + f64.add + get_local $1 + f64.add + get_local $0 + f64.add + f64.sqrt + f64.mul ) - (func $std/libm/hypot (; 35 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (call $~lib/math/NativeMath.hypot - (get_local $0) - (get_local $1) - ) + (func $std/libm/hypot (; 35 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.hypot ) - (func $~lib/math/NativeMath.imul (; 36 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (f64.convert_s/i32 - (i32.mul - (i32.trunc_s/f64 - (get_local $0) - ) - (i32.trunc_s/f64 - (get_local $1) - ) - ) - ) + (func $~lib/math/NativeMath.imul (; 36 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + get_local $0 + i32.trunc_s/f64 + get_local $1 + i32.trunc_s/f64 + i32.mul + f64.convert_s/i32 ) - (func $std/libm/imul (; 37 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (call $~lib/math/NativeMath.imul - (get_local $0) - (get_local $1) - ) + (func $std/libm/imul (; 37 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.imul ) - (func $std/libm/log (; 38 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.log - (get_local $0) - ) + (func $std/libm/log (; 38 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.log ) - (func $~lib/math/NativeMath.log10 (; 39 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 39 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -3451,324 +2407,218 @@ (local $9 f64) (local $10 f64) (local $11 f64) - (if - (i32.eqz - (tee_local $3 - (i32.lt_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $5 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (i32.const 1048576) - ) - ) - ) - (set_local $3 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - ) - (if - (get_local $3) - (block - (if - (i64.eq - (i64.shl - (get_local $5) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $4 - (i32.const -54) - ) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $5 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (block - (if - (tee_local $3 - (i32.eq - (get_local $1) - (i32.const 1072693248) - ) - ) - (set_local $3 - (i64.eq - (i64.shl - (get_local $5) - (i64.const 32) - ) - (i64.const 0) - ) - ) - ) - (if - (get_local $3) - (return - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.sub - (i32.shr_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 614242) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $0 - (f64.mul - (tee_local $8 - (f64.mul - (tee_local $7 - (f64.div - (tee_local $2 - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.shl - (i64.extend_u/i32 - (i32.add - (i32.and - (get_local $1) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (i64.const 32) - ) - (i64.and - (get_local $5) - (i64.const 4294967295) - ) - ) - ) - (f64.const 1) - ) - ) - (f64.add - (f64.const 2) - (get_local $2) - ) - ) - ) - (get_local $7) - ) - ) - (get_local $8) - ) - ) - (set_local $9 - (f64.mul - (tee_local $11 - (f64.convert_s/i32 - (get_local $4) - ) - ) - (f64.const 0.30102999566361177) - ) - ) - (f64.add - (f64.add - (tee_local $2 - (f64.add - (f64.add - (f64.mul - (get_local $11) - (f64.const 3.694239077158931e-13) - ) - (f64.mul - (f64.add - (tee_local $0 - (f64.add - (f64.sub - (f64.sub - (get_local $2) - (tee_local $6 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (f64.sub - (get_local $2) - (tee_local $10 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $2) - ) - (get_local $2) - ) - ) - ) - ) - (i64.const -4294967296) - ) - ) - ) - ) - (get_local $10) - ) - (f64.mul - (get_local $7) - (f64.add - (get_local $10) - (f64.add - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $0) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $0) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (get_local $6) - ) - (f64.const 2.5082946711645275e-11) - ) - ) - (f64.mul - (get_local $0) - (f64.const 0.4342944818781689) - ) - ) - ) - (f64.add - (f64.sub - (get_local $9) - (tee_local $0 - (f64.add - (get_local $9) - (tee_local $6 - (f64.mul - (get_local $6) - (f64.const 0.4342944818781689) - ) - ) - ) - ) - ) - (get_local $6) - ) - ) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $5 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 1048576 + i32.lt_u + tee_local $3 + i32.eqz + if + get_local $1 + i32.const 31 + i32.shr_u + set_local $3 + end + get_local $3 + if + get_local $5 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + i32.const -54 + set_local $4 + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + tee_local $5 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + else + get_local $1 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1072693248 + i32.eq + tee_local $3 + if + get_local $5 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + set_local $3 + end + get_local $3 + if + f64.const 0 + return + end + end + end + get_local $4 + get_local $1 + i32.const 614242 + i32.add + tee_local $1 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + i32.add + set_local $4 + get_local $1 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $5 + i64.const 4294967295 + i64.and + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub + tee_local $2 + f64.const 2 + get_local $2 + f64.add + f64.div + tee_local $7 + get_local $7 + f64.mul + tee_local $8 + get_local $8 + f64.mul + set_local $0 + get_local $4 + f64.convert_s/i32 + tee_local $11 + f64.const 0.30102999566361177 + f64.mul + set_local $9 + get_local $11 + f64.const 3.694239077158931e-13 + f64.mul + get_local $2 + get_local $2 + f64.const 0.5 + get_local $2 + f64.mul + get_local $2 + f64.mul + tee_local $10 + f64.sub + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $6 + f64.sub + get_local $10 + f64.sub + get_local $7 + get_local $10 + get_local $8 + f64.const 0.6666666666666735 + get_local $0 + f64.const 0.2857142874366239 + get_local $0 + f64.const 0.1818357216161805 + get_local $0 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $0 + f64.const 0.3999999999940942 + get_local $0 + f64.const 0.22222198432149784 + get_local $0 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + f64.mul + f64.add + tee_local $0 + get_local $6 + f64.add + f64.const 2.5082946711645275e-11 + f64.mul + f64.add + get_local $0 + f64.const 0.4342944818781689 + f64.mul + f64.add + tee_local $2 + get_local $9 + get_local $9 + get_local $6 + f64.const 0.4342944818781689 + f64.mul + tee_local $6 + f64.add + tee_local $0 + f64.sub + get_local $6 + f64.add + f64.add + get_local $0 + f64.add ) - (func $std/libm/log10 (; 40 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.log10 - (get_local $0) - ) + (func $std/libm/log10 (; 40 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.log10 ) - (func $std/libm/log1p (; 41 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.log1p - (get_local $0) - ) + (func $std/libm/log1p (; 41 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.log1p ) - (func $~lib/math/NativeMath.log2 (; 42 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 42 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -3778,325 +2628,220 @@ (local $7 f64) (local $8 f64) (local $9 f64) - (if - (i32.eqz - (tee_local $3 - (i32.lt_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $6 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (i32.const 1048576) - ) - ) - ) - (set_local $3 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - ) - (if - (get_local $3) - (block - (if - (i64.eq - (i64.shl - (get_local $6) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $5 - (i32.const -54) - ) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $6 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (block - (if - (tee_local $3 - (i32.eq - (get_local $1) - (i32.const 1072693248) - ) - ) - (set_local $3 - (i64.eq - (i64.shl - (get_local $6) - (i64.const 32) - ) - (i64.const 0) - ) - ) - ) - (if - (get_local $3) - (return - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.sub - (i32.shr_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 614242) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $0 - (f64.mul - (tee_local $7 - (f64.mul - (tee_local $4 - (f64.div - (tee_local $2 - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.shl - (i64.extend_u/i32 - (i32.add - (i32.and - (get_local $1) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (i64.const 32) - ) - (i64.and - (get_local $6) - (i64.const 4294967295) - ) - ) - ) - (f64.const 1) - ) - ) - (f64.add - (f64.const 2) - (get_local $2) - ) - ) - ) - (get_local $4) - ) - ) - (get_local $7) - ) - ) - (set_local $4 - (f64.add - (f64.mul - (f64.add - (tee_local $0 - (f64.add - (f64.sub - (f64.sub - (get_local $2) - (tee_local $9 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (f64.sub - (get_local $2) - (tee_local $8 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $2) - ) - (get_local $2) - ) - ) - ) - ) - (i64.const -4294967296) - ) - ) - ) - ) - (get_local $8) - ) - (f64.mul - (get_local $4) - (f64.add - (get_local $8) - (f64.add - (f64.mul - (get_local $7) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $0) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $0) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (get_local $9) - ) - (f64.const 1.6751713164886512e-10) - ) - (f64.mul - (get_local $0) - (f64.const 1.4426950407214463) - ) - ) - ) - (set_local $0 - (f64.add - (tee_local $7 - (f64.convert_s/i32 - (get_local $5) - ) - ) - (tee_local $2 - (f64.mul - (get_local $9) - (f64.const 1.4426950407214463) - ) - ) - ) - ) - (f64.add - (tee_local $4 - (f64.add - (get_local $4) - (f64.add - (f64.sub - (get_local $7) - (get_local $0) - ) - (get_local $2) - ) - ) - ) - (tee_local $2 - (get_local $0) - ) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $6 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 1048576 + i32.lt_u + tee_local $3 + i32.eqz + if + get_local $1 + i32.const 31 + i32.shr_u + set_local $3 + end + get_local $3 + if + get_local $6 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + i32.const -54 + set_local $5 + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + tee_local $6 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + else + get_local $1 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1072693248 + i32.eq + tee_local $3 + if + get_local $6 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + set_local $3 + end + get_local $3 + if + f64.const 0 + return + end + end + end + get_local $5 + get_local $1 + i32.const 614242 + i32.add + tee_local $1 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + i32.add + set_local $5 + get_local $1 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $6 + i64.const 4294967295 + i64.and + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub + tee_local $2 + f64.const 2 + get_local $2 + f64.add + f64.div + tee_local $4 + get_local $4 + f64.mul + tee_local $7 + get_local $7 + f64.mul + set_local $0 + get_local $2 + get_local $2 + f64.const 0.5 + get_local $2 + f64.mul + get_local $2 + f64.mul + tee_local $8 + f64.sub + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $9 + f64.sub + get_local $8 + f64.sub + get_local $4 + get_local $8 + get_local $7 + f64.const 0.6666666666666735 + get_local $0 + f64.const 0.2857142874366239 + get_local $0 + f64.const 0.1818357216161805 + get_local $0 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $0 + f64.const 0.3999999999940942 + get_local $0 + f64.const 0.22222198432149784 + get_local $0 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + f64.mul + f64.add + tee_local $0 + get_local $9 + f64.add + f64.const 1.6751713164886512e-10 + f64.mul + get_local $0 + f64.const 1.4426950407214463 + f64.mul + f64.add + set_local $4 + get_local $5 + f64.convert_s/i32 + tee_local $7 + get_local $9 + f64.const 1.4426950407214463 + f64.mul + tee_local $2 + f64.add + set_local $0 + get_local $4 + get_local $7 + get_local $0 + f64.sub + get_local $2 + f64.add + f64.add + tee_local $4 + get_local $0 + tee_local $2 + f64.add ) - (func $std/libm/log2 (; 43 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.log2 - (get_local $0) - ) + (func $std/libm/log2 (; 43 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.log2 ) - (func $std/libm/max (; 44 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (f64.max - (get_local $0) - (get_local $1) - ) + (func $std/libm/max (; 44 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + get_local $0 + get_local $1 + f64.max ) - (func $std/libm/min (; 45 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (f64.min - (get_local $0) - (get_local $1) - ) + (func $std/libm/min (; 45 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + get_local $0 + get_local $1 + f64.min ) - (func $~lib/math/NativeMath.pow (; 46 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 46 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -4116,1683 +2861,1155 @@ (local $18 i32) (local $19 f64) (local $20 i32) - (block $folding-inner1 - (block $folding-inner0 - (set_local $18 - (i32.wrap/i64 - (i64.shr_u - (tee_local $17 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $20 - (i32.wrap/i64 - (get_local $17) - ) - ) - (set_local $4 - (i32.and - (get_local $18) - (i32.const 2147483647) - ) - ) - (if - (i32.eqz - (i32.or - (tee_local $12 - (i32.and - (tee_local $11 - (i32.wrap/i64 - (i64.shr_u - (tee_local $17 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.const 32) - ) - ) - ) - (i32.const 2147483647) - ) - ) - (tee_local $7 - (i32.wrap/i64 - (get_local $17) - ) - ) - ) - ) - (return - (f64.const 1) - ) - ) - (if - (i32.eqz - (tee_local $8 - (i32.gt_s - (get_local $4) - (i32.const 2146435072) - ) - ) - ) - (if - (tee_local $8 - (i32.eq - (get_local $4) - (i32.const 2146435072) - ) - ) - (set_local $8 - (i32.ne - (get_local $20) - (i32.const 0) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $8) - ) - (set_local $8 - (i32.gt_s - (get_local $12) - (i32.const 2146435072) - ) - ) - ) - (if - (i32.eqz - (get_local $8) - ) - (if - (tee_local $8 - (i32.eq - (get_local $12) - (i32.const 2146435072) - ) - ) - (set_local $8 - (i32.ne - (get_local $7) - (i32.const 0) - ) - ) - ) - ) - (if - (get_local $8) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (if - (i32.lt_s - (get_local $18) - (i32.const 0) - ) - (if - (i32.ge_s - (get_local $12) - (i32.const 1128267776) - ) - (set_local $16 - (i32.const 2) - ) - (if - (i32.ge_s - (get_local $12) - (i32.const 1072693248) - ) - (block - (set_local $8 - (i32.sub - (select - (i32.const 52) - (i32.const 20) - (tee_local $5 - (i32.gt_s - (tee_local $10 - (i32.sub - (i32.shr_s - (get_local $12) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (i32.const 20) - ) - ) - ) - (get_local $10) - ) - ) - (if - (i32.eq - (i32.shl - (tee_local $5 - (i32.shr_s - (tee_local $10 - (select - (get_local $7) - (get_local $12) - (get_local $5) - ) - ) - (get_local $8) - ) - ) - (get_local $8) - ) - (get_local $10) - ) - (set_local $16 - (i32.sub - (i32.const 2) - (i32.and - (get_local $5) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $7) - ) - (block - (if - (i32.eq - (get_local $12) - (i32.const 2146435072) - ) - (if - (i32.or - (i32.sub - (get_local $4) - (i32.const 1072693248) - ) - (get_local $20) - ) - (if - (i32.ge_s - (get_local $4) - (i32.const 1072693248) - ) - (block - (if - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (set_local $1 - (f64.const 0) - ) - ) - (return - (get_local $1) - ) - ) - (return - (tee_local $0 - (if (result f64) - (i32.ge_s - (get_local $11) - (i32.const 0) - ) - (f64.const 0) - (f64.neg - (get_local $1) - ) - ) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 1072693248) - ) - (block - (if - (i32.ge_s - (get_local $11) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 1073741824) - ) - (return - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 1071644672) - ) - (if - (i32.ge_s - (get_local $18) - (i32.const 0) - ) - (return - (f64.sqrt - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f64.abs - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $20) - ) - (block - (if - (i32.eqz - (tee_local $5 - (i32.eq - (get_local $4) - (i32.const 2146435072) - ) - ) - ) - (set_local $5 - (i32.eqz - (get_local $4) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (set_local $5 - (i32.eq - (get_local $4) - (i32.const 1072693248) - ) - ) - ) - (if - (get_local $5) - (block - (if - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (set_local $2 - (f64.div - (f64.const 1) - (get_local $2) - ) - ) - ) - (if - (i32.lt_s - (get_local $18) - (i32.const 0) - ) - (if - (i32.or - (i32.sub - (get_local $4) - (i32.const 1072693248) - ) - (get_local $16) - ) - (if - (i32.eq - (get_local $16) - (i32.const 1) - ) - (set_local $2 - (f64.neg - (get_local $2) - ) - ) - ) - (set_local $2 - (f64.div - (tee_local $0 - (f64.sub - (get_local $2) - (get_local $2) - ) - ) - (get_local $0) - ) - ) - ) - ) - (return - (get_local $2) - ) - ) - ) - ) - ) - (set_local $13 - (f64.const 1) - ) - (if - (i32.lt_s - (get_local $18) - (i32.const 0) - ) - (block - (if - (i32.eqz - (get_local $16) - ) - (return - (f64.div - (tee_local $0 - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $16) - (i32.const 1) - ) - (set_local $13 - (f64.const -1) - ) - ) - ) - ) - (set_local $2 - (if (result f64) - (i32.gt_s - (get_local $12) - (i32.const 1105199104) - ) - (block (result f64) - (if - (i32.gt_s - (get_local $12) - (i32.const 1139802112) - ) - (block - (if - (i32.le_s - (get_local $4) - (i32.const 1072693247) - ) - (return - (tee_local $0 - (if (result f64) - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (f64.const inf) - (f64.const 0) - ) - ) - ) - ) - (if - (i32.ge_s - (get_local $4) - (i32.const 1072693248) - ) - (return - (tee_local $0 - (if (result f64) - (i32.gt_s - (get_local $11) - (i32.const 0) - ) - (f64.const inf) - (f64.const 0) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 1072693247) - ) - (return - (tee_local $0 - (if (result f64) - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 1072693248) - ) - (return - (tee_local $0 - (if (result f64) - (i32.gt_s - (get_local $11) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - ) - (set_local $0 - (f64.mul - (f64.mul - (tee_local $3 - (f64.sub - (get_local $2) - (f64.const 1) - ) - ) - (get_local $3) - ) - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $3) - (f64.sub - (f64.const 0.3333333333333333) - (f64.mul - (get_local $3) - (f64.const 0.25) - ) - ) - ) - ) - ) - ) - (set_local $9 - (f64.add - (tee_local $15 - (f64.mul - (f64.const 1.4426950216293335) - (get_local $3) - ) - ) - (tee_local $6 - (f64.sub - (f64.mul - (get_local $3) - (f64.const 1.9259629911266175e-08) - ) - (f64.mul - (get_local $0) - (f64.const 1.4426950408889634) - ) - ) - ) - ) - ) - (f64.sub - (get_local $6) - (f64.sub - (tee_local $9 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $9) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $15) - ) - ) - ) - (block (result f64) - (set_local $7 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 1048576) - ) - (block - (set_local $7 - (i32.const -53) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (tee_local $2 - (f64.mul - (get_local $2) - (f64.const 9007199254740992) - ) - ) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.sub - (i32.shr_s - (get_local $4) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $4 - (i32.or - (tee_local $5 - (i32.and - (get_local $4) - (i32.const 1048575) - ) - ) - (i32.const 1072693248) - ) - ) - (set_local $10 - (if (result i32) - (i32.le_s - (get_local $5) - (i32.const 235662) - ) - (i32.const 0) - (if (result i32) - (i32.lt_s - (get_local $5) - (i32.const 767610) - ) - (i32.const 1) - (block (result i32) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const -1048576) - ) - ) - (i32.const 0) - ) - ) - ) - ) - (set_local $9 - (f64.mul - (tee_local $15 - (f64.sub - (tee_local $2 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $2) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - ) - (tee_local $0 - (select - (f64.const 1.5) - (f64.const 1) - (get_local $10) - ) - ) - ) - ) - (tee_local $6 - (f64.div - (f64.const 1) - (f64.add - (get_local $2) - (get_local $0) - ) - ) - ) - ) - ) - (set_local $2 - (f64.sub - (get_local $2) - (f64.sub - (tee_local $3 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.add - (i32.add - (i32.or - (i32.shr_s - (get_local $4) - (i32.const 1) - ) - (i32.const 536870912) - ) - (i32.const 524288) - ) - (i32.shl - (get_local $10) - (i32.const 18) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (get_local $0) - ) - ) - ) - (set_local $19 - (f64.mul - (f64.mul - (tee_local $14 - (f64.mul - (get_local $9) - (get_local $9) - ) - ) - (get_local $14) - ) - (f64.add - (f64.const 0.5999999999999946) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.4285714285785502) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.33333332981837743) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.272728123808534) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.23066074577556175) - (f64.mul - (get_local $14) - (f64.const 0.20697501780033842) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $0 - (f64.mul - (get_local $6) - (f64.sub - (f64.sub - (get_local $15) - (f64.mul - (tee_local $6 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $9) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $3) - ) - ) - (f64.mul - (get_local $6) - (get_local $2) - ) - ) - ) - ) - (set_local $3 - (f64.add - (f64.add - (f64.const 3) - (tee_local $14 - (f64.mul - (get_local $6) - (get_local $6) - ) - ) - ) - (tee_local $19 - (f64.add - (get_local $19) - (f64.mul - (get_local $0) - (f64.add - (get_local $6) - (get_local $9) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f64.sub - (get_local $19) - (f64.sub - (f64.sub - (tee_local $3 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $3) - ) - (i64.const -4294967296) - ) - ) - ) - (f64.const 3) - ) - (get_local $14) - ) - ) - ) - (set_local $0 - (f64.add - (tee_local $15 - (f64.mul - (get_local $6) - (get_local $3) - ) - ) - (tee_local $6 - (f64.add - (f64.mul - (get_local $0) - (get_local $3) - ) - (f64.mul - (get_local $2) - (get_local $9) - ) - ) - ) - ) - ) - (set_local $6 - (f64.sub - (get_local $6) - (f64.sub - (tee_local $0 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $15) - ) - ) - ) - (set_local $9 - (f64.add - (f64.add - (f64.add - (tee_local $19 - (f64.mul - (f64.const 0.9617967009544373) - (get_local $0) - ) - ) - (tee_local $2 - (f64.add - (f64.add - (f64.mul - (f64.const -7.028461650952758e-09) - (get_local $0) - ) - (f64.mul - (get_local $6) - (f64.const 0.9617966939259756) - ) - ) - (select - (f64.const 1.350039202129749e-08) - (f64.const 0) - (get_local $10) - ) - ) - ) - ) - (tee_local $0 - (select - (f64.const 0.5849624872207642) - (f64.const 0) - (get_local $10) - ) - ) - ) - (tee_local $3 - (f64.convert_s/i32 - (get_local $7) - ) - ) - ) - ) - (f64.sub - (get_local $2) - (f64.sub - (f64.sub - (f64.sub - (tee_local $9 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $9) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $3) - ) - (get_local $0) - ) - (get_local $19) - ) - ) - ) - ) - ) - (set_local $8 - (i32.wrap/i64 - (tee_local $17 - (i64.reinterpret/f64 - (tee_local $2 - (f64.add - (tee_local $6 - (f64.add - (f64.mul - (f64.sub - (get_local $1) - (tee_local $0 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $1) - ) - (i64.const -4294967296) - ) - ) - ) - ) - (get_local $9) - ) - (f64.mul - (get_local $1) - (get_local $2) - ) - ) - ) - (tee_local $0 - (f64.mul - (get_local $0) - (get_local $9) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.ge_s - (tee_local $5 - (i32.wrap/i64 - (i64.shr_u - (get_local $17) - (i64.const 32) - ) - ) - ) - (i32.const 1083179008) - ) - (block - (br_if $folding-inner1 - (i32.or - (i32.sub - (get_local $5) - (i32.const 1083179008) - ) - (get_local $8) - ) - ) - (br_if $folding-inner1 - (f64.gt - (f64.add - (get_local $6) - (f64.const 8.008566259537294e-17) - ) - (f64.sub - (get_local $2) - (get_local $0) - ) - ) - ) - ) - (if - (i32.ge_s - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - (i32.const 1083231232) - ) - (block - (br_if $folding-inner0 - (i32.or - (i32.sub - (get_local $5) - (i32.const -1064252416) - ) - (get_local $8) - ) - ) - (br_if $folding-inner0 - (f64.le - (get_local $6) - (f64.sub - (get_local $2) - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $10 - (i32.sub - (i32.shr_s - (tee_local $8 - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $7 - (i32.const 0) - ) - (if - (i32.gt_s - (get_local $8) - (i32.const 1071644672) - ) - (block - (set_local $10 - (i32.sub - (i32.shr_s - (i32.and - (tee_local $7 - (i32.add - (get_local $5) - (i32.shr_s - (i32.const 1048576) - (i32.add - (get_local $10) - (i32.const 1) - ) - ) - ) - ) - (i32.const 2147483647) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $3 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.and - (get_local $7) - (i32.xor - (i32.shr_s - (i32.const 1048575) - (get_local $10) - ) - (i32.const -1) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $7 - (i32.shr_s - (i32.or - (i32.and - (get_local $7) - (i32.const 1048575) - ) - (i32.const 1048576) - ) - (i32.sub - (i32.const 20) - (get_local $10) - ) - ) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (set_local $7 - (i32.sub - (i32.const 0) - (get_local $7) - ) - ) - ) - (set_local $0 - (f64.sub - (get_local $0) - (get_local $3) - ) - ) - ) - ) - (set_local $3 - (f64.mul - (tee_local $2 - (f64.add - (tee_local $15 - (f64.mul - (tee_local $3 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (f64.add - (get_local $6) - (get_local $0) - ) - ) - (i64.const -4294967296) - ) - ) - ) - (f64.const 0.6931471824645996) - ) - ) - (tee_local $6 - (f64.add - (f64.mul - (f64.sub - (get_local $6) - (f64.sub - (get_local $3) - (get_local $0) - ) - ) - (f64.const 0.6931471805599453) - ) - (f64.mul - (get_local $3) - (f64.const -1.904654299957768e-09) - ) - ) - ) - ) - ) - (get_local $2) - ) - ) - (set_local $2 - (if (result f64) - (i32.le_s - (i32.shr_s - (tee_local $5 - (i32.add - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (tee_local $2 - (f64.sub - (f64.const 1) - (f64.sub - (f64.sub - (f64.div - (f64.mul - (get_local $2) - (tee_local $9 - (f64.sub - (get_local $2) - (f64.mul - (get_local $3) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $3) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $3) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $3) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $3) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.sub - (get_local $9) - (f64.const 2) - ) - ) - (f64.add - (tee_local $0 - (f64.sub - (get_local $6) - (f64.sub - (get_local $2) - (get_local $15) - ) - ) - ) - (f64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (get_local $2) - ) - ) - ) - ) - (i64.const 32) - ) - ) - (i32.shl - (get_local $7) - (i32.const 20) - ) - ) - ) - (i32.const 20) - ) - (i32.const 0) - ) - (call $~lib/math/NativeMath.scalbn - (get_local $2) - (get_local $7) - ) - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $2) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $5) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (return - (f64.mul - (get_local $13) - (get_local $2) - ) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) + block $folding-inner1 + block $folding-inner0 + get_local $0 + i64.reinterpret/f64 + tee_local $17 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $18 + get_local $17 + i32.wrap/i64 + set_local $20 + get_local $18 + i32.const 2147483647 + i32.and + set_local $4 + get_local $1 + i64.reinterpret/f64 + tee_local $17 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $11 + i32.const 2147483647 + i32.and + tee_local $12 + get_local $17 + i32.wrap/i64 + tee_local $7 + i32.or + i32.eqz + if + f64.const 1 + return + end + get_local $4 + i32.const 2146435072 + i32.gt_s + tee_local $8 + i32.eqz + if + get_local $4 + i32.const 2146435072 + i32.eq + tee_local $8 + if + get_local $20 + i32.const 0 + i32.ne + set_local $8 + end + end + get_local $8 + i32.eqz + if + get_local $12 + i32.const 2146435072 + i32.gt_s + set_local $8 + end + get_local $8 + i32.eqz + if + get_local $12 + i32.const 2146435072 + i32.eq + tee_local $8 + if + get_local $7 + i32.const 0 + i32.ne + set_local $8 + end + end + get_local $8 + if + get_local $0 + get_local $1 + f64.add + return + end + get_local $18 + i32.const 0 + i32.lt_s + if + get_local $12 + i32.const 1128267776 + i32.ge_s + if + i32.const 2 + set_local $16 + else + get_local $12 + i32.const 1072693248 + i32.ge_s + if + i32.const 52 + i32.const 20 + get_local $12 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + tee_local $10 + i32.const 20 + i32.gt_s + tee_local $5 + select + get_local $10 + i32.sub + set_local $8 + get_local $7 + get_local $12 + get_local $5 + select + tee_local $10 + get_local $8 + i32.shr_s + tee_local $5 + get_local $8 + i32.shl + get_local $10 + i32.eq + if + i32.const 2 + get_local $5 + i32.const 1 + i32.and + i32.sub + set_local $16 + end + end + end + end + get_local $7 + i32.eqz + if + get_local $12 + i32.const 2146435072 + i32.eq + if + get_local $4 + i32.const 1072693248 + i32.sub + get_local $20 + i32.or + if + get_local $4 + i32.const 1072693248 + i32.ge_s + if + get_local $11 + i32.const 0 + i32.lt_s + if + f64.const 0 + set_local $1 + end + get_local $1 + return + else + get_local $11 + i32.const 0 + i32.ge_s + if (result f64) + f64.const 0 + else + get_local $1 + f64.neg + end + tee_local $0 + return + end + unreachable + else + f64.const nan:0x8000000000000 + return + end + unreachable + end + get_local $12 + i32.const 1072693248 + i32.eq + if + get_local $11 + i32.const 0 + i32.ge_s + if + get_local $0 + return + end + f64.const 1 + get_local $0 + f64.div + return + end + get_local $11 + i32.const 1073741824 + i32.eq + if + get_local $0 + get_local $0 + f64.mul + return + end + get_local $11 + i32.const 1071644672 + i32.eq + if + get_local $18 + i32.const 0 + i32.ge_s + if + get_local $0 + f64.sqrt + return + end + end + end + get_local $0 + f64.abs + set_local $2 + get_local $20 + i32.eqz + if + get_local $4 + i32.const 2146435072 + i32.eq + tee_local $5 + i32.eqz + if + get_local $4 + i32.eqz + set_local $5 + end + get_local $5 + i32.eqz + if + get_local $4 + i32.const 1072693248 + i32.eq + set_local $5 + end + get_local $5 + if + get_local $11 + i32.const 0 + i32.lt_s + if + f64.const 1 + get_local $2 + f64.div + set_local $2 + end + get_local $18 + i32.const 0 + i32.lt_s + if + get_local $4 + i32.const 1072693248 + i32.sub + get_local $16 + i32.or + if + get_local $16 + i32.const 1 + i32.eq + if + get_local $2 + f64.neg + set_local $2 + end + else + get_local $2 + get_local $2 + f64.sub + tee_local $0 + get_local $0 + f64.div + set_local $2 + end + end + get_local $2 + return + end + end + f64.const 1 + set_local $13 + get_local $18 + i32.const 0 + i32.lt_s + if + get_local $16 + i32.eqz + if + get_local $0 + get_local $0 + f64.sub + tee_local $0 + get_local $0 + f64.div + return + end + get_local $16 + i32.const 1 + i32.eq + if + f64.const -1 + set_local $13 + end + end + get_local $12 + i32.const 1105199104 + i32.gt_s + if (result f64) + get_local $12 + i32.const 1139802112 + i32.gt_s + if + get_local $4 + i32.const 1072693247 + i32.le_s + if + get_local $11 + i32.const 0 + i32.lt_s + if (result f64) + f64.const inf + else + f64.const 0 + end + tee_local $0 + return + end + get_local $4 + i32.const 1072693248 + i32.ge_s + if + get_local $11 + i32.const 0 + i32.gt_s + if (result f64) + f64.const inf + else + f64.const 0 + end + tee_local $0 + return + end + end + get_local $4 + i32.const 1072693247 + i32.lt_s + if + get_local $11 + i32.const 0 + i32.lt_s + if (result f64) + get_local $13 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $13 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + tee_local $0 + return + end + get_local $4 + i32.const 1072693248 + i32.gt_s + if + get_local $11 + i32.const 0 + i32.gt_s + if (result f64) + get_local $13 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $13 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + tee_local $0 + return + end + get_local $2 + f64.const 1 + f64.sub + tee_local $3 + get_local $3 + f64.mul + f64.const 0.5 + get_local $3 + f64.const 0.3333333333333333 + get_local $3 + f64.const 0.25 + f64.mul + f64.sub + f64.mul + f64.sub + f64.mul + set_local $0 + f64.const 1.4426950216293335 + get_local $3 + f64.mul + tee_local $15 + get_local $3 + f64.const 1.9259629911266175e-08 + f64.mul + get_local $0 + f64.const 1.4426950408889634 + f64.mul + f64.sub + tee_local $6 + f64.add + set_local $9 + get_local $6 + get_local $9 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $9 + get_local $15 + f64.sub + f64.sub + else + i32.const 0 + set_local $7 + get_local $4 + i32.const 1048576 + i32.lt_s + if + i32.const -53 + set_local $7 + get_local $2 + f64.const 9007199254740992 + f64.mul + tee_local $2 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $4 + end + get_local $7 + get_local $4 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $7 + get_local $4 + i32.const 1048575 + i32.and + tee_local $5 + i32.const 1072693248 + i32.or + set_local $4 + get_local $5 + i32.const 235662 + i32.le_s + if (result i32) + i32.const 0 + else + get_local $5 + i32.const 767610 + i32.lt_s + if (result i32) + i32.const 1 + else + get_local $7 + i32.const 1 + i32.add + set_local $7 + get_local $4 + i32.const -1048576 + i32.add + set_local $4 + i32.const 0 + end + end + set_local $10 + get_local $2 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $4 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + tee_local $2 + f64.const 1.5 + f64.const 1 + get_local $10 + select + tee_local $0 + f64.sub + tee_local $15 + f64.const 1 + get_local $2 + get_local $0 + f64.add + f64.div + tee_local $6 + f64.mul + set_local $9 + get_local $2 + get_local $4 + i32.const 1 + i32.shr_s + i32.const 536870912 + i32.or + i32.const 524288 + i32.add + get_local $10 + i32.const 18 + i32.shl + i32.add + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + tee_local $3 + get_local $0 + f64.sub + f64.sub + set_local $2 + get_local $9 + get_local $9 + f64.mul + tee_local $14 + get_local $14 + f64.mul + f64.const 0.5999999999999946 + get_local $14 + f64.const 0.4285714285785502 + get_local $14 + f64.const 0.33333332981837743 + get_local $14 + f64.const 0.272728123808534 + get_local $14 + f64.const 0.23066074577556175 + get_local $14 + f64.const 0.20697501780033842 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $19 + get_local $6 + get_local $15 + get_local $9 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $6 + get_local $3 + f64.mul + f64.sub + get_local $6 + get_local $2 + f64.mul + f64.sub + f64.mul + set_local $0 + f64.const 3 + get_local $6 + get_local $6 + f64.mul + tee_local $14 + f64.add + get_local $19 + get_local $0 + get_local $6 + get_local $9 + f64.add + f64.mul + f64.add + tee_local $19 + f64.add + set_local $3 + get_local $19 + get_local $3 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $3 + f64.const 3 + f64.sub + get_local $14 + f64.sub + f64.sub + set_local $2 + get_local $6 + get_local $3 + f64.mul + tee_local $15 + get_local $0 + get_local $3 + f64.mul + get_local $2 + get_local $9 + f64.mul + f64.add + tee_local $6 + f64.add + set_local $0 + get_local $6 + get_local $0 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $0 + get_local $15 + f64.sub + f64.sub + set_local $6 + f64.const 0.9617967009544373 + get_local $0 + f64.mul + tee_local $19 + f64.const -7.028461650952758e-09 + get_local $0 + f64.mul + get_local $6 + f64.const 0.9617966939259756 + f64.mul + f64.add + f64.const 1.350039202129749e-08 + f64.const 0 + get_local $10 + select + f64.add + tee_local $2 + f64.add + f64.const 0.5849624872207642 + f64.const 0 + get_local $10 + select + tee_local $0 + f64.add + get_local $7 + f64.convert_s/i32 + tee_local $3 + f64.add + set_local $9 + get_local $2 + get_local $9 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $9 + get_local $3 + f64.sub + get_local $0 + f64.sub + get_local $19 + f64.sub + f64.sub + end + set_local $2 + get_local $1 + get_local $1 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $0 + f64.sub + get_local $9 + f64.mul + get_local $1 + get_local $2 + f64.mul + f64.add + tee_local $6 + get_local $0 + get_local $9 + f64.mul + tee_local $0 + f64.add + tee_local $2 + i64.reinterpret/f64 + tee_local $17 + i32.wrap/i64 + set_local $8 + get_local $17 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $5 + i32.const 1083179008 + i32.ge_s + if + get_local $5 + i32.const 1083179008 + i32.sub + get_local $8 + i32.or + br_if $folding-inner1 + get_local $6 + f64.const 8.008566259537294e-17 + f64.add + get_local $2 + get_local $0 + f64.sub + f64.gt + br_if $folding-inner1 + else + get_local $5 + i32.const 2147483647 + i32.and + i32.const 1083231232 + i32.ge_s + if + get_local $5 + i32.const -1064252416 + i32.sub + get_local $8 + i32.or + br_if $folding-inner0 + get_local $6 + get_local $2 + get_local $0 + f64.sub + f64.le + br_if $folding-inner0 + end + end + get_local $5 + i32.const 2147483647 + i32.and + tee_local $8 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $10 + i32.const 0 + set_local $7 + get_local $8 + i32.const 1071644672 + i32.gt_s + if + get_local $5 + i32.const 1048576 + get_local $10 + i32.const 1 + i32.add + i32.shr_s + i32.add + tee_local $7 + i32.const 2147483647 + i32.and + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $10 + get_local $7 + i32.const 1048575 + get_local $10 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $3 + get_local $7 + i32.const 1048575 + i32.and + i32.const 1048576 + i32.or + i32.const 20 + get_local $10 + i32.sub + i32.shr_s + set_local $7 + get_local $5 + i32.const 0 + i32.lt_s + if + i32.const 0 + get_local $7 + i32.sub + set_local $7 + end + get_local $0 + get_local $3 + f64.sub + set_local $0 + end + get_local $6 + get_local $0 + f64.add + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $3 + f64.const 0.6931471824645996 + f64.mul + tee_local $15 + get_local $6 + get_local $3 + get_local $0 + f64.sub + f64.sub + f64.const 0.6931471805599453 + f64.mul + get_local $3 + f64.const -1.904654299957768e-09 + f64.mul + f64.add + tee_local $6 + f64.add + tee_local $2 + get_local $2 + f64.mul + set_local $3 + f64.const 1 + get_local $2 + get_local $2 + get_local $3 + f64.const 0.16666666666666602 + get_local $3 + f64.const -2.7777777777015593e-03 + get_local $3 + f64.const 6.613756321437934e-05 + get_local $3 + f64.const -1.6533902205465252e-06 + get_local $3 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + tee_local $9 + f64.mul + get_local $9 + f64.const 2 + f64.sub + f64.div + get_local $6 + get_local $2 + get_local $15 + f64.sub + f64.sub + tee_local $0 + get_local $2 + get_local $0 + f64.mul + f64.add + f64.sub + get_local $2 + f64.sub + f64.sub + tee_local $2 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + get_local $7 + i32.const 20 + i32.shl + i32.add + tee_local $5 + i32.const 20 + i32.shr_s + i32.const 0 + i32.le_s + if (result f64) + get_local $2 + get_local $7 + call $~lib/math/NativeMath.scalbn + else + get_local $2 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $5 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + end + set_local $2 + get_local $13 + get_local $2 + f64.mul + return + end + get_local $13 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + get_local $13 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul ) - (func $std/libm/pow (; 47 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (call $~lib/math/NativeMath.pow - (get_local $0) - (get_local $1) - ) + (func $std/libm/pow (; 47 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.pow ) - (func $std/libm/round (; 48 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (f64.copysign - (f64.floor - (f64.add - (get_local $0) - (f64.const 0.5) - ) - ) - (get_local $0) - ) + (func $std/libm/round (; 48 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + f64.const 0.5 + f64.add + f64.floor + get_local $0 + f64.copysign ) - (func $std/libm/sign (; 49 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (if - (f64.gt - (get_local $0) - (f64.const 0) - ) - (set_local $0 - (f64.const 1) - ) - (if - (f64.lt - (get_local $0) - (f64.const 0) - ) - (set_local $0 - (f64.const -1) - ) - ) - ) - (get_local $0) + (func $std/libm/sign (; 49 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + f64.const 0 + f64.gt + if + f64.const 1 + set_local $0 + else + get_local $0 + f64.const 0 + f64.lt + if + f64.const -1 + set_local $0 + end + end + get_local $0 ) - (func $~lib/math/NativeMath.sinh (; 50 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 50 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) (local $4 i64) - (set_local $1 - (f64.reinterpret/i64 - (tee_local $4 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 9223372036854775807) - ) - ) - ) - ) - (set_local $2 - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - (if - (i32.lt_u - (tee_local $3 - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) - (i32.const 1082535490) - ) - (block - (set_local $1 - (call $~lib/math/NativeMath.expm1 - (get_local $1) - ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 1072693248) - ) - (block - (if - (i32.lt_u - (get_local $3) - (i32.const 1045430272) - ) - (return - (get_local $0) - ) - ) - (return - (f64.mul - (get_local $2) - (f64.sub - (f64.mul - (f64.const 2) - (get_local $1) - ) - (f64.div - (f64.mul - (get_local $1) - (get_local $1) - ) - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - (return - (f64.mul - (get_local $2) - (f64.add - (get_local $1) - (f64.div - (get_local $1) - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - (set_local $0 - (f64.mul - (f64.const 2) - (get_local $2) - ) - ) - (set_local $1 - (f64.mul - (f64.mul - (call $~lib/math/NativeMath.exp - (f64.sub - (get_local $1) - (f64.const 1416.0996898839683) - ) - ) - (f64.const 2247116418577894884661631e283) - ) - (f64.const 2247116418577894884661631e283) - ) - ) - (f64.mul - (get_local $0) - (get_local $1) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + tee_local $4 + f64.reinterpret/i64 + set_local $1 + f64.const 0.5 + get_local $0 + f64.copysign + set_local $2 + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $3 + i32.const 1082535490 + i32.lt_u + if + get_local $1 + call $~lib/math/NativeMath.expm1 + set_local $1 + get_local $3 + i32.const 1072693248 + i32.lt_u + if + get_local $3 + i32.const 1045430272 + i32.lt_u + if + get_local $0 + return + end + get_local $2 + f64.const 2 + get_local $1 + f64.mul + get_local $1 + get_local $1 + f64.mul + get_local $1 + f64.const 1 + f64.add + f64.div + f64.sub + f64.mul + return + end + get_local $2 + get_local $1 + get_local $1 + get_local $1 + f64.const 1 + f64.add + f64.div + f64.add + f64.mul + return + end + f64.const 2 + get_local $2 + f64.mul + set_local $0 + get_local $1 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + f64.const 2247116418577894884661631e283 + f64.mul + f64.const 2247116418577894884661631e283 + f64.mul + set_local $1 + get_local $0 + get_local $1 + f64.mul ) - (func $std/libm/sinh (; 51 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.sinh - (get_local $0) - ) + (func $std/libm/sinh (; 51 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.sinh ) - (func $std/libm/sqrt (; 52 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (f64.sqrt - (get_local $0) - ) + (func $std/libm/sqrt (; 52 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + f64.sqrt ) - (func $~lib/math/NativeMath.tanh (; 53 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 53 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) - (set_local $1 - (f64.reinterpret/i64 - (tee_local $3 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 9223372036854775807) - ) - ) - ) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.const 32) - ) - ) - ) - (i32.const 1071748074) - ) - (set_local $1 - (if (result f64) - (i32.gt_u - (get_local $2) - (i32.const 1077149696) - ) - (f64.sub - (f64.const 1) - (f64.div - (f64.const 0) - (get_local $1) - ) - ) - (f64.sub - (f64.const 1) - (f64.div - (f64.const 2) - (f64.add - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const 2) - (get_local $1) - ) - ) - (f64.const 2) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $2) - (i32.const 1070618798) - ) - (set_local $1 - (f64.div - (tee_local $1 - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const 2) - (get_local $1) - ) - ) - ) - (f64.add - (get_local $1) - (f64.const 2) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1048576) - ) - (set_local $1 - (f64.div - (f64.neg - (tee_local $1 - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const -2) - (get_local $1) - ) - ) - ) - ) - (f64.add - (get_local $1) - (f64.const 2) - ) - ) - ) - ) - ) - ) - (f64.copysign - (get_local $1) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + tee_local $3 + f64.reinterpret/i64 + set_local $1 + get_local $3 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $2 + i32.const 1071748074 + i32.gt_u + if + get_local $2 + i32.const 1077149696 + i32.gt_u + if (result f64) + f64.const 1 + f64.const 0 + get_local $1 + f64.div + f64.sub + else + f64.const 1 + f64.const 2 + f64.const 2 + get_local $1 + f64.mul + call $~lib/math/NativeMath.expm1 + f64.const 2 + f64.add + f64.div + f64.sub + end + set_local $1 + else + get_local $2 + i32.const 1070618798 + i32.gt_u + if + f64.const 2 + get_local $1 + f64.mul + call $~lib/math/NativeMath.expm1 + tee_local $1 + get_local $1 + f64.const 2 + f64.add + f64.div + set_local $1 + else + get_local $2 + i32.const 1048576 + i32.ge_u + if + f64.const -2 + get_local $1 + f64.mul + call $~lib/math/NativeMath.expm1 + tee_local $1 + f64.neg + get_local $1 + f64.const 2 + f64.add + f64.div + set_local $1 + end + end + end + get_local $1 + get_local $0 + f64.copysign ) - (func $std/libm/tanh (; 54 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.tanh - (get_local $0) - ) + (func $std/libm/tanh (; 54 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + call $~lib/math/NativeMath.tanh ) - (func $std/libm/trunc (; 55 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (f64.trunc - (get_local $0) - ) + (func $std/libm/trunc (; 55 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + f64.trunc ) - (func $null (; 56 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 56 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/libm.untouched.wat b/tests/compiler/std/libm.untouched.wat index 01a6b00d..cc267e02 100644 --- a/tests/compiler/std/libm.untouched.wat +++ b/tests/compiler/std/libm.untouched.wat @@ -6,7 +6,7 @@ (type $Ff (func (param f64) (result f32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/math/NativeMath.E f64 (f64.const 2.718281828459045)) (global $std/libm/E f64 (f64.const 2.718281828459045)) @@ -72,82 +72,57 @@ (export "tanh" (func $std/libm/tanh)) (export "trunc" (func $std/libm/trunc)) (func $std/libm/abs (; 0 ;) (type $FF) (param $0 f64) (result f64) - (block $~lib/math/NativeMath.abs|inlined.0 (result f64) - (f64.abs - (get_local $0) - ) - ) + get_local $0 + f64.abs ) (func $~lib/math/R (; 1 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) - (set_local $1 - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.16666666666666666) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.3255658186224009) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.20121253213486293) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.04005553450067941) - (f64.mul - (get_local $0) - (f64.add - (f64.const 7.915349942898145e-04) - (f64.mul - (get_local $0) - (f64.const 3.479331075960212e-05) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f64.add - (f64.const 1) - (f64.mul - (get_local $0) - (f64.add - (f64.const -2.403394911734414) - (f64.mul - (get_local $0) - (f64.add - (f64.const 2.0209457602335057) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.6882839716054533) - (f64.mul - (get_local $0) - (f64.const 0.07703815055590194) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.div - (get_local $1) - (get_local $2) - ) + get_local $0 + f64.const 0.16666666666666666 + get_local $0 + f64.const -0.3255658186224009 + get_local $0 + f64.const 0.20121253213486293 + get_local $0 + f64.const -0.04005553450067941 + get_local $0 + f64.const 7.915349942898145e-04 + get_local $0 + f64.const 3.479331075960212e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $1 + f64.const 1 + get_local $0 + f64.const -2.403394911734414 + get_local $0 + f64.const 2.0209457602335057 + get_local $0 + f64.const -0.6882839716054533 + get_local $0 + f64.const 0.07703815055590194 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + set_local $2 + get_local $1 + get_local $2 + f64.div ) (func $~lib/math/NativeMath.acos (; 2 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) @@ -158,229 +133,152 @@ (local $6 f64) (local $7 f64) (local $8 f64) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (set_local $2 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1072693248) - ) - (block - (set_local $3 - (i32.wrap/i64 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $2) - (i32.const 1072693248) - ) - (get_local $3) - ) - (i32.const 0) - ) - (block - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.add - (f64.mul - (f64.const 2) - (f64.const 1.5707963267948966) - ) - (f64.promote/f32 - (f32.const 7.52316384526264e-37) - ) - ) - ) - ) - (return - (f64.const 0) - ) - ) - ) - (return - (f64.div - (f64.const 0) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1071644672) - ) - (block - (if - (i32.le_u - (get_local $2) - (i32.const 1012924416) - ) - (return - (f64.add - (f64.const 1.5707963267948966) - (f64.promote/f32 - (f32.const 7.52316384526264e-37) - ) - ) - ) - ) - (return - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (get_local $0) - (f64.sub - (f64.const 6.123233995736766e-17) - (f64.mul - (get_local $0) - (call $~lib/math/R - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (block - (set_local $6 - (f64.add - (f64.const 0.5) - (f64.mul - (get_local $0) - (f64.const 0.5) - ) - ) - ) - (set_local $4 - (f64.sqrt - (get_local $6) - ) - ) - (set_local $5 - (f64.sub - (f64.mul - (call $~lib/math/R - (get_local $6) - ) - (get_local $4) - ) - (f64.const 6.123233995736766e-17) - ) - ) - (return - (f64.mul - (f64.const 2) - (f64.sub - (f64.const 1.5707963267948966) - (f64.add - (get_local $4) - (get_local $5) - ) - ) - ) - ) - ) - ) - (set_local $6 - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $0) - (f64.const 0.5) - ) - ) - ) - (set_local $4 - (f64.sqrt - (get_local $6) - ) - ) - (set_local $7 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $4) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $8 - (f64.div - (f64.sub - (get_local $6) - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (f64.add - (get_local $4) - (get_local $7) - ) - ) - ) - (set_local $5 - (f64.add - (f64.mul - (call $~lib/math/R - (get_local $6) - ) - (get_local $4) - ) - (get_local $8) - ) - ) - (f64.mul - (f64.const 2) - (f64.add - (get_local $7) - (get_local $5) - ) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 1072693248 + i32.ge_u + if + get_local $0 + i64.reinterpret/f64 + i32.wrap/i64 + set_local $3 + get_local $2 + i32.const 1072693248 + i32.sub + get_local $3 + i32.or + i32.const 0 + i32.eq + if + get_local $1 + i32.const 31 + i32.shr_u + if + f64.const 2 + f64.const 1.5707963267948966 + f64.mul + f32.const 7.52316384526264e-37 + f64.promote/f32 + f64.add + return + end + f64.const 0 + return + end + f64.const 0 + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $2 + i32.const 1071644672 + i32.lt_u + if + get_local $2 + i32.const 1012924416 + i32.le_u + if + f64.const 1.5707963267948966 + f32.const 7.52316384526264e-37 + f64.promote/f32 + f64.add + return + end + f64.const 1.5707963267948966 + get_local $0 + f64.const 6.123233995736766e-17 + get_local $0 + get_local $0 + get_local $0 + f64.mul + call $~lib/math/R + f64.mul + f64.sub + f64.sub + f64.sub + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + f64.const 0.5 + get_local $0 + f64.const 0.5 + f64.mul + f64.add + set_local $6 + get_local $6 + f64.sqrt + set_local $4 + get_local $6 + call $~lib/math/R + get_local $4 + f64.mul + f64.const 6.123233995736766e-17 + f64.sub + set_local $5 + f64.const 2 + f64.const 1.5707963267948966 + get_local $4 + get_local $5 + f64.add + f64.sub + f64.mul + return + end + f64.const 0.5 + get_local $0 + f64.const 0.5 + f64.mul + f64.sub + set_local $6 + get_local $6 + f64.sqrt + set_local $4 + get_local $4 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $7 + get_local $6 + get_local $7 + get_local $7 + f64.mul + f64.sub + get_local $4 + get_local $7 + f64.add + f64.div + set_local $8 + get_local $6 + call $~lib/math/R + get_local $4 + f64.mul + get_local $8 + f64.add + set_local $5 + f64.const 2 + get_local $7 + get_local $5 + f64.add + f64.mul ) (func $std/libm/acos (; 3 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.acos - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.acos ) (func $~lib/math/NativeMath.log1p (; 4 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -398,340 +296,234 @@ (local $13 f64) (local $14 f64) (local $15 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $3 - (i32.const 1) - ) - (set_local $4 - (f64.const 0) - ) - (set_local $5 - (f64.const 0) - ) - (if - (if (result i32) - (tee_local $6 - (i32.lt_u - (get_local $2) - (i32.const 1071284858) - ) - ) - (get_local $6) - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (block - (if - (i32.ge_u - (get_local $2) - (i32.const -1074790400) - ) - (block - (if - (f64.eq - (get_local $0) - (f64.const -1) - ) - (return - (f64.div - (get_local $0) - (f64.const 0) - ) - ) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - ) - (if - (i32.lt_u - (i32.shl - (get_local $2) - (i32.const 1) - ) - (i32.shl - (i32.const 1017118720) - (i32.const 1) - ) - ) - (return - (get_local $0) - ) - ) - (if - (i32.le_u - (get_local $2) - (i32.const -1076707644) - ) - (block - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (f64.const 0) - ) - (set_local $5 - (get_local $0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - ) - ) - (if - (get_local $3) - (block - (set_local $1 - (i64.reinterpret/f64 - (f64.add - (f64.const 1) - (get_local $0) - ) - ) - ) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.sub - (i32.const 1072693248) - (i32.const 1072079006) - ) - ) - ) - (set_local $3 - (i32.sub - (i32.shr_u - (get_local $6) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 54) - ) - (block - (set_local $7 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $4 - (if (result f64) - (i32.ge_s - (get_local $3) - (i32.const 2) - ) - (f64.sub - (f64.const 1) - (f64.sub - (get_local $7) - (get_local $0) - ) - ) - (f64.sub - (get_local $0) - (f64.sub - (get_local $7) - (f64.const 1) - ) - ) - ) - ) - (set_local $4 - (f64.div - (get_local $4) - (get_local $7) - ) - ) - ) - (set_local $4 - (f64.const 0) - ) - ) - (set_local $6 - (i32.add - (i32.and - (get_local $6) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (set_local $1 - (i64.or - (i64.shl - (i64.extend_u/i32 - (get_local $6) - ) - (i64.const 32) - ) - (i64.and - (get_local $1) - (i64.const 4294967295) - ) - ) - ) - (set_local $5 - (f64.sub - (f64.reinterpret/i64 - (get_local $1) - ) - (f64.const 1) - ) - ) - ) - ) - (set_local $8 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (set_local $9 - (f64.div - (get_local $5) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (set_local $10 - (f64.mul - (get_local $9) - (get_local $9) - ) - ) - (set_local $11 - (f64.mul - (get_local $10) - (get_local $10) - ) - ) - (set_local $12 - (f64.mul - (get_local $11) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $11) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $11) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - (set_local $13 - (f64.mul - (get_local $10) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $11) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $11) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $11) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $14 - (f64.add - (get_local $13) - (get_local $12) - ) - ) - (set_local $15 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (f64.add - (f64.add - (f64.sub - (f64.add - (f64.mul - (get_local $9) - (f64.add - (get_local $8) - (get_local $14) - ) - ) - (f64.add - (f64.mul - (get_local $15) - (f64.const 1.9082149292705877e-10) - ) - (get_local $4) - ) - ) - (get_local $8) - ) - (get_local $5) - ) - (f64.mul - (get_local $15) - (f64.const 0.6931471803691238) - ) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + i32.const 1 + set_local $3 + f64.const 0 + set_local $4 + f64.const 0 + set_local $5 + get_local $2 + i32.const 1071284858 + i32.lt_u + tee_local $6 + if (result i32) + get_local $6 + else + get_local $2 + i32.const 31 + i32.shr_u + end + if + get_local $2 + i32.const -1074790400 + i32.ge_u + if + get_local $0 + f64.const -1 + f64.eq + if + get_local $0 + f64.const 0 + f64.div + return + end + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $2 + i32.const 1 + i32.shl + i32.const 1017118720 + i32.const 1 + i32.shl + i32.lt_u + if + get_local $0 + return + end + get_local $2 + i32.const -1076707644 + i32.le_u + if + i32.const 0 + set_local $3 + f64.const 0 + set_local $4 + get_local $0 + set_local $5 + end + else + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + end + end + get_local $3 + if + f64.const 1 + get_local $0 + f64.add + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $6 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + set_local $6 + get_local $6 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + set_local $3 + get_local $3 + i32.const 54 + i32.lt_s + if + get_local $1 + f64.reinterpret/i64 + set_local $7 + get_local $3 + i32.const 2 + i32.ge_s + if (result f64) + f64.const 1 + get_local $7 + get_local $0 + f64.sub + f64.sub + else + get_local $0 + get_local $7 + f64.const 1 + f64.sub + f64.sub + end + set_local $4 + get_local $4 + get_local $7 + f64.div + set_local $4 + else + f64.const 0 + set_local $4 + end + get_local $6 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + set_local $6 + get_local $6 + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $1 + i64.const 4294967295 + i64.and + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + f64.const 1 + f64.sub + set_local $5 + end + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + set_local $8 + get_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + set_local $9 + get_local $9 + get_local $9 + f64.mul + set_local $10 + get_local $10 + get_local $10 + f64.mul + set_local $11 + get_local $11 + f64.const 0.3999999999940942 + get_local $11 + f64.const 0.22222198432149784 + get_local $11 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $12 + get_local $10 + f64.const 0.6666666666666735 + get_local $11 + f64.const 0.2857142874366239 + get_local $11 + f64.const 0.1818357216161805 + get_local $11 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $13 + get_local $13 + get_local $12 + f64.add + set_local $14 + get_local $3 + f64.convert_s/i32 + set_local $15 + get_local $9 + get_local $8 + get_local $14 + f64.add + f64.mul + get_local $15 + f64.const 1.9082149292705877e-10 + f64.mul + get_local $4 + f64.add + f64.add + get_local $8 + f64.sub + get_local $5 + f64.add + get_local $15 + f64.const 0.6931471803691238 + f64.mul + f64.add ) (func $~lib/math/NativeMath.log (; 5 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -747,391 +539,272 @@ (local $11 f64) (local $12 f64) (local $13 i32) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.lt_u - (get_local $2) - (i32.const 1048576) - ) - ) - (get_local $4) - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (block - (if - (i64.eq - (i64.shl - (get_local $1) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 54) - ) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eq - (get_local $2) - (i32.const 1072693248) - ) - ) - (i64.eq - (i64.shl - (get_local $1) - (i64.const 32) - ) - (i64.const 0) - ) - (get_local $4) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.const 1072693248) - (i32.const 1072079006) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_s - (get_local $2) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $2 - (i32.add - (i32.and - (get_local $2) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (set_local $1 - (i64.or - (i64.shl - (i64.extend_u/i32 - (get_local $2) - ) - (i64.const 32) - ) - (i64.and - (get_local $1) - (i64.const 4294967295) - ) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $5 - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (set_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (set_local $7 - (f64.div - (get_local $5) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (set_local $9 - (f64.mul - (get_local $8) - (get_local $8) - ) - ) - (set_local $10 - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $9) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - (set_local $11 - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $9) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $12 - (f64.add - (get_local $11) - (get_local $10) - ) - ) - (set_local $13 - (get_local $3) - ) - (f64.add - (f64.add - (f64.sub - (f64.add - (f64.mul - (get_local $7) - (f64.add - (get_local $6) - (get_local $12) - ) - ) - (f64.mul - (f64.convert_s/i32 - (get_local $13) - ) - (f64.const 1.9082149292705877e-10) - ) - ) - (get_local $6) - ) - (get_local $5) - ) - (f64.mul - (f64.convert_s/i32 - (get_local $13) - ) - (f64.const 0.6931471803691238) - ) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + i32.const 0 + set_local $3 + get_local $2 + i32.const 1048576 + i32.lt_u + tee_local $4 + if (result i32) + get_local $4 + else + get_local $2 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $2 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $3 + i32.const 54 + i32.sub + set_local $3 + get_local $0 + f64.const 18014398509481984 + f64.mul + set_local $0 + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + else + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $2 + i32.const 1072693248 + i32.eq + tee_local $4 + if (result i32) + get_local $1 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + else + get_local $4 + end + if + f64.const 0 + return + end + end + end + get_local $2 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + set_local $2 + get_local $3 + get_local $2 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $3 + get_local $2 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + set_local $2 + get_local $2 + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $1 + i64.const 4294967295 + i64.and + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $0 + get_local $0 + f64.const 1 + f64.sub + set_local $5 + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + set_local $6 + get_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + set_local $7 + get_local $7 + get_local $7 + f64.mul + set_local $8 + get_local $8 + get_local $8 + f64.mul + set_local $9 + get_local $9 + f64.const 0.3999999999940942 + get_local $9 + f64.const 0.22222198432149784 + get_local $9 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $10 + get_local $8 + f64.const 0.6666666666666735 + get_local $9 + f64.const 0.2857142874366239 + get_local $9 + f64.const 0.1818357216161805 + get_local $9 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $11 + get_local $11 + get_local $10 + f64.add + set_local $12 + get_local $3 + set_local $13 + get_local $7 + get_local $6 + get_local $12 + f64.add + f64.mul + get_local $13 + f64.convert_s/i32 + f64.const 1.9082149292705877e-10 + f64.mul + f64.add + get_local $6 + f64.sub + get_local $5 + f64.add + get_local $13 + f64.convert_s/i32 + f64.const 0.6931471803691238 + f64.mul + f64.add ) (func $~lib/math/NativeMath.acosh (; 6 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) - (set_local $1 - (i64.and - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (if - (i64.lt_u - (get_local $1) - (i64.add - (i64.const 1023) - (i64.const 1) - ) - ) - (return - (call $~lib/math/NativeMath.log1p - (f64.add - (f64.sub - (get_local $0) - (f64.const 1) - ) - (f64.sqrt - (f64.add - (f64.mul - (f64.sub - (get_local $0) - (f64.const 1) - ) - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (f64.mul - (f64.const 2) - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i64.lt_u - (get_local $1) - (i64.add - (i64.const 1023) - (i64.const 26) - ) - ) - (return - (call $~lib/math/NativeMath.log - (f64.sub - (f64.mul - (f64.const 2) - (get_local $0) - ) - (f64.div - (f64.const 1) - (f64.add - (get_local $0) - (f64.sqrt - (f64.sub - (f64.mul - (get_local $0) - (get_local $0) - ) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.add - (call $~lib/math/NativeMath.log - (get_local $0) - ) - (f64.const 0.6931471805599453) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $1 + get_local $1 + i64.const 1023 + i64.const 1 + i64.add + i64.lt_u + if + get_local $0 + f64.const 1 + f64.sub + get_local $0 + f64.const 1 + f64.sub + get_local $0 + f64.const 1 + f64.sub + f64.mul + f64.const 2 + get_local $0 + f64.const 1 + f64.sub + f64.mul + f64.add + f64.sqrt + f64.add + call $~lib/math/NativeMath.log1p + return + end + get_local $1 + i64.const 1023 + i64.const 26 + i64.add + i64.lt_u + if + f64.const 2 + get_local $0 + f64.mul + f64.const 1 + get_local $0 + get_local $0 + get_local $0 + f64.mul + f64.const 1 + f64.sub + f64.sqrt + f64.add + f64.div + f64.sub + call $~lib/math/NativeMath.log + return + end + get_local $0 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add ) (func $std/libm/acosh (; 7 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.acosh - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.acosh ) (func $~lib/math/NativeMath.asin (; 8 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) @@ -1142,361 +815,251 @@ (local $6 f64) (local $7 f64) (local $8 f64) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (set_local $2 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1072693248) - ) - (block - (set_local $3 - (i32.wrap/i64 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $2) - (i32.const 1072693248) - ) - (get_local $3) - ) - (i32.const 0) - ) - (return - (f64.add - (f64.mul - (get_local $0) - (f64.const 1.5707963267948966) - ) - (f64.promote/f32 - (f32.const 7.52316384526264e-37) - ) - ) - ) - ) - (return - (f64.div - (f64.const 0) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1071644672) - ) - (block - (if - (if (result i32) - (tee_local $3 - (i32.lt_u - (get_local $2) - (i32.const 1045430272) - ) - ) - (i32.ge_u - (get_local $2) - (i32.const 1048576) - ) - (get_local $3) - ) - (return - (get_local $0) - ) - ) - (return - (f64.add - (get_local $0) - (f64.mul - (get_local $0) - (call $~lib/math/R - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (set_local $4 - (f64.sub - (f64.const 0.5) - (f64.mul - (f64.abs - (get_local $0) - ) - (f64.const 0.5) - ) - ) - ) - (set_local $5 - (f64.sqrt - (get_local $4) - ) - ) - (set_local $6 - (call $~lib/math/R - (get_local $4) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1072640819) - ) - (set_local $0 - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (f64.mul - (f64.const 2) - (f64.add - (get_local $5) - (f64.mul - (get_local $5) - (get_local $6) - ) - ) - ) - (f64.const 6.123233995736766e-17) - ) - ) - ) - (block - (set_local $7 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $5) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $8 - (f64.div - (f64.sub - (get_local $4) - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (f64.add - (get_local $5) - (get_local $7) - ) - ) - ) - (set_local $0 - (f64.sub - (f64.mul - (f64.const 0.5) - (f64.const 1.5707963267948966) - ) - (f64.sub - (f64.sub - (f64.mul - (f64.mul - (f64.const 2) - (get_local $5) - ) - (get_local $6) - ) - (f64.sub - (f64.const 6.123233995736766e-17) - (f64.mul - (f64.const 2) - (get_local $8) - ) - ) - ) - (f64.sub - (f64.mul - (f64.const 0.5) - (f64.const 1.5707963267948966) - ) - (f64.mul - (f64.const 2) - (get_local $7) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.neg - (get_local $0) - ) - ) - ) - (get_local $0) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 1072693248 + i32.ge_u + if + get_local $0 + i64.reinterpret/f64 + i32.wrap/i64 + set_local $3 + get_local $2 + i32.const 1072693248 + i32.sub + get_local $3 + i32.or + i32.const 0 + i32.eq + if + get_local $0 + f64.const 1.5707963267948966 + f64.mul + f32.const 7.52316384526264e-37 + f64.promote/f32 + f64.add + return + end + f64.const 0 + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $2 + i32.const 1071644672 + i32.lt_u + if + get_local $2 + i32.const 1045430272 + i32.lt_u + tee_local $3 + if (result i32) + get_local $2 + i32.const 1048576 + i32.ge_u + else + get_local $3 + end + if + get_local $0 + return + end + get_local $0 + get_local $0 + get_local $0 + get_local $0 + f64.mul + call $~lib/math/R + f64.mul + f64.add + return + end + f64.const 0.5 + get_local $0 + f64.abs + f64.const 0.5 + f64.mul + f64.sub + set_local $4 + get_local $4 + f64.sqrt + set_local $5 + get_local $4 + call $~lib/math/R + set_local $6 + get_local $2 + i32.const 1072640819 + i32.ge_u + if + f64.const 1.5707963267948966 + f64.const 2 + get_local $5 + get_local $5 + get_local $6 + f64.mul + f64.add + f64.mul + f64.const 6.123233995736766e-17 + f64.sub + f64.sub + set_local $0 + else + get_local $5 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $7 + get_local $4 + get_local $7 + get_local $7 + f64.mul + f64.sub + get_local $5 + get_local $7 + f64.add + f64.div + set_local $8 + f64.const 0.5 + f64.const 1.5707963267948966 + f64.mul + f64.const 2 + get_local $5 + f64.mul + get_local $6 + f64.mul + f64.const 6.123233995736766e-17 + f64.const 2 + get_local $8 + f64.mul + f64.sub + f64.sub + f64.const 0.5 + f64.const 1.5707963267948966 + f64.mul + f64.const 2 + get_local $7 + f64.mul + f64.sub + f64.sub + f64.sub + set_local $0 + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + f64.neg + return + end + get_local $0 ) (func $std/libm/asin (; 9 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.asin - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.asin ) (func $~lib/math/NativeMath.asinh (; 10 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i64.and - (i64.shr_u - (get_local $1) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $3 - (f64.reinterpret/i64 - (i64.and - (get_local $1) - (i64.const 9223372036854775807) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.add - (i64.const 1023) - (i64.const 26) - ) - ) - (set_local $3 - (f64.add - (call $~lib/math/NativeMath.log - (get_local $3) - ) - (f64.const 0.6931471805599453) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.add - (i64.const 1023) - (i64.const 1) - ) - ) - (set_local $3 - (call $~lib/math/NativeMath.log - (f64.add - (f64.mul - (f64.const 2) - (get_local $3) - ) - (f64.div - (f64.const 1) - (f64.add - (f64.sqrt - (f64.add - (f64.mul - (get_local $3) - (get_local $3) - ) - (f64.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.sub - (i64.const 1023) - (i64.const 26) - ) - ) - (set_local $3 - (call $~lib/math/NativeMath.log1p - (f64.add - (get_local $3) - (f64.div - (f64.mul - (get_local $3) - (get_local $3) - ) - (f64.add - (f64.sqrt - (f64.add - (f64.mul - (get_local $3) - (get_local $3) - ) - (f64.const 1) - ) - ) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.copysign - (get_local $3) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $2 + get_local $1 + i64.const 9223372036854775807 + i64.and + f64.reinterpret/i64 + set_local $3 + get_local $2 + i64.const 1023 + i64.const 26 + i64.add + i64.ge_u + if + get_local $3 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add + set_local $3 + else + get_local $2 + i64.const 1023 + i64.const 1 + i64.add + i64.ge_u + if + f64.const 2 + get_local $3 + f64.mul + f64.const 1 + get_local $3 + get_local $3 + f64.mul + f64.const 1 + f64.add + f64.sqrt + get_local $3 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log + set_local $3 + else + get_local $2 + i64.const 1023 + i64.const 26 + i64.sub + i64.ge_u + if + get_local $3 + get_local $3 + get_local $3 + f64.mul + get_local $3 + get_local $3 + f64.mul + f64.const 1 + f64.add + f64.sqrt + f64.const 1 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log1p + set_local $3 + end + end + end + get_local $3 + get_local $0 + f64.copysign ) (func $std/libm/asinh (; 11 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.asinh - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.asinh ) (func $~lib/builtins/isNaN (; 12 ;) (type $Fi) (param $0 f64) (result i32) - (f64.ne - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + f64.ne ) (func $~lib/math/NativeMath.atan (; 13 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) @@ -1508,484 +1071,348 @@ (local $7 f64) (local $8 f64) (local $9 i32) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (set_local $2 - (get_local $0) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 1141899264) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (f64.add - (f64.const 1.5707963267948966) - (f64.promote/f32 - (f32.const 7.52316384526264e-37) - ) - ) - ) - (return - (f64.copysign - (get_local $3) - (get_local $2) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1071382528) - ) - (block - (if - (i32.lt_u - (get_local $1) - (i32.const 1044381696) - ) - (return - (get_local $0) - ) - ) - (set_local $4 - (i32.const -1) - ) - ) - (block - (set_local $0 - (f64.abs - (get_local $0) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1072889856) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1072037888) - ) - (block - (set_local $4 - (i32.const 0) - ) - (set_local $0 - (f64.div - (f64.sub - (f64.mul - (f64.const 2) - (get_local $0) - ) - (f64.const 1) - ) - (f64.add - (f64.const 2) - (get_local $0) - ) - ) - ) - ) - (block - (set_local $4 - (i32.const 1) - ) - (set_local $0 - (f64.div - (f64.sub - (get_local $0) - (f64.const 1) - ) - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1073971200) - ) - (block - (set_local $4 - (i32.const 2) - ) - (set_local $0 - (f64.div - (f64.sub - (get_local $0) - (f64.const 1.5) - ) - (f64.add - (f64.const 1) - (f64.mul - (f64.const 1.5) - (get_local $0) - ) - ) - ) - ) - ) - (block - (set_local $4 - (i32.const 3) - ) - (set_local $0 - (f64.div - (f64.const -1) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (set_local $3 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - (set_local $5 - (f64.mul - (get_local $3) - (get_local $3) - ) - ) - (set_local $6 - (f64.mul - (get_local $3) - (f64.add - (f64.const 0.3333333333333293) - (f64.mul - (get_local $5) - (f64.add - (f64.const 0.14285714272503466) - (f64.mul - (get_local $5) - (f64.add - (f64.const 0.09090887133436507) - (f64.mul - (get_local $5) - (f64.add - (f64.const 0.06661073137387531) - (f64.mul - (get_local $5) - (f64.add - (f64.const 0.049768779946159324) - (f64.mul - (get_local $5) - (f64.const 0.016285820115365782) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $7 - (f64.mul - (get_local $5) - (f64.add - (f64.const -0.19999999999876483) - (f64.mul - (get_local $5) - (f64.add - (f64.const -0.11111110405462356) - (f64.mul - (get_local $5) - (f64.add - (f64.const -0.0769187620504483) - (f64.mul - (get_local $5) - (f64.add - (f64.const -0.058335701337905735) - (f64.mul - (get_local $5) - (f64.const -0.036531572744216916) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $0) - (f64.add - (get_local $6) - (get_local $7) - ) - ) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 0) - ) - (return - (f64.sub - (get_local $0) - (get_local $8) - ) - ) - ) - (block $break|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $9 - (get_local $4) - ) - (br_if $case0|0 - (i32.eq - (get_local $9) - (i32.const 0) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $9) - (i32.const 1) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $9) - (i32.const 2) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $9) - (i32.const 3) - ) - ) - (br $case4|0) - ) - (block - (set_local $3 - (f64.sub - (f64.const 0.4636476090008061) - (f64.sub - (f64.sub - (get_local $8) - (f64.const 2.2698777452961687e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $3 - (f64.sub - (f64.const 0.7853981633974483) - (f64.sub - (f64.sub - (get_local $8) - (f64.const 3.061616997868383e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $3 - (f64.sub - (f64.const 0.982793723247329) - (f64.sub - (f64.sub - (get_local $8) - (f64.const 1.3903311031230998e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $3 - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (f64.sub - (get_local $8) - (f64.const 6.123233995736766e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (unreachable) - ) - (f64.copysign - (get_local $3) - (get_local $2) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + get_local $0 + set_local $2 + get_local $1 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + i32.const 1141899264 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + f64.const 1.5707963267948966 + f32.const 7.52316384526264e-37 + f64.promote/f32 + f64.add + set_local $3 + get_local $3 + get_local $2 + f64.copysign + return + end + get_local $1 + i32.const 1071382528 + i32.lt_u + if + get_local $1 + i32.const 1044381696 + i32.lt_u + if + get_local $0 + return + end + i32.const -1 + set_local $4 + else + get_local $0 + f64.abs + set_local $0 + get_local $1 + i32.const 1072889856 + i32.lt_u + if + get_local $1 + i32.const 1072037888 + i32.lt_u + if + i32.const 0 + set_local $4 + f64.const 2 + get_local $0 + f64.mul + f64.const 1 + f64.sub + f64.const 2 + get_local $0 + f64.add + f64.div + set_local $0 + else + i32.const 1 + set_local $4 + get_local $0 + f64.const 1 + f64.sub + get_local $0 + f64.const 1 + f64.add + f64.div + set_local $0 + end + else + get_local $1 + i32.const 1073971200 + i32.lt_u + if + i32.const 2 + set_local $4 + get_local $0 + f64.const 1.5 + f64.sub + f64.const 1 + f64.const 1.5 + get_local $0 + f64.mul + f64.add + f64.div + set_local $0 + else + i32.const 3 + set_local $4 + f64.const -1 + get_local $0 + f64.div + set_local $0 + end + end + end + get_local $0 + get_local $0 + f64.mul + set_local $3 + get_local $3 + get_local $3 + f64.mul + set_local $5 + get_local $3 + f64.const 0.3333333333333293 + get_local $5 + f64.const 0.14285714272503466 + get_local $5 + f64.const 0.09090887133436507 + get_local $5 + f64.const 0.06661073137387531 + get_local $5 + f64.const 0.049768779946159324 + get_local $5 + f64.const 0.016285820115365782 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $6 + get_local $5 + f64.const -0.19999999999876483 + get_local $5 + f64.const -0.11111110405462356 + get_local $5 + f64.const -0.0769187620504483 + get_local $5 + f64.const -0.058335701337905735 + get_local $5 + f64.const -0.036531572744216916 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $7 + get_local $0 + get_local $6 + get_local $7 + f64.add + f64.mul + set_local $8 + get_local $4 + i32.const 0 + i32.lt_s + if + get_local $0 + get_local $8 + f64.sub + return + end + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $4 + set_local $9 + get_local $9 + i32.const 0 + i32.eq + br_if $case0|0 + get_local $9 + i32.const 1 + i32.eq + br_if $case1|0 + get_local $9 + i32.const 2 + i32.eq + br_if $case2|0 + get_local $9 + i32.const 3 + i32.eq + br_if $case3|0 + br $case4|0 + end + block + f64.const 0.4636476090008061 + get_local $8 + f64.const 2.2698777452961687e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + block + f64.const 0.7853981633974483 + get_local $8 + f64.const 3.061616997868383e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + block + f64.const 0.982793723247329 + get_local $8 + f64.const 1.3903311031230998e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + block + f64.const 1.5707963267948966 + get_local $8 + f64.const 6.123233995736766e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + unreachable + end + get_local $3 + get_local $2 + f64.copysign ) (func $std/libm/atan (; 14 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.atan - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.atan ) (func $~lib/math/NativeMath.atanh (; 15 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) (local $4 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i64.and - (i64.shr_u - (get_local $1) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $3 - (i64.shr_u - (get_local $1) - (i64.const 63) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.const 9223372036854775807) - ) - ) - (set_local $4 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (if - (i64.lt_u - (get_local $2) - (i64.sub - (i64.const 1023) - (i64.const 1) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.sub - (i64.const 1023) - (i64.const 32) - ) - ) - (set_local $4 - (f64.mul - (f64.const 0.5) - (call $~lib/math/NativeMath.log1p - (f64.add - (f64.mul - (f64.const 2) - (get_local $4) - ) - (f64.div - (f64.mul - (f64.mul - (f64.const 2) - (get_local $4) - ) - (get_local $4) - ) - (f64.sub - (f64.const 1) - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - (set_local $4 - (f64.mul - (f64.const 0.5) - (call $~lib/math/NativeMath.log1p - (f64.mul - (f64.const 2) - (f64.div - (get_local $4) - (f64.sub - (f64.const 1) - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - (f64.copysign - (get_local $4) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $2 + get_local $1 + i64.const 63 + i64.shr_u + set_local $3 + get_local $1 + i64.const 9223372036854775807 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $4 + get_local $2 + i64.const 1023 + i64.const 1 + i64.sub + i64.lt_u + if + get_local $2 + i64.const 1023 + i64.const 32 + i64.sub + i64.ge_u + if + f64.const 0.5 + f64.const 2 + get_local $4 + f64.mul + f64.const 2 + get_local $4 + f64.mul + get_local $4 + f64.mul + f64.const 1 + get_local $4 + f64.sub + f64.div + f64.add + call $~lib/math/NativeMath.log1p + f64.mul + set_local $4 + end + else + f64.const 0.5 + f64.const 2 + get_local $4 + f64.const 1 + get_local $4 + f64.sub + f64.div + f64.mul + call $~lib/math/NativeMath.log1p + f64.mul + set_local $4 + end + get_local $4 + get_local $0 + f64.copysign ) (func $std/libm/atanh (; 16 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.atanh - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.atanh ) (func $~lib/math/NativeMath.atan2 (; 17 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) @@ -1996,472 +1423,348 @@ (local $7 i32) (local $8 i32) (local $9 f64) - (if - (if (result i32) - (tee_local $2 - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - (get_local $2) - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - (return - (f64.add - (get_local $1) - (get_local $0) - ) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.const 32) - ) - ) - ) - (set_local $5 - (i32.wrap/i64 - (get_local $3) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.const 32) - ) - ) - ) - (set_local $7 - (i32.wrap/i64 - (get_local $3) - ) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $4) - (i32.const 1072693248) - ) - (get_local $5) - ) - (i32.const 0) - ) - (return - (call $~lib/math/NativeMath.atan - (get_local $0) - ) - ) - ) - (set_local $8 - (i32.or - (i32.and - (i32.shr_u - (get_local $6) - (i32.const 31) - ) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (get_local $4) - (i32.const 30) - ) - (i32.const 2) - ) - ) - ) - (set_local $4 - (i32.and - (get_local $4) - (i32.const 2147483647) - ) - ) - (set_local $6 - (i32.and - (get_local $6) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (i32.or - (get_local $6) - (get_local $7) - ) - (i32.const 0) - ) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $2 - (get_local $8) - ) - (br_if $case0|0 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|0) - ) - ) - (return - (get_local $0) - ) - ) - (return - (get_global $~lib/math/NativeMath.PI) - ) - ) - (return - (f64.neg - (get_global $~lib/math/NativeMath.PI) - ) - ) - ) - ) - (if - (i32.eq - (i32.or - (get_local $4) - (get_local $5) - ) - (i32.const 0) - ) - (return - (if (result f64) - (i32.and - (get_local $8) - (i32.const 1) - ) - (f64.div - (f64.neg - (get_global $~lib/math/NativeMath.PI) - ) - (f64.const 2) - ) - (f64.div - (get_global $~lib/math/NativeMath.PI) - (f64.const 2) - ) - ) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 2146435072) - ) - (if - (i32.eq - (get_local $6) - (i32.const 2146435072) - ) - (block $break|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (block $case0|1 - (set_local $2 - (get_local $8) - ) - (br_if $case0|1 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|1 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|1 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|1 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|1) - ) - (return - (f64.div - (get_global $~lib/math/NativeMath.PI) - (f64.const 4) - ) - ) - ) - (return - (f64.div - (f64.neg - (get_global $~lib/math/NativeMath.PI) - ) - (f64.const 4) - ) - ) - ) - (return - (f64.div - (f64.mul - (f64.const 3) - (get_global $~lib/math/NativeMath.PI) - ) - (f64.const 4) - ) - ) - ) - (return - (f64.div - (f64.mul - (f64.const -3) - (get_global $~lib/math/NativeMath.PI) - ) - (f64.const 4) - ) - ) - ) - (block $break|2 - (block $case3|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $2 - (get_local $8) - ) - (br_if $case0|2 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|2 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|2) - ) - (return - (f64.const 0) - ) - ) - (return - (f64.const -0) - ) - ) - (return - (get_global $~lib/math/NativeMath.PI) - ) - ) - (return - (f64.neg - (get_global $~lib/math/NativeMath.PI) - ) - ) - ) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.lt_u - (i32.add - (get_local $4) - (i32.shl - (i32.const 64) - (i32.const 20) - ) - ) - (get_local $6) - ) - ) - (get_local $2) - (i32.eq - (get_local $6) - (i32.const 2146435072) - ) - ) - (return - (if (result f64) - (i32.and - (get_local $8) - (i32.const 1) - ) - (f64.div - (f64.neg - (get_global $~lib/math/NativeMath.PI) - ) - (f64.const 2) - ) - (f64.div - (get_global $~lib/math/NativeMath.PI) - (f64.const 2) - ) - ) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.and - (get_local $8) - (i32.const 2) - ) - ) - (i32.lt_u - (i32.add - (get_local $6) - (i32.shl - (i32.const 64) - (i32.const 20) - ) - ) - (get_local $4) - ) - (get_local $2) - ) - (set_local $9 - (f64.const 0) - ) - (set_local $9 - (call $~lib/math/NativeMath.atan - (f64.abs - (f64.div - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (block $break|3 - (block $case3|3 - (block $case2|3 - (block $case1|3 - (block $case0|3 - (set_local $2 - (get_local $8) - ) - (br_if $case0|3 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|3 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|3 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|3 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|3) - ) - (return - (get_local $9) - ) - ) - (return - (f64.neg - (get_local $9) - ) - ) - ) - (return - (f64.sub - (get_global $~lib/math/NativeMath.PI) - (f64.sub - (get_local $9) - (f64.const 1.2246467991473532e-16) - ) - ) - ) - ) - (return - (f64.sub - (f64.sub - (get_local $9) - (f64.const 1.2246467991473532e-16) - ) - (get_global $~lib/math/NativeMath.PI) - ) - ) - ) - (unreachable) - (f64.const 0) + get_local $1 + call $~lib/builtins/isNaN + tee_local $2 + if (result i32) + get_local $2 + else + get_local $0 + call $~lib/builtins/isNaN + end + if + get_local $1 + get_local $0 + f64.add + return + end + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $3 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $4 + get_local $3 + i32.wrap/i64 + set_local $5 + get_local $0 + i64.reinterpret/f64 + set_local $3 + get_local $3 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $3 + i32.wrap/i64 + set_local $7 + get_local $4 + i32.const 1072693248 + i32.sub + get_local $5 + i32.or + i32.const 0 + i32.eq + if + get_local $0 + call $~lib/math/NativeMath.atan + return + end + get_local $6 + i32.const 31 + i32.shr_u + i32.const 1 + i32.and + get_local $4 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + i32.or + set_local $8 + get_local $4 + i32.const 2147483647 + i32.and + set_local $4 + get_local $6 + i32.const 2147483647 + i32.and + set_local $6 + get_local $6 + get_local $7 + i32.or + i32.const 0 + i32.eq + if + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $8 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|0 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|0 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|0 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|0 + br $break|0 + end + end + get_local $0 + return + end + get_global $~lib/math/NativeMath.PI + return + end + get_global $~lib/math/NativeMath.PI + f64.neg + return + end + end + get_local $4 + get_local $5 + i32.or + i32.const 0 + i32.eq + if + get_local $8 + i32.const 1 + i32.and + if (result f64) + get_global $~lib/math/NativeMath.PI + f64.neg + f64.const 2 + f64.div + else + get_global $~lib/math/NativeMath.PI + f64.const 2 + f64.div + end + return + end + get_local $4 + i32.const 2146435072 + i32.eq + if + get_local $6 + i32.const 2146435072 + i32.eq + if + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + get_local $8 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|1 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|1 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|1 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|1 + br $break|1 + end + get_global $~lib/math/NativeMath.PI + f64.const 4 + f64.div + return + end + get_global $~lib/math/NativeMath.PI + f64.neg + f64.const 4 + f64.div + return + end + f64.const 3 + get_global $~lib/math/NativeMath.PI + f64.mul + f64.const 4 + f64.div + return + end + f64.const -3 + get_global $~lib/math/NativeMath.PI + f64.mul + f64.const 4 + f64.div + return + end + else + block $break|2 + block $case3|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $8 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|2 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|2 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|2 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|2 + br $break|2 + end + f64.const 0 + return + end + f64.const -0 + return + end + get_global $~lib/math/NativeMath.PI + return + end + get_global $~lib/math/NativeMath.PI + f64.neg + return + end + end + end + get_local $4 + i32.const 64 + i32.const 20 + i32.shl + i32.add + get_local $6 + i32.lt_u + tee_local $2 + if (result i32) + get_local $2 + else + get_local $6 + i32.const 2146435072 + i32.eq + end + if + get_local $8 + i32.const 1 + i32.and + if (result f64) + get_global $~lib/math/NativeMath.PI + f64.neg + f64.const 2 + f64.div + else + get_global $~lib/math/NativeMath.PI + f64.const 2 + f64.div + end + return + end + get_local $8 + i32.const 2 + i32.and + tee_local $2 + if (result i32) + get_local $6 + i32.const 64 + i32.const 20 + i32.shl + i32.add + get_local $4 + i32.lt_u + else + get_local $2 + end + if + f64.const 0 + set_local $9 + else + get_local $0 + get_local $1 + f64.div + f64.abs + call $~lib/math/NativeMath.atan + set_local $9 + end + block $break|3 + block $case3|3 + block $case2|3 + block $case1|3 + block $case0|3 + get_local $8 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|3 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|3 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|3 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|3 + br $break|3 + end + get_local $9 + return + end + get_local $9 + f64.neg + return + end + get_global $~lib/math/NativeMath.PI + get_local $9 + f64.const 1.2246467991473532e-16 + f64.sub + f64.sub + return + end + get_local $9 + f64.const 1.2246467991473532e-16 + f64.sub + get_global $~lib/math/NativeMath.PI + f64.sub + return + end + unreachable + f64.const 0 ) (func $std/libm/atan2 (; 18 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (call $~lib/math/NativeMath.atan2 - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.atan2 ) (func $~lib/math/NativeMath.cbrt (; 19 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -2470,246 +1773,167 @@ (local $4 f64) (local $5 f64) (local $6 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.and - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (f64.add - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1048576) - ) - (block - (set_local $1 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (set_local $2 - (i32.and - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (set_local $2 - (i32.add - (i32.div_u - (get_local $2) - (i32.const 3) - ) - (i32.const 696219795) - ) - ) - ) - (set_local $2 - (i32.add - (i32.div_u - (get_local $2) - (i32.const 3) - ) - (i32.const 715094163) - ) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.shl - (i64.const 1) - (i64.const 63) - ) - ) - ) - (set_local $1 - (i64.or - (get_local $1) - (i64.shl - (i64.extend_u/i32 - (get_local $2) - ) - (i64.const 32) - ) - ) - ) - (set_local $3 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $4 - (f64.mul - (f64.mul - (get_local $3) - (get_local $3) - ) - (f64.div - (get_local $3) - (get_local $0) - ) - ) - ) - (set_local $3 - (f64.mul - (get_local $3) - (f64.add - (f64.add - (f64.const 1.87595182427177) - (f64.mul - (get_local $4) - (f64.add - (f64.const -1.8849797954337717) - (f64.mul - (get_local $4) - (f64.const 1.6214297201053545) - ) - ) - ) - ) - (f64.mul - (f64.mul - (f64.mul - (get_local $4) - (get_local $4) - ) - (get_local $4) - ) - (f64.add - (f64.const -0.758397934778766) - (f64.mul - (get_local $4) - (f64.const 0.14599619288661245) - ) - ) - ) - ) - ) - ) - (set_local $3 - (f64.reinterpret/i64 - (i64.and - (i64.add - (i64.reinterpret/f64 - (get_local $3) - ) - (i64.const 2147483648) - ) - (i64.const -1073741824) - ) - ) - ) - (set_local $5 - (f64.mul - (get_local $3) - (get_local $3) - ) - ) - (set_local $4 - (f64.div - (get_local $0) - (get_local $5) - ) - ) - (set_local $6 - (f64.add - (get_local $3) - (get_local $3) - ) - ) - (set_local $4 - (f64.div - (f64.sub - (get_local $4) - (get_local $3) - ) - (f64.add - (get_local $6) - (get_local $4) - ) - ) - ) - (set_local $3 - (f64.add - (get_local $3) - (f64.mul - (get_local $3) - (get_local $4) - ) - ) - ) - (get_local $3) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + get_local $0 + f64.add + return + end + get_local $2 + i32.const 1048576 + i32.lt_u + if + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 0 + i32.eq + if + get_local $0 + return + end + get_local $2 + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add + set_local $2 + else + get_local $2 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add + set_local $2 + end + get_local $1 + i64.const 1 + i64.const 63 + i64.shl + i64.and + set_local $1 + get_local $1 + get_local $2 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $3 + get_local $3 + get_local $3 + f64.mul + get_local $3 + get_local $0 + f64.div + f64.mul + set_local $4 + get_local $3 + f64.const 1.87595182427177 + get_local $4 + f64.const -1.8849797954337717 + get_local $4 + f64.const 1.6214297201053545 + f64.mul + f64.add + f64.mul + f64.add + get_local $4 + get_local $4 + f64.mul + get_local $4 + f64.mul + f64.const -0.758397934778766 + get_local $4 + f64.const 0.14599619288661245 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $3 + get_local $3 + i64.reinterpret/f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret/i64 + set_local $3 + get_local $3 + get_local $3 + f64.mul + set_local $5 + get_local $0 + get_local $5 + f64.div + set_local $4 + get_local $3 + get_local $3 + f64.add + set_local $6 + get_local $4 + get_local $3 + f64.sub + get_local $6 + get_local $4 + f64.add + f64.div + set_local $4 + get_local $3 + get_local $3 + get_local $4 + f64.mul + f64.add + set_local $3 + get_local $3 ) (func $std/libm/cbrt (; 20 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.cbrt - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.cbrt ) (func $std/libm/ceil (; 21 ;) (type $FF) (param $0 f64) (result f64) - (block $~lib/math/NativeMath.ceil|inlined.0 (result f64) - (f64.ceil - (get_local $0) - ) - ) + get_local $0 + f64.ceil ) (func $std/libm/clz32 (; 22 ;) (type $FF) (param $0 f64) (result f64) - (block $~lib/math/NativeMath.clz32|inlined.0 (result f64) - (f64.convert_s/i32 - (i32.clz - (i32.trunc_s/f64 - (get_local $0) - ) - ) - ) - ) + get_local $0 + i32.trunc_s/f64 + i32.clz + f64.convert_s/i32 ) (func $~lib/math/NativeMath.cos (; 23 ;) (type $FF) (param $0 f64) (result f64) - (unreachable) - (f64.const 0) + unreachable + f64.const 0 ) (func $std/libm/cos (; 24 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.cos - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.cos ) (func $~lib/math/NativeMath.expm1 (; 25 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -2727,565 +1951,389 @@ (local $13 f64) (local $14 f64) (local $15 i32) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.and - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - (i64.const 2147483647) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 63) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1078159482) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (if - (get_local $4) - (return - (f64.const -1) - ) - ) - (if - (f64.gt - (get_local $0) - (f64.const 709.782712893384) - ) - (return - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - ) - ) - ) - (set_local $5 - (f64.const 0) - ) - (if - (i32.gt_u - (get_local $2) - (i32.const 1071001154) - ) - (block - (set_local $3 - (select - (i32.sub - (i32.const 1) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (i32.trunc_s/f64 - (f64.add - (f64.mul - (f64.const 1.4426950408889634) - (get_local $0) - ) - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - ) - (i32.lt_u - (get_local $2) - (i32.const 1072734898) - ) - ) - ) - (set_local $6 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (set_local $7 - (f64.sub - (get_local $0) - (f64.mul - (get_local $6) - (f64.const 0.6931471803691238) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $6) - (f64.const 1.9082149292705877e-10) - ) - ) - (set_local $0 - (f64.sub - (get_local $7) - (get_local $8) - ) - ) - (set_local $5 - (f64.sub - (f64.sub - (get_local $7) - (get_local $0) - ) - (get_local $8) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1016070144) - ) - (return - (get_local $0) - ) - ) - ) - (set_local $9 - (f64.mul - (f64.const 0.5) - (get_local $0) - ) - ) - (set_local $10 - (f64.mul - (get_local $0) - (get_local $9) - ) - ) - (set_local $11 - (f64.add - (f64.const 1) - (f64.mul - (get_local $10) - (f64.add - (f64.const -0.03333333333333313) - (f64.mul - (get_local $10) - (f64.add - (f64.const 1.5873015872548146e-03) - (f64.mul - (get_local $10) - (f64.add - (f64.const -7.93650757867488e-05) - (f64.mul - (get_local $10) - (f64.add - (f64.const 4.008217827329362e-06) - (f64.mul - (get_local $10) - (f64.const -2.0109921818362437e-07) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $6 - (f64.sub - (f64.const 3) - (f64.mul - (get_local $11) - (get_local $9) - ) - ) - ) - (set_local $12 - (f64.mul - (get_local $10) - (f64.div - (f64.sub - (get_local $11) - (get_local $6) - ) - (f64.sub - (f64.const 6) - (f64.mul - (get_local $0) - (get_local $6) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 0) - ) - (return - (f64.sub - (get_local $0) - (f64.sub - (f64.mul - (get_local $0) - (get_local $12) - ) - (get_local $10) - ) - ) - ) - ) - (set_local $12 - (f64.sub - (f64.mul - (get_local $0) - (f64.sub - (get_local $12) - (get_local $5) - ) - ) - (get_local $5) - ) - ) - (set_local $12 - (f64.sub - (get_local $12) - (get_local $10) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const -1) - ) - (return - (f64.sub - (f64.mul - (f64.const 0.5) - (f64.sub - (get_local $0) - (get_local $12) - ) - ) - (f64.const 0.5) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1) - ) - (block - (if - (f64.lt - (get_local $0) - (f64.const -0.25) - ) - (return - (f64.mul - (f64.const -2) - (f64.sub - (get_local $12) - (f64.add - (get_local $0) - (f64.const 0.5) - ) - ) - ) - ) - ) - (return - (f64.add - (f64.const 1) - (f64.mul - (f64.const 2) - (f64.sub - (get_local $0) - (get_local $12) - ) - ) - ) - ) - ) - ) - (set_local $1 - (i64.shl - (i64.add - (i64.const 1023) - (i64.extend_s/i32 - (get_local $3) - ) - ) - (i64.const 52) - ) - ) - (set_local $13 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (if - (if (result i32) - (tee_local $15 - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - (get_local $15) - (i32.gt_s - (get_local $3) - (i32.const 56) - ) - ) - (block - (set_local $14 - (f64.add - (f64.sub - (get_local $0) - (get_local $12) - ) - (f64.const 1) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1024) - ) - (set_local $14 - (f64.mul - (f64.mul - (get_local $14) - (f64.const 2) - ) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $14 - (f64.mul - (get_local $14) - (get_local $13) - ) - ) - ) - (return - (f64.sub - (get_local $14) - (f64.const 1) - ) - ) - ) - ) - (set_local $1 - (i64.shl - (i64.sub - (i64.const 1023) - (i64.extend_s/i32 - (get_local $3) - ) - ) - (i64.const 52) - ) - ) - (set_local $14 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 20) - ) - (set_local $14 - (f64.sub - (f64.sub - (f64.const 1) - (get_local $14) - ) - (get_local $12) - ) - ) - (set_local $14 - (f64.sub - (f64.const 1) - (f64.add - (get_local $12) - (get_local $14) - ) - ) - ) - ) - (f64.mul - (f64.add - (get_local $0) - (get_local $14) - ) - (get_local $13) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i64.const 2147483647 + i64.and + i32.wrap/i64 + set_local $2 + i32.const 0 + set_local $3 + get_local $1 + i64.const 63 + i64.shr_u + i32.wrap/i64 + set_local $4 + get_local $2 + i32.const 1078159482 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + get_local $4 + if + f64.const -1 + return + end + get_local $0 + f64.const 709.782712893384 + f64.gt + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + return + end + end + f64.const 0 + set_local $5 + get_local $2 + i32.const 1071001154 + i32.gt_u + if + i32.const 1 + get_local $4 + i32.const 1 + i32.shl + i32.sub + f64.const 1.4426950408889634 + get_local $0 + f64.mul + f64.const 0.5 + get_local $0 + f64.copysign + f64.add + i32.trunc_s/f64 + get_local $2 + i32.const 1072734898 + i32.lt_u + select + set_local $3 + get_local $3 + f64.convert_s/i32 + set_local $6 + get_local $0 + get_local $6 + f64.const 0.6931471803691238 + f64.mul + f64.sub + set_local $7 + get_local $6 + f64.const 1.9082149292705877e-10 + f64.mul + set_local $8 + get_local $7 + get_local $8 + f64.sub + set_local $0 + get_local $7 + get_local $0 + f64.sub + get_local $8 + f64.sub + set_local $5 + else + get_local $2 + i32.const 1016070144 + i32.lt_u + if + get_local $0 + return + end + end + f64.const 0.5 + get_local $0 + f64.mul + set_local $9 + get_local $0 + get_local $9 + f64.mul + set_local $10 + f64.const 1 + get_local $10 + f64.const -0.03333333333333313 + get_local $10 + f64.const 1.5873015872548146e-03 + get_local $10 + f64.const -7.93650757867488e-05 + get_local $10 + f64.const 4.008217827329362e-06 + get_local $10 + f64.const -2.0109921818362437e-07 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + set_local $11 + f64.const 3 + get_local $11 + get_local $9 + f64.mul + f64.sub + set_local $6 + get_local $10 + get_local $11 + get_local $6 + f64.sub + f64.const 6 + get_local $0 + get_local $6 + f64.mul + f64.sub + f64.div + f64.mul + set_local $12 + get_local $3 + i32.const 0 + i32.eq + if + get_local $0 + get_local $0 + get_local $12 + f64.mul + get_local $10 + f64.sub + f64.sub + return + end + get_local $0 + get_local $12 + get_local $5 + f64.sub + f64.mul + get_local $5 + f64.sub + set_local $12 + get_local $12 + get_local $10 + f64.sub + set_local $12 + get_local $3 + i32.const -1 + i32.eq + if + f64.const 0.5 + get_local $0 + get_local $12 + f64.sub + f64.mul + f64.const 0.5 + f64.sub + return + end + get_local $3 + i32.const 1 + i32.eq + if + get_local $0 + f64.const -0.25 + f64.lt + if + f64.const -2 + get_local $12 + get_local $0 + f64.const 0.5 + f64.add + f64.sub + f64.mul + return + end + f64.const 1 + f64.const 2 + get_local $0 + get_local $12 + f64.sub + f64.mul + f64.add + return + end + i64.const 1023 + get_local $3 + i64.extend_s/i32 + i64.add + i64.const 52 + i64.shl + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $13 + get_local $3 + i32.const 0 + i32.lt_s + tee_local $15 + if (result i32) + get_local $15 + else + get_local $3 + i32.const 56 + i32.gt_s + end + if + get_local $0 + get_local $12 + f64.sub + f64.const 1 + f64.add + set_local $14 + get_local $3 + i32.const 1024 + i32.eq + if + get_local $14 + f64.const 2 + f64.mul + f64.const 8988465674311579538646525e283 + f64.mul + set_local $14 + else + get_local $14 + get_local $13 + f64.mul + set_local $14 + end + get_local $14 + f64.const 1 + f64.sub + return + end + i64.const 1023 + get_local $3 + i64.extend_s/i32 + i64.sub + i64.const 52 + i64.shl + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $14 + get_local $3 + i32.const 20 + i32.lt_s + if + f64.const 1 + get_local $14 + f64.sub + get_local $12 + f64.sub + set_local $14 + else + f64.const 1 + get_local $12 + get_local $14 + f64.add + f64.sub + set_local $14 + end + get_local $0 + get_local $14 + f64.add + get_local $13 + f64.mul ) (func $~lib/math/NativeMath.scalbn (; 26 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (local $3 i32) (local $4 i32) - (set_local $2 - (get_local $0) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (tee_local $4 - (i32.const 1023) - ) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.mul - (f64.const 2.2250738585072014e-308) - (f64.const 9007199254740992) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.sub - (i32.const 1022) - (i32.const 53) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.mul - (f64.const 2.2250738585072014e-308) - (f64.const 9007199254740992) - ) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (i32.add - (get_local $1) - (i32.const 1022) - ) - (i32.const 53) - ) - ) - (tee_local $4 - (i32.const -1022) - ) - (i32.gt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $2) - (f64.reinterpret/i64 - (i64.shl - (i64.add - (i64.const 1023) - (i64.extend_s/i32 - (get_local $1) - ) - ) - (i64.const 52) - ) - ) - ) + get_local $0 + set_local $2 + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $2 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $2 + get_local $1 + i32.const 1023 + i32.sub + set_local $1 + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $2 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $2 + get_local $1 + i32.const 1023 + i32.sub + tee_local $3 + i32.const 1023 + tee_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + set_local $1 + end + else + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $2 + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + set_local $2 + get_local $1 + i32.const 1022 + i32.const 53 + i32.sub + i32.add + set_local $1 + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $2 + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + set_local $2 + get_local $1 + i32.const 1022 + i32.add + i32.const 53 + i32.sub + tee_local $3 + i32.const -1022 + tee_local $4 + get_local $3 + get_local $4 + i32.gt_s + select + set_local $1 + end + end + end + get_local $2 + i64.const 1023 + get_local $1 + i64.extend_s/i32 + i64.add + i64.const 52 + i64.shl + f64.reinterpret/i64 + f64.mul ) (func $~lib/math/NativeMath.exp (; 27 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) @@ -3296,392 +2344,270 @@ (local $6 f64) (local $7 f64) (local $8 f64) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (set_local $2 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 1082532651) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (if - (f64.gt - (get_local $0) - (f64.const 709.782712893384) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (f64.lt - (get_local $0) - (f64.const -745.1332191019411) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (set_local $4 - (f64.const 0) - ) - (set_local $5 - (i32.const 0) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1071001154) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 1072734898) - ) - (set_local $5 - (i32.trunc_s/f64 - (f64.add - (f64.mul - (f64.const 1.4426950408889634) - (get_local $0) - ) - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - ) - ) - (set_local $5 - (i32.sub - (i32.const 1) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - (set_local $3 - (f64.sub - (get_local $0) - (f64.mul - (f64.convert_s/i32 - (get_local $5) - ) - (f64.const 0.6931471803691238) - ) - ) - ) - (set_local $4 - (f64.mul - (f64.convert_s/i32 - (get_local $5) - ) - (f64.const 1.9082149292705877e-10) - ) - ) - (set_local $0 - (f64.sub - (get_local $3) - (get_local $4) - ) - ) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1043333120) - ) - (set_local $3 - (get_local $0) - ) - (return - (f64.add - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (set_local $6 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - (set_local $7 - (f64.sub - (get_local $0) - (f64.mul - (get_local $6) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $6) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $6) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $6) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $6) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (f64.add - (f64.const 1) - (f64.add - (f64.sub - (f64.div - (f64.mul - (get_local $0) - (get_local $7) - ) - (f64.sub - (f64.const 2) - (get_local $7) - ) - ) - (get_local $4) - ) - (get_local $3) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 0) - ) - (return - (get_local $8) - ) - ) - (call $~lib/math/NativeMath.scalbn - (get_local $8) - (get_local $5) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + get_local $1 + i32.const 31 + i32.shr_u + set_local $2 + get_local $1 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + i32.const 1082532651 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + get_local $0 + f64.const 709.782712893384 + f64.gt + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $0 + get_local $0 + return + end + get_local $0 + f64.const -745.1332191019411 + f64.lt + if + f64.const 0 + return + end + end + f64.const 0 + set_local $4 + i32.const 0 + set_local $5 + get_local $1 + i32.const 1071001154 + i32.gt_u + if + get_local $1 + i32.const 1072734898 + i32.ge_u + if + f64.const 1.4426950408889634 + get_local $0 + f64.mul + f64.const 0.5 + get_local $0 + f64.copysign + f64.add + i32.trunc_s/f64 + set_local $5 + else + i32.const 1 + get_local $2 + i32.const 1 + i32.shl + i32.sub + set_local $5 + end + get_local $0 + get_local $5 + f64.convert_s/i32 + f64.const 0.6931471803691238 + f64.mul + f64.sub + set_local $3 + get_local $5 + f64.convert_s/i32 + f64.const 1.9082149292705877e-10 + f64.mul + set_local $4 + get_local $3 + get_local $4 + f64.sub + set_local $0 + else + get_local $1 + i32.const 1043333120 + i32.gt_u + if + get_local $0 + set_local $3 + else + f64.const 1 + get_local $0 + f64.add + return + end + end + get_local $0 + get_local $0 + f64.mul + set_local $6 + get_local $0 + get_local $6 + f64.const 0.16666666666666602 + get_local $6 + f64.const -2.7777777777015593e-03 + get_local $6 + f64.const 6.613756321437934e-05 + get_local $6 + f64.const -1.6533902205465252e-06 + get_local $6 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + set_local $7 + f64.const 1 + get_local $0 + get_local $7 + f64.mul + f64.const 2 + get_local $7 + f64.sub + f64.div + get_local $4 + f64.sub + get_local $3 + f64.add + f64.add + set_local $8 + get_local $5 + i32.const 0 + i32.eq + if + get_local $8 + return + end + get_local $8 + get_local $5 + call $~lib/math/NativeMath.scalbn ) (func $~lib/math/NativeMath.cosh (; 28 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) (local $4 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.const 9223372036854775807) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1072049730) - ) - (block - (if - (i32.lt_u - (get_local $2) - (i32.sub - (i32.const 1072693248) - (i32.shl - (i32.const 26) - (i32.const 20) - ) - ) - ) - (return - (f64.const 1) - ) - ) - (set_local $3 - (call $~lib/math/NativeMath.expm1 - (get_local $0) - ) - ) - (return - (f64.add - (f64.const 1) - (f64.div - (f64.mul - (get_local $3) - (get_local $3) - ) - (f64.add - (f64.const 2) - (f64.mul - (f64.const 2) - (get_local $3) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1082535490) - ) - (block - (set_local $3 - (call $~lib/math/NativeMath.exp - (get_local $0) - ) - ) - (return - (f64.mul - (f64.const 0.5) - (f64.add - (get_local $3) - (f64.div - (f64.const 1) - (get_local $3) - ) - ) - ) - ) - ) - ) - (set_local $3 - (block $~lib/math/expo2|inlined.0 (result f64) - (set_local $4 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_u/i32 - (i32.shl - (i32.add - (i32.const 1023) - (i32.div_u - (i32.const 2043) - (i32.const 2) - ) - ) - (i32.const 20) - ) - ) - (i64.const 32) - ) - ) - ) - (f64.mul - (f64.mul - (call $~lib/math/NativeMath.exp - (f64.sub - (get_local $0) - (f64.const 1416.0996898839683) - ) - ) - (get_local $4) - ) - (get_local $4) - ) - ) - ) - (get_local $3) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 9223372036854775807 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $0 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + get_local $2 + i32.const 1072049730 + i32.lt_u + if + get_local $2 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub + i32.lt_u + if + f64.const 1 + return + end + get_local $0 + call $~lib/math/NativeMath.expm1 + set_local $3 + f64.const 1 + get_local $3 + get_local $3 + f64.mul + f64.const 2 + f64.const 2 + get_local $3 + f64.mul + f64.add + f64.div + f64.add + return + end + get_local $2 + i32.const 1082535490 + i32.lt_u + if + get_local $0 + call $~lib/math/NativeMath.exp + set_local $3 + f64.const 0.5 + get_local $3 + f64.const 1 + get_local $3 + f64.div + f64.add + f64.mul + return + end + block $~lib/math/expo2|inlined.0 (result f64) + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_u/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $4 + get_local $0 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + get_local $4 + f64.mul + get_local $4 + f64.mul + end + set_local $3 + get_local $3 ) (func $std/libm/cosh (; 29 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.cosh - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.cosh ) (func $std/libm/exp (; 30 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.exp - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.exp ) (func $std/libm/expm1 (; 31 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.expm1 - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.expm1 ) (func $std/libm/floor (; 32 ;) (type $FF) (param $0 f64) (result f64) - (block $~lib/math/NativeMath.floor|inlined.0 (result f64) - (f64.floor - (get_local $0) - ) - ) + get_local $0 + f64.floor ) (func $std/libm/fround (; 33 ;) (type $Ff) (param $0 f64) (result f32) - (block $~lib/math/NativeMath.fround|inlined.0 (result f32) - (f32.demote/f64 - (get_local $0) - ) - ) + get_local $0 + f32.demote/f64 ) (func $~lib/math/NativeMath.hypot (; 34 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -3698,308 +2624,213 @@ (local $13 f64) (local $14 f64) (local $15 f64) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $2 - (i64.and - (get_local $2) - (i64.const 9223372036854775807) - ) - ) - (set_local $3 - (i64.and - (get_local $3) - (i64.const 9223372036854775807) - ) - ) - (if - (i64.lt_u - (get_local $2) - (get_local $3) - ) - (block - (set_local $4 - (get_local $2) - ) - (set_local $2 - (get_local $3) - ) - (set_local $3 - (get_local $4) - ) - ) - ) - (set_local $5 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 52) - ) - ) - ) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.const 52) - ) - ) - ) - (set_local $1 - (f64.reinterpret/i64 - (get_local $3) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 2047) - ) - (return - (get_local $1) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $2) - ) - ) - (if - (if (result i32) - (tee_local $7 - (i32.eq - (get_local $5) - (i32.const 2047) - ) - ) - (get_local $7) - (i64.eq - (get_local $3) - (i64.const 0) - ) - ) - (return - (get_local $0) - ) - ) - (if - (i32.gt_s - (i32.sub - (get_local $5) - (get_local $6) - ) - (i32.const 64) - ) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $8 - (f64.const 1) - ) - (if - (i32.gt_s - (get_local $5) - (i32.add - (i32.const 1023) - (i32.const 510) - ) - ) - (block - (set_local $8 - (f64.const 5260135901548373507240989e186) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 1.90109156629516e-211) - ) - ) - (set_local $1 - (f64.mul - (get_local $1) - (f64.const 1.90109156629516e-211) - ) - ) - ) - (if - (i32.lt_s - (get_local $6) - (i32.sub - (i32.const 1023) - (i32.const 450) - ) - ) - (block - (set_local $8 - (f64.const 1.90109156629516e-211) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 5260135901548373507240989e186) - ) - ) - (set_local $1 - (f64.mul - (get_local $1) - (f64.const 5260135901548373507240989e186) - ) - ) - ) - ) - ) - (set_local $9 - (f64.mul - (get_local $0) - (f64.const 134217729) - ) - ) - (set_local $10 - (f64.add - (f64.sub - (get_local $0) - (get_local $9) - ) - (get_local $9) - ) - ) - (set_local $11 - (f64.sub - (get_local $0) - (get_local $10) - ) - ) - (set_local $12 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - (set_local $13 - (f64.add - (f64.sub - (f64.mul - (get_local $10) - (get_local $10) - ) - (get_local $12) - ) - (f64.mul - (f64.add - (f64.mul - (f64.const 2) - (get_local $10) - ) - (get_local $11) - ) - (get_local $11) - ) - ) - ) - (set_local $9 - (f64.mul - (get_local $1) - (f64.const 134217729) - ) - ) - (set_local $10 - (f64.add - (f64.sub - (get_local $1) - (get_local $9) - ) - (get_local $9) - ) - ) - (set_local $11 - (f64.sub - (get_local $1) - (get_local $10) - ) - ) - (set_local $14 - (f64.mul - (get_local $1) - (get_local $1) - ) - ) - (set_local $15 - (f64.add - (f64.sub - (f64.mul - (get_local $10) - (get_local $10) - ) - (get_local $14) - ) - (f64.mul - (f64.add - (f64.mul - (f64.const 2) - (get_local $10) - ) - (get_local $11) - ) - (get_local $11) - ) - ) - ) - (f64.mul - (get_local $8) - (f64.sqrt - (f64.add - (f64.add - (f64.add - (get_local $15) - (get_local $13) - ) - (get_local $14) - ) - (get_local $12) - ) - ) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $2 + i64.const 9223372036854775807 + i64.and + set_local $2 + get_local $3 + i64.const 9223372036854775807 + i64.and + set_local $3 + get_local $2 + get_local $3 + i64.lt_u + if + get_local $2 + set_local $4 + get_local $3 + set_local $2 + get_local $4 + set_local $3 + end + get_local $2 + i64.const 52 + i64.shr_u + i32.wrap/i64 + set_local $5 + get_local $3 + i64.const 52 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $3 + f64.reinterpret/i64 + set_local $1 + get_local $6 + i32.const 2047 + i32.eq + if + get_local $1 + return + end + get_local $2 + f64.reinterpret/i64 + set_local $0 + get_local $5 + i32.const 2047 + i32.eq + tee_local $7 + if (result i32) + get_local $7 + else + get_local $3 + i64.const 0 + i64.eq + end + if + get_local $0 + return + end + get_local $5 + get_local $6 + i32.sub + i32.const 64 + i32.gt_s + if + get_local $0 + get_local $1 + f64.add + return + end + f64.const 1 + set_local $8 + get_local $5 + i32.const 1023 + i32.const 510 + i32.add + i32.gt_s + if + f64.const 5260135901548373507240989e186 + set_local $8 + get_local $0 + f64.const 1.90109156629516e-211 + f64.mul + set_local $0 + get_local $1 + f64.const 1.90109156629516e-211 + f64.mul + set_local $1 + else + get_local $6 + i32.const 1023 + i32.const 450 + i32.sub + i32.lt_s + if + f64.const 1.90109156629516e-211 + set_local $8 + get_local $0 + f64.const 5260135901548373507240989e186 + f64.mul + set_local $0 + get_local $1 + f64.const 5260135901548373507240989e186 + f64.mul + set_local $1 + end + end + get_local $0 + f64.const 134217729 + f64.mul + set_local $9 + get_local $0 + get_local $9 + f64.sub + get_local $9 + f64.add + set_local $10 + get_local $0 + get_local $10 + f64.sub + set_local $11 + get_local $0 + get_local $0 + f64.mul + set_local $12 + get_local $10 + get_local $10 + f64.mul + get_local $12 + f64.sub + f64.const 2 + get_local $10 + f64.mul + get_local $11 + f64.add + get_local $11 + f64.mul + f64.add + set_local $13 + get_local $1 + f64.const 134217729 + f64.mul + set_local $9 + get_local $1 + get_local $9 + f64.sub + get_local $9 + f64.add + set_local $10 + get_local $1 + get_local $10 + f64.sub + set_local $11 + get_local $1 + get_local $1 + f64.mul + set_local $14 + get_local $10 + get_local $10 + f64.mul + get_local $14 + f64.sub + f64.const 2 + get_local $10 + f64.mul + get_local $11 + f64.add + get_local $11 + f64.mul + f64.add + set_local $15 + get_local $8 + get_local $15 + get_local $13 + f64.add + get_local $14 + f64.add + get_local $12 + f64.add + f64.sqrt + f64.mul ) (func $std/libm/hypot (; 35 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (call $~lib/math/NativeMath.hypot - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.hypot ) (func $~lib/math/NativeMath.imul (; 36 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (f64.convert_s/i32 - (i32.mul - (i32.trunc_s/f64 - (get_local $0) - ) - (i32.trunc_s/f64 - (get_local $1) - ) - ) - ) + get_local $0 + i32.trunc_s/f64 + get_local $1 + i32.trunc_s/f64 + i32.mul + f64.convert_s/i32 ) (func $std/libm/imul (; 37 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (call $~lib/math/NativeMath.imul - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.imul ) (func $std/libm/log (; 38 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.log - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.log ) (func $~lib/math/NativeMath.log10 (; 39 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -4020,370 +2851,257 @@ (local $16 f64) (local $17 f64) (local $18 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.lt_u - (get_local $2) - (i32.const 1048576) - ) - ) - (get_local $4) - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (block - (if - (i64.eq - (i64.shl - (get_local $1) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 54) - ) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eq - (get_local $2) - (i32.const 1072693248) - ) - ) - (i64.eq - (i64.shl - (get_local $1) - (i64.const 32) - ) - (i64.const 0) - ) - (get_local $4) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.const 1072693248) - (i32.const 1072079006) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_u - (get_local $2) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $2 - (i32.add - (i32.and - (get_local $2) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (set_local $1 - (i64.or - (i64.shl - (i64.extend_u/i32 - (get_local $2) - ) - (i64.const 32) - ) - (i64.and - (get_local $1) - (i64.const 4294967295) - ) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $5 - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (set_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (set_local $7 - (f64.div - (get_local $5) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (set_local $9 - (f64.mul - (get_local $8) - (get_local $8) - ) - ) - (set_local $10 - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $9) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - (set_local $11 - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $9) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $12 - (f64.add - (get_local $11) - (get_local $10) - ) - ) - (set_local $13 - (f64.sub - (get_local $5) - (get_local $6) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $13) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.const -4294967296) - ) - ) - (set_local $13 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $14 - (f64.add - (f64.sub - (f64.sub - (get_local $5) - (get_local $13) - ) - (get_local $6) - ) - (f64.mul - (get_local $7) - (f64.add - (get_local $6) - (get_local $12) - ) - ) - ) - ) - (set_local $15 - (f64.mul - (get_local $13) - (f64.const 0.4342944818781689) - ) - ) - (set_local $16 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (set_local $17 - (f64.mul - (get_local $16) - (f64.const 0.30102999566361177) - ) - ) - (set_local $18 - (f64.add - (f64.add - (f64.mul - (get_local $16) - (f64.const 3.694239077158931e-13) - ) - (f64.mul - (f64.add - (get_local $14) - (get_local $13) - ) - (f64.const 2.5082946711645275e-11) - ) - ) - (f64.mul - (get_local $14) - (f64.const 0.4342944818781689) - ) - ) - ) - (set_local $9 - (f64.add - (get_local $17) - (get_local $15) - ) - ) - (set_local $18 - (f64.add - (get_local $18) - (f64.add - (f64.sub - (get_local $17) - (get_local $9) - ) - (get_local $15) - ) - ) - ) - (f64.add - (get_local $18) - (get_local $9) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + i32.const 0 + set_local $3 + get_local $2 + i32.const 1048576 + i32.lt_u + tee_local $4 + if (result i32) + get_local $4 + else + get_local $2 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $2 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $3 + i32.const 54 + i32.sub + set_local $3 + get_local $0 + f64.const 18014398509481984 + f64.mul + set_local $0 + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + else + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $2 + i32.const 1072693248 + i32.eq + tee_local $4 + if (result i32) + get_local $1 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + else + get_local $4 + end + if + f64.const 0 + return + end + end + end + get_local $2 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + set_local $2 + get_local $3 + get_local $2 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + i32.add + set_local $3 + get_local $2 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + set_local $2 + get_local $2 + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $1 + i64.const 4294967295 + i64.and + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $0 + get_local $0 + f64.const 1 + f64.sub + set_local $5 + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + set_local $6 + get_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + set_local $7 + get_local $7 + get_local $7 + f64.mul + set_local $8 + get_local $8 + get_local $8 + f64.mul + set_local $9 + get_local $9 + f64.const 0.3999999999940942 + get_local $9 + f64.const 0.22222198432149784 + get_local $9 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $10 + get_local $8 + f64.const 0.6666666666666735 + get_local $9 + f64.const 0.2857142874366239 + get_local $9 + f64.const 0.1818357216161805 + get_local $9 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $11 + get_local $11 + get_local $10 + f64.add + set_local $12 + get_local $5 + get_local $6 + f64.sub + set_local $13 + get_local $13 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const -4294967296 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $13 + get_local $5 + get_local $13 + f64.sub + get_local $6 + f64.sub + get_local $7 + get_local $6 + get_local $12 + f64.add + f64.mul + f64.add + set_local $14 + get_local $13 + f64.const 0.4342944818781689 + f64.mul + set_local $15 + get_local $3 + f64.convert_s/i32 + set_local $16 + get_local $16 + f64.const 0.30102999566361177 + f64.mul + set_local $17 + get_local $16 + f64.const 3.694239077158931e-13 + f64.mul + get_local $14 + get_local $13 + f64.add + f64.const 2.5082946711645275e-11 + f64.mul + f64.add + get_local $14 + f64.const 0.4342944818781689 + f64.mul + f64.add + set_local $18 + get_local $17 + get_local $15 + f64.add + set_local $9 + get_local $18 + get_local $17 + get_local $9 + f64.sub + get_local $15 + f64.add + f64.add + set_local $18 + get_local $18 + get_local $9 + f64.add ) (func $std/libm/log10 (; 40 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.log10 - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.log10 ) (func $std/libm/log1p (; 41 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.log1p - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.log1p ) (func $~lib/math/NativeMath.log2 (; 42 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -4403,372 +3121,257 @@ (local $15 f64) (local $16 f64) (local $17 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.lt_u - (get_local $2) - (i32.const 1048576) - ) - ) - (get_local $4) - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (block - (if - (i64.eq - (i64.shl - (get_local $1) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 54) - ) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eq - (get_local $2) - (i32.const 1072693248) - ) - ) - (i64.eq - (i64.shl - (get_local $1) - (i64.const 32) - ) - (i64.const 0) - ) - (get_local $4) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.const 1072693248) - (i32.const 1072079006) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_u - (get_local $2) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $2 - (i32.add - (i32.and - (get_local $2) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (set_local $1 - (i64.or - (i64.shl - (i64.extend_u/i32 - (get_local $2) - ) - (i64.const 32) - ) - (i64.and - (get_local $1) - (i64.const 4294967295) - ) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $5 - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (set_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (set_local $7 - (f64.div - (get_local $5) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (set_local $9 - (f64.mul - (get_local $8) - (get_local $8) - ) - ) - (set_local $10 - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $9) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - (set_local $11 - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $9) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $12 - (f64.add - (get_local $11) - (get_local $10) - ) - ) - (set_local $13 - (f64.sub - (get_local $5) - (get_local $6) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $13) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.const -4294967296) - ) - ) - (set_local $13 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $14 - (f64.add - (f64.sub - (f64.sub - (get_local $5) - (get_local $13) - ) - (get_local $6) - ) - (f64.mul - (get_local $7) - (f64.add - (get_local $6) - (get_local $12) - ) - ) - ) - ) - (set_local $15 - (f64.mul - (get_local $13) - (f64.const 1.4426950407214463) - ) - ) - (set_local $16 - (f64.add - (f64.mul - (f64.add - (get_local $14) - (get_local $13) - ) - (f64.const 1.6751713164886512e-10) - ) - (f64.mul - (get_local $14) - (f64.const 1.4426950407214463) - ) - ) - ) - (set_local $17 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (set_local $9 - (f64.add - (get_local $17) - (get_local $15) - ) - ) - (set_local $16 - (f64.add - (get_local $16) - (f64.add - (f64.sub - (get_local $17) - (get_local $9) - ) - (get_local $15) - ) - ) - ) - (set_local $15 - (get_local $9) - ) - (f64.add - (get_local $16) - (get_local $15) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + i32.const 0 + set_local $3 + get_local $2 + i32.const 1048576 + i32.lt_u + tee_local $4 + if (result i32) + get_local $4 + else + get_local $2 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $2 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $3 + i32.const 54 + i32.sub + set_local $3 + get_local $0 + f64.const 18014398509481984 + f64.mul + set_local $0 + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + else + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $2 + i32.const 1072693248 + i32.eq + tee_local $4 + if (result i32) + get_local $1 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + else + get_local $4 + end + if + f64.const 0 + return + end + end + end + get_local $2 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + set_local $2 + get_local $3 + get_local $2 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + i32.add + set_local $3 + get_local $2 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + set_local $2 + get_local $2 + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $1 + i64.const 4294967295 + i64.and + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $0 + get_local $0 + f64.const 1 + f64.sub + set_local $5 + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + set_local $6 + get_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + set_local $7 + get_local $7 + get_local $7 + f64.mul + set_local $8 + get_local $8 + get_local $8 + f64.mul + set_local $9 + get_local $9 + f64.const 0.3999999999940942 + get_local $9 + f64.const 0.22222198432149784 + get_local $9 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $10 + get_local $8 + f64.const 0.6666666666666735 + get_local $9 + f64.const 0.2857142874366239 + get_local $9 + f64.const 0.1818357216161805 + get_local $9 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $11 + get_local $11 + get_local $10 + f64.add + set_local $12 + get_local $5 + get_local $6 + f64.sub + set_local $13 + get_local $13 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const -4294967296 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $13 + get_local $5 + get_local $13 + f64.sub + get_local $6 + f64.sub + get_local $7 + get_local $6 + get_local $12 + f64.add + f64.mul + f64.add + set_local $14 + get_local $13 + f64.const 1.4426950407214463 + f64.mul + set_local $15 + get_local $14 + get_local $13 + f64.add + f64.const 1.6751713164886512e-10 + f64.mul + get_local $14 + f64.const 1.4426950407214463 + f64.mul + f64.add + set_local $16 + get_local $3 + f64.convert_s/i32 + set_local $17 + get_local $17 + get_local $15 + f64.add + set_local $9 + get_local $16 + get_local $17 + get_local $9 + f64.sub + get_local $15 + f64.add + f64.add + set_local $16 + get_local $9 + set_local $15 + get_local $16 + get_local $15 + f64.add ) (func $std/libm/log2 (; 43 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.log2 - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.log2 ) (func $std/libm/max (; 44 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (block $~lib/math/NativeMath.max|inlined.0 (result f64) - (f64.max - (get_local $0) - (get_local $1) - ) - ) + get_local $0 + get_local $1 + f64.max ) (func $std/libm/min (; 45 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (block $~lib/math/NativeMath.min|inlined.0 (result f64) - (f64.min - (get_local $0) - (get_local $1) - ) - ) + get_local $0 + get_local $1 + f64.min ) (func $~lib/math/NativeMath.pow (; 46 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -4810,1548 +3413,1093 @@ (local $38 f64) (local $39 f64) (local $40 i32) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $4 - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_local $2 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $5 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $6 - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_local $7 - (i32.and - (get_local $3) - (i32.const 2147483647) - ) - ) - (set_local $8 - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (i32.or - (get_local $8) - (get_local $6) - ) - (i32.const 0) - ) - (return - (f64.const 1) - ) - ) - (if - (if (result i32) - (tee_local $9 - (if (result i32) - (tee_local $9 - (if (result i32) - (tee_local $9 - (i32.gt_s - (get_local $7) - (i32.const 2146435072) - ) - ) - (get_local $9) - (if (result i32) - (tee_local $9 - (i32.eq - (get_local $7) - (i32.const 2146435072) - ) - ) - (i32.ne - (get_local $4) - (i32.const 0) - ) - (get_local $9) - ) - ) - ) - (get_local $9) - (i32.gt_s - (get_local $8) - (i32.const 2146435072) - ) - ) - ) - (get_local $9) - (if (result i32) - (tee_local $9 - (i32.eq - (get_local $8) - (i32.const 2146435072) - ) - ) - (i32.ne - (get_local $6) - (i32.const 0) - ) - (get_local $9) - ) - ) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $10 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (if - (i32.ge_s - (get_local $8) - (i32.const 1128267776) - ) - (set_local $10 - (i32.const 2) - ) - (if - (i32.ge_s - (get_local $8) - (i32.const 1072693248) - ) - (block - (set_local $11 - (i32.sub - (i32.shr_s - (get_local $8) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $9 - (i32.sub - (select - (i32.const 52) - (i32.const 20) - (i32.gt_s - (get_local $11) - (i32.const 20) - ) - ) - (get_local $11) - ) - ) - (set_local $12 - (select - (get_local $6) - (get_local $8) - (i32.gt_s - (get_local $11) - (i32.const 20) - ) - ) - ) - (set_local $13 - (i32.shr_s - (get_local $12) - (get_local $9) - ) - ) - (if - (i32.eq - (i32.shl - (get_local $13) - (get_local $9) - ) - (get_local $12) - ) - (set_local $10 - (i32.sub - (i32.const 2) - (i32.and - (get_local $13) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 0) - ) - (block - (if - (i32.eq - (get_local $8) - (i32.const 2146435072) - ) - (block - (if - (i32.eq - (i32.or - (i32.sub - (get_local $7) - (i32.const 1072693248) - ) - (get_local $4) - ) - (i32.const 0) - ) - (return - (f64.const nan:0x8000000000000) - ) - (if - (i32.ge_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (get_local $1) - (f64.const 0) - ) - ) - (return - (if (result f64) - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (f64.const 0) - (f64.neg - (get_local $1) - ) - ) - ) - ) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 1072693248) - ) - (block - (if - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1073741824) - ) - (return - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1071644672) - ) - (if - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (return - (f64.sqrt - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $14 - (f64.abs - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $13 - (if (result i32) - (tee_local $13 - (i32.eq - (get_local $7) - (i32.const 2146435072) - ) - ) - (get_local $13) - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - ) - (get_local $13) - (i32.eq - (get_local $7) - (i32.const 1072693248) - ) - ) - (block - (set_local $15 - (get_local $14) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (set_local $15 - (f64.div - (f64.const 1) - (get_local $15) - ) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $7) - (i32.const 1072693248) - ) - (get_local $10) - ) - (i32.const 0) - ) - (set_local $15 - (f64.div - (f64.sub - (get_local $15) - (get_local $15) - ) - (f64.sub - (get_local $15) - (get_local $15) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (i32.const 1) - ) - (set_local $15 - (f64.neg - (get_local $15) - ) - ) - ) - ) - ) - (return - (get_local $15) - ) - ) - ) - ) - (set_local $16 - (f64.const 1) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (block - (if - (i32.eq - (get_local $10) - (i32.const 0) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (i32.const 1) - ) - (set_local $16 - (f64.const -1) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $8) - (i32.const 1105199104) - ) - (block - (if - (i32.gt_s - (get_local $8) - (i32.const 1139802112) - ) - (block - (if - (i32.le_s - (get_local $7) - (i32.const 1072693247) - ) - (return - (if (result f64) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.const 1.e+300) - (f64.const 1.e+300) - ) - (f64.mul - (f64.const 1e-300) - (f64.const 1e-300) - ) - ) - ) - ) - (if - (i32.ge_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.const 1.e+300) - (f64.const 1.e+300) - ) - (f64.mul - (f64.const 1e-300) - (f64.const 1e-300) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 1072693247) - ) - (return - (if (result f64) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - (set_local $22 - (f64.sub - (get_local $14) - (f64.const 1) - ) - ) - (set_local $25 - (f64.mul - (f64.mul - (get_local $22) - (get_local $22) - ) - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $22) - (f64.sub - (f64.const 0.3333333333333333) - (f64.mul - (get_local $22) - (f64.const 0.25) - ) - ) - ) - ) - ) - ) - (set_local $23 - (f64.mul - (f64.const 1.4426950216293335) - (get_local $22) - ) - ) - (set_local $24 - (f64.sub - (f64.mul - (get_local $22) - (f64.const 1.9259629911266175e-08) - ) - (f64.mul - (get_local $25) - (f64.const 1.4426950408889634) - ) - ) - ) - (set_local $17 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $17 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $17) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $18 - (f64.sub - (get_local $24) - (f64.sub - (get_local $17) - (get_local $23) - ) - ) - ) - ) - (block - (set_local $27 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 1048576) - ) - (block - (set_local $14 - (f64.mul - (get_local $14) - (f64.const 9007199254740992) - ) - ) - (set_local $27 - (i32.sub - (get_local $27) - (i32.const 53) - ) - ) - (set_local $7 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $14) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (set_local $27 - (i32.add - (get_local $27) - (i32.sub - (i32.shr_s - (get_local $7) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $26 - (i32.and - (get_local $7) - (i32.const 1048575) - ) - ) - (set_local $7 - (i32.or - (get_local $26) - (i32.const 1072693248) - ) - ) - (if - (i32.le_s - (get_local $26) - (i32.const 235662) - ) - (set_local $11 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $26) - (i32.const 767610) - ) - (set_local $11 - (i32.const 1) - ) - (block - (set_local $11 - (i32.const 0) - ) - (set_local $27 - (i32.add - (get_local $27) - (i32.const 1) - ) - ) - (set_local $7 - (i32.sub - (get_local $7) - (i32.const 1048576) - ) - ) - ) - ) - ) - (set_local $14 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $14) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $7) - ) - (i64.const 32) - ) - ) - ) - ) - (set_local $34 - (select - (f64.const 1.5) - (f64.const 1) - (get_local $11) - ) - ) - (set_local $23 - (f64.sub - (get_local $14) - (get_local $34) - ) - ) - (set_local $24 - (f64.div - (f64.const 1) - (f64.add - (get_local $14) - (get_local $34) - ) - ) - ) - (set_local $28 - (f64.mul - (get_local $23) - (get_local $24) - ) - ) - (set_local $30 - (get_local $28) - ) - (set_local $30 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $30) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $32 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.add - (i32.add - (i32.or - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - (i32.const 536870912) - ) - (i32.const 524288) - ) - (i32.shl - (get_local $11) - (i32.const 18) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $33 - (f64.sub - (get_local $14) - (f64.sub - (get_local $32) - (get_local $34) - ) - ) - ) - (set_local $31 - (f64.mul - (get_local $24) - (f64.sub - (f64.sub - (get_local $23) - (f64.mul - (get_local $30) - (get_local $32) - ) - ) - (f64.mul - (get_local $30) - (get_local $33) - ) - ) - ) - ) - (set_local $29 - (f64.mul - (get_local $28) - (get_local $28) - ) - ) - (set_local $21 - (f64.mul - (f64.mul - (get_local $29) - (get_local $29) - ) - (f64.add - (f64.const 0.5999999999999946) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.4285714285785502) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.33333332981837743) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.272728123808534) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.23066074577556175) - (f64.mul - (get_local $29) - (f64.const 0.20697501780033842) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $21 - (f64.add - (get_local $21) - (f64.mul - (get_local $31) - (f64.add - (get_local $30) - (get_local $28) - ) - ) - ) - ) - (set_local $29 - (f64.mul - (get_local $30) - (get_local $30) - ) - ) - (set_local $32 - (f64.add - (f64.add - (f64.const 3) - (get_local $29) - ) - (get_local $21) - ) - ) - (set_local $32 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $32) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $33 - (f64.sub - (get_local $21) - (f64.sub - (f64.sub - (get_local $32) - (f64.const 3) - ) - (get_local $29) - ) - ) - ) - (set_local $23 - (f64.mul - (get_local $30) - (get_local $32) - ) - ) - (set_local $24 - (f64.add - (f64.mul - (get_local $31) - (get_local $32) - ) - (f64.mul - (get_local $33) - (get_local $28) - ) - ) - ) - (set_local $19 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $19 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $19) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $20 - (f64.sub - (get_local $24) - (f64.sub - (get_local $19) - (get_local $23) - ) - ) - ) - (set_local $35 - (f64.mul - (f64.const 0.9617967009544373) - (get_local $19) - ) - ) - (set_local $36 - (select - (f64.const 1.350039202129749e-08) - (f64.const 0) - (get_local $11) - ) - ) - (set_local $37 - (f64.add - (f64.add - (f64.mul - (f64.const -7.028461650952758e-09) - (get_local $19) - ) - (f64.mul - (get_local $20) - (f64.const 0.9617966939259756) - ) - ) - (get_local $36) - ) - ) - (set_local $22 - (f64.convert_s/i32 - (get_local $27) - ) - ) - (set_local $38 - (select - (f64.const 0.5849624872207642) - (f64.const 0) - (get_local $11) - ) - ) - (set_local $17 - (f64.add - (f64.add - (f64.add - (get_local $35) - (get_local $37) - ) - (get_local $38) - ) - (get_local $22) - ) - ) - (set_local $17 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $17) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $18 - (f64.sub - (get_local $37) - (f64.sub - (f64.sub - (f64.sub - (get_local $17) - (get_local $22) - ) - (get_local $38) - ) - (get_local $35) - ) - ) - ) - ) - ) - (set_local $39 - (get_local $1) - ) - (set_local $39 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $39) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $20 - (f64.add - (f64.mul - (f64.sub - (get_local $1) - (get_local $39) - ) - (get_local $17) - ) - (f64.mul - (get_local $1) - (get_local $18) - ) - ) - ) - (set_local $19 - (f64.mul - (get_local $39) - (get_local $17) - ) - ) - (set_local $15 - (f64.add - (get_local $20) - (get_local $19) - ) - ) - (set_local $2 - (i64.reinterpret/f64 - (get_local $15) - ) - ) - (set_local $26 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $40 - (i32.wrap/i64 - (get_local $2) - ) - ) - (if - (i32.ge_s - (get_local $26) - (i32.const 1083179008) - ) - (block - (if - (i32.ne - (i32.or - (i32.sub - (get_local $26) - (i32.const 1083179008) - ) - (get_local $40) - ) - (i32.const 0) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - ) - ) - (if - (f64.gt - (f64.add - (get_local $20) - (f64.const 8.008566259537294e-17) - ) - (f64.sub - (get_local $15) - (get_local $19) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - ) - ) - ) - (if - (i32.ge_s - (i32.and - (get_local $26) - (i32.const 2147483647) - ) - (i32.const 1083231232) - ) - (block - (if - (i32.ne - (i32.or - (i32.sub - (get_local $26) - (i32.const -1064252416) - ) - (get_local $40) - ) - (i32.const 0) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - (if - (f64.le - (get_local $20) - (f64.sub - (get_local $15) - (get_local $19) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - ) - ) - (set_local $40 - (i32.and - (get_local $26) - (i32.const 2147483647) - ) - ) - (set_local $11 - (i32.sub - (i32.shr_s - (get_local $40) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $27 - (i32.const 0) - ) - (if - (i32.gt_s - (get_local $40) - (i32.const 1071644672) - ) - (block - (set_local $27 - (i32.add - (get_local $26) - (i32.shr_s - (i32.const 1048576) - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - ) - ) - (set_local $11 - (i32.sub - (i32.shr_s - (i32.and - (get_local $27) - (i32.const 2147483647) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $22 - (f64.const 0) - ) - (set_local $22 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.and - (get_local $27) - (i32.xor - (i32.shr_s - (i32.const 1048575) - (get_local $11) - ) - (i32.const -1) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $27 - (i32.shr_s - (i32.or - (i32.and - (get_local $27) - (i32.const 1048575) - ) - (i32.const 1048576) - ) - (i32.sub - (i32.const 20) - (get_local $11) - ) - ) - ) - (if - (i32.lt_s - (get_local $26) - (i32.const 0) - ) - (set_local $27 - (i32.sub - (i32.const 0) - (get_local $27) - ) - ) - ) - (set_local $19 - (f64.sub - (get_local $19) - (get_local $22) - ) - ) - ) - ) - (set_local $22 - (f64.add - (get_local $20) - (get_local $19) - ) - ) - (set_local $22 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $22) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $23 - (f64.mul - (get_local $22) - (f64.const 0.6931471824645996) - ) - ) - (set_local $24 - (f64.add - (f64.mul - (f64.sub - (get_local $20) - (f64.sub - (get_local $22) - (get_local $19) - ) - ) - (f64.const 0.6931471805599453) - ) - (f64.mul - (get_local $22) - (f64.const -1.904654299957768e-09) - ) - ) - ) - (set_local $15 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $25 - (f64.sub - (get_local $24) - (f64.sub - (get_local $15) - (get_local $23) - ) - ) - ) - (set_local $22 - (f64.mul - (get_local $15) - (get_local $15) - ) - ) - (set_local $17 - (f64.sub - (get_local $15) - (f64.mul - (get_local $22) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $22) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $22) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $22) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $22) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $21 - (f64.sub - (f64.div - (f64.mul - (get_local $15) - (get_local $17) - ) - (f64.sub - (get_local $17) - (f64.const 2) - ) - ) - (f64.add - (get_local $25) - (f64.mul - (get_local $15) - (get_local $25) - ) - ) - ) - ) - (set_local $15 - (f64.sub - (f64.const 1) - (f64.sub - (get_local $21) - (get_local $15) - ) - ) - ) - (set_local $26 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $15) - ) - (i64.const 32) - ) - ) - ) - (set_local $26 - (i32.add - (get_local $26) - (i32.shl - (get_local $27) - (i32.const 20) - ) - ) - ) - (if - (i32.le_s - (i32.shr_s - (get_local $26) - (i32.const 20) - ) - (i32.const 0) - ) - (set_local $15 - (call $~lib/math/NativeMath.scalbn - (get_local $15) - (get_local $27) - ) - ) - (set_local $15 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $15) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $26) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (f64.mul - (get_local $16) - (get_local $15) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $3 + get_local $2 + i32.wrap/i64 + set_local $4 + get_local $1 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $5 + get_local $2 + i32.wrap/i64 + set_local $6 + get_local $3 + i32.const 2147483647 + i32.and + set_local $7 + get_local $5 + i32.const 2147483647 + i32.and + set_local $8 + get_local $8 + get_local $6 + i32.or + i32.const 0 + i32.eq + if + f64.const 1 + return + end + get_local $7 + i32.const 2146435072 + i32.gt_s + tee_local $9 + if (result i32) + get_local $9 + else + get_local $7 + i32.const 2146435072 + i32.eq + tee_local $9 + if (result i32) + get_local $4 + i32.const 0 + i32.ne + else + get_local $9 + end + end + tee_local $9 + if (result i32) + get_local $9 + else + get_local $8 + i32.const 2146435072 + i32.gt_s + end + tee_local $9 + if (result i32) + get_local $9 + else + get_local $8 + i32.const 2146435072 + i32.eq + tee_local $9 + if (result i32) + get_local $6 + i32.const 0 + i32.ne + else + get_local $9 + end + end + if + get_local $0 + get_local $1 + f64.add + return + end + i32.const 0 + set_local $10 + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $8 + i32.const 1128267776 + i32.ge_s + if + i32.const 2 + set_local $10 + else + get_local $8 + i32.const 1072693248 + i32.ge_s + if + get_local $8 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + i32.const 52 + i32.const 20 + get_local $11 + i32.const 20 + i32.gt_s + select + get_local $11 + i32.sub + set_local $9 + get_local $6 + get_local $8 + get_local $11 + i32.const 20 + i32.gt_s + select + set_local $12 + get_local $12 + get_local $9 + i32.shr_s + set_local $13 + get_local $13 + get_local $9 + i32.shl + get_local $12 + i32.eq + if + i32.const 2 + get_local $13 + i32.const 1 + i32.and + i32.sub + set_local $10 + end + end + end + end + get_local $6 + i32.const 0 + i32.eq + if + get_local $8 + i32.const 2146435072 + i32.eq + if + get_local $7 + i32.const 1072693248 + i32.sub + get_local $4 + i32.or + i32.const 0 + i32.eq + if + f64.const nan:0x8000000000000 + return + else + get_local $7 + i32.const 1072693248 + i32.ge_s + if + get_local $5 + i32.const 0 + i32.ge_s + if (result f64) + get_local $1 + else + f64.const 0 + end + return + else + get_local $5 + i32.const 0 + i32.ge_s + if (result f64) + f64.const 0 + else + get_local $1 + f64.neg + end + return + end + unreachable + end + unreachable + unreachable + end + get_local $8 + i32.const 1072693248 + i32.eq + if + get_local $5 + i32.const 0 + i32.ge_s + if + get_local $0 + return + end + f64.const 1 + get_local $0 + f64.div + return + end + get_local $5 + i32.const 1073741824 + i32.eq + if + get_local $0 + get_local $0 + f64.mul + return + end + get_local $5 + i32.const 1071644672 + i32.eq + if + get_local $3 + i32.const 0 + i32.ge_s + if + get_local $0 + f64.sqrt + return + end + end + end + get_local $0 + f64.abs + set_local $14 + get_local $4 + i32.const 0 + i32.eq + if + get_local $7 + i32.const 2146435072 + i32.eq + tee_local $13 + if (result i32) + get_local $13 + else + get_local $7 + i32.const 0 + i32.eq + end + tee_local $13 + if (result i32) + get_local $13 + else + get_local $7 + i32.const 1072693248 + i32.eq + end + if + get_local $14 + set_local $15 + get_local $5 + i32.const 0 + i32.lt_s + if + f64.const 1 + get_local $15 + f64.div + set_local $15 + end + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $7 + i32.const 1072693248 + i32.sub + get_local $10 + i32.or + i32.const 0 + i32.eq + if + get_local $15 + get_local $15 + f64.sub + get_local $15 + get_local $15 + f64.sub + f64.div + set_local $15 + else + get_local $10 + i32.const 1 + i32.eq + if + get_local $15 + f64.neg + set_local $15 + end + end + end + get_local $15 + return + end + end + f64.const 1 + set_local $16 + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $10 + i32.const 0 + i32.eq + if + get_local $0 + get_local $0 + f64.sub + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $10 + i32.const 1 + i32.eq + if + f64.const -1 + set_local $16 + end + end + get_local $8 + i32.const 1105199104 + i32.gt_s + if + get_local $8 + i32.const 1139802112 + i32.gt_s + if + get_local $7 + i32.const 1072693247 + i32.le_s + if + get_local $5 + i32.const 0 + i32.lt_s + if (result f64) + f64.const 1.e+300 + f64.const 1.e+300 + f64.mul + else + f64.const 1e-300 + f64.const 1e-300 + f64.mul + end + return + end + get_local $7 + i32.const 1072693248 + i32.ge_s + if + get_local $5 + i32.const 0 + i32.gt_s + if (result f64) + f64.const 1.e+300 + f64.const 1.e+300 + f64.mul + else + f64.const 1e-300 + f64.const 1e-300 + f64.mul + end + return + end + end + get_local $7 + i32.const 1072693247 + i32.lt_s + if + get_local $5 + i32.const 0 + i32.lt_s + if (result f64) + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + return + end + get_local $7 + i32.const 1072693248 + i32.gt_s + if + get_local $5 + i32.const 0 + i32.gt_s + if (result f64) + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + return + end + get_local $14 + f64.const 1 + f64.sub + set_local $22 + get_local $22 + get_local $22 + f64.mul + f64.const 0.5 + get_local $22 + f64.const 0.3333333333333333 + get_local $22 + f64.const 0.25 + f64.mul + f64.sub + f64.mul + f64.sub + f64.mul + set_local $25 + f64.const 1.4426950216293335 + get_local $22 + f64.mul + set_local $23 + get_local $22 + f64.const 1.9259629911266175e-08 + f64.mul + get_local $25 + f64.const 1.4426950408889634 + f64.mul + f64.sub + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $17 + get_local $17 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $17 + get_local $24 + get_local $17 + get_local $23 + f64.sub + f64.sub + set_local $18 + else + i32.const 0 + set_local $27 + get_local $7 + i32.const 1048576 + i32.lt_s + if + get_local $14 + f64.const 9007199254740992 + f64.mul + set_local $14 + get_local $27 + i32.const 53 + i32.sub + set_local $27 + get_local $14 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $7 + end + get_local $27 + get_local $7 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $27 + get_local $7 + i32.const 1048575 + i32.and + set_local $26 + get_local $26 + i32.const 1072693248 + i32.or + set_local $7 + get_local $26 + i32.const 235662 + i32.le_s + if + i32.const 0 + set_local $11 + else + get_local $26 + i32.const 767610 + i32.lt_s + if + i32.const 1 + set_local $11 + else + i32.const 0 + set_local $11 + get_local $27 + i32.const 1 + i32.add + set_local $27 + get_local $7 + i32.const 1048576 + i32.sub + set_local $7 + end + end + get_local $14 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $7 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + set_local $14 + f64.const 1.5 + f64.const 1 + get_local $11 + select + set_local $34 + get_local $14 + get_local $34 + f64.sub + set_local $23 + f64.const 1 + get_local $14 + get_local $34 + f64.add + f64.div + set_local $24 + get_local $23 + get_local $24 + f64.mul + set_local $28 + get_local $28 + set_local $30 + get_local $30 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $30 + get_local $7 + i32.const 1 + i32.shr_s + i32.const 536870912 + i32.or + i32.const 524288 + i32.add + get_local $11 + i32.const 18 + i32.shl + i32.add + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $32 + get_local $14 + get_local $32 + get_local $34 + f64.sub + f64.sub + set_local $33 + get_local $24 + get_local $23 + get_local $30 + get_local $32 + f64.mul + f64.sub + get_local $30 + get_local $33 + f64.mul + f64.sub + f64.mul + set_local $31 + get_local $28 + get_local $28 + f64.mul + set_local $29 + get_local $29 + get_local $29 + f64.mul + f64.const 0.5999999999999946 + get_local $29 + f64.const 0.4285714285785502 + get_local $29 + f64.const 0.33333332981837743 + get_local $29 + f64.const 0.272728123808534 + get_local $29 + f64.const 0.23066074577556175 + get_local $29 + f64.const 0.20697501780033842 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $21 + get_local $21 + get_local $31 + get_local $30 + get_local $28 + f64.add + f64.mul + f64.add + set_local $21 + get_local $30 + get_local $30 + f64.mul + set_local $29 + f64.const 3 + get_local $29 + f64.add + get_local $21 + f64.add + set_local $32 + get_local $32 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $32 + get_local $21 + get_local $32 + f64.const 3 + f64.sub + get_local $29 + f64.sub + f64.sub + set_local $33 + get_local $30 + get_local $32 + f64.mul + set_local $23 + get_local $31 + get_local $32 + f64.mul + get_local $33 + get_local $28 + f64.mul + f64.add + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $19 + get_local $19 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $19 + get_local $24 + get_local $19 + get_local $23 + f64.sub + f64.sub + set_local $20 + f64.const 0.9617967009544373 + get_local $19 + f64.mul + set_local $35 + f64.const 1.350039202129749e-08 + f64.const 0 + get_local $11 + select + set_local $36 + f64.const -7.028461650952758e-09 + get_local $19 + f64.mul + get_local $20 + f64.const 0.9617966939259756 + f64.mul + f64.add + get_local $36 + f64.add + set_local $37 + get_local $27 + f64.convert_s/i32 + set_local $22 + f64.const 0.5849624872207642 + f64.const 0 + get_local $11 + select + set_local $38 + get_local $35 + get_local $37 + f64.add + get_local $38 + f64.add + get_local $22 + f64.add + set_local $17 + get_local $17 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $17 + get_local $37 + get_local $17 + get_local $22 + f64.sub + get_local $38 + f64.sub + get_local $35 + f64.sub + f64.sub + set_local $18 + end + get_local $1 + set_local $39 + get_local $39 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $39 + get_local $1 + get_local $39 + f64.sub + get_local $17 + f64.mul + get_local $1 + get_local $18 + f64.mul + f64.add + set_local $20 + get_local $39 + get_local $17 + f64.mul + set_local $19 + get_local $20 + get_local $19 + f64.add + set_local $15 + get_local $15 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $26 + get_local $2 + i32.wrap/i64 + set_local $40 + get_local $26 + i32.const 1083179008 + i32.ge_s + if + get_local $26 + i32.const 1083179008 + i32.sub + get_local $40 + i32.or + i32.const 0 + i32.ne + if + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + return + end + get_local $20 + f64.const 8.008566259537294e-17 + f64.add + get_local $15 + get_local $19 + f64.sub + f64.gt + if + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + return + end + else + get_local $26 + i32.const 2147483647 + i32.and + i32.const 1083231232 + i32.ge_s + if + get_local $26 + i32.const -1064252416 + i32.sub + get_local $40 + i32.or + i32.const 0 + i32.ne + if + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + get_local $20 + get_local $15 + get_local $19 + f64.sub + f64.le + if + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + end + end + get_local $26 + i32.const 2147483647 + i32.and + set_local $40 + get_local $40 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + i32.const 0 + set_local $27 + get_local $40 + i32.const 1071644672 + i32.gt_s + if + get_local $26 + i32.const 1048576 + get_local $11 + i32.const 1 + i32.add + i32.shr_s + i32.add + set_local $27 + get_local $27 + i32.const 2147483647 + i32.and + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + f64.const 0 + set_local $22 + get_local $27 + i32.const 1048575 + get_local $11 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $22 + get_local $27 + i32.const 1048575 + i32.and + i32.const 1048576 + i32.or + i32.const 20 + get_local $11 + i32.sub + i32.shr_s + set_local $27 + get_local $26 + i32.const 0 + i32.lt_s + if + i32.const 0 + get_local $27 + i32.sub + set_local $27 + end + get_local $19 + get_local $22 + f64.sub + set_local $19 + end + get_local $20 + get_local $19 + f64.add + set_local $22 + get_local $22 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $22 + get_local $22 + f64.const 0.6931471824645996 + f64.mul + set_local $23 + get_local $20 + get_local $22 + get_local $19 + f64.sub + f64.sub + f64.const 0.6931471805599453 + f64.mul + get_local $22 + f64.const -1.904654299957768e-09 + f64.mul + f64.add + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $15 + get_local $24 + get_local $15 + get_local $23 + f64.sub + f64.sub + set_local $25 + get_local $15 + get_local $15 + f64.mul + set_local $22 + get_local $15 + get_local $22 + f64.const 0.16666666666666602 + get_local $22 + f64.const -2.7777777777015593e-03 + get_local $22 + f64.const 6.613756321437934e-05 + get_local $22 + f64.const -1.6533902205465252e-06 + get_local $22 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + set_local $17 + get_local $15 + get_local $17 + f64.mul + get_local $17 + f64.const 2 + f64.sub + f64.div + get_local $25 + get_local $15 + get_local $25 + f64.mul + f64.add + f64.sub + set_local $21 + f64.const 1 + get_local $21 + get_local $15 + f64.sub + f64.sub + set_local $15 + get_local $15 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $26 + get_local $26 + get_local $27 + i32.const 20 + i32.shl + i32.add + set_local $26 + get_local $26 + i32.const 20 + i32.shr_s + i32.const 0 + i32.le_s + if + get_local $15 + get_local $27 + call $~lib/math/NativeMath.scalbn + set_local $15 + else + get_local $15 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $26 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + set_local $15 + end + get_local $16 + get_local $15 + f64.mul ) (func $std/libm/pow (; 47 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) - (call $~lib/math/NativeMath.pow - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.pow ) (func $std/libm/round (; 48 ;) (type $FF) (param $0 f64) (result f64) - (block $~lib/math/NativeMath.round|inlined.0 (result f64) - (f64.copysign - (f64.floor - (f64.add - (get_local $0) - (f64.const 0.5) - ) - ) - (get_local $0) - ) - ) + get_local $0 + f64.const 0.5 + f64.add + f64.floor + get_local $0 + f64.copysign ) (func $std/libm/sign (; 49 ;) (type $FF) (param $0 f64) (result f64) - (block $~lib/math/NativeMath.sign|inlined.0 (result f64) - (br $~lib/math/NativeMath.sign|inlined.0 - (if (result f64) - (f64.gt - (get_local $0) - (f64.const 0) - ) - (f64.const 1) - (if (result f64) - (f64.lt - (get_local $0) - (f64.const 0) - ) - (f64.const -1) - (get_local $0) - ) - ) - ) - ) + block $~lib/math/NativeMath.sign|inlined.0 (result f64) + get_local $0 + f64.const 0 + f64.gt + if (result f64) + f64.const 1 + else + get_local $0 + f64.const 0 + f64.lt + if (result f64) + f64.const -1 + else + get_local $0 + end + end + br $~lib/math/NativeMath.sign|inlined.0 + end ) (func $~lib/math/NativeMath.sin (; 50 ;) (type $FF) (param $0 f64) (result f64) - (unreachable) - (f64.const 0) + unreachable + f64.const 0 ) (func $std/libm/sin (; 51 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.sin - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.sin ) (func $~lib/math/NativeMath.sinh (; 52 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -6360,312 +4508,215 @@ (local $4 f64) (local $5 f64) (local $6 f64) - (set_local $1 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 9223372036854775807) - ) - ) - (set_local $2 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $3 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $5 - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 1082535490) - ) - (block - (set_local $4 - (call $~lib/math/NativeMath.expm1 - (get_local $2) - ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 1072693248) - ) - (block - (if - (i32.lt_u - (get_local $3) - (i32.sub - (i32.const 1072693248) - (i32.shl - (i32.const 26) - (i32.const 20) - ) - ) - ) - (return - (get_local $0) - ) - ) - (return - (f64.mul - (get_local $5) - (f64.sub - (f64.mul - (f64.const 2) - (get_local $4) - ) - (f64.div - (f64.mul - (get_local $4) - (get_local $4) - ) - (f64.add - (get_local $4) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - (return - (f64.mul - (get_local $5) - (f64.add - (get_local $4) - (f64.div - (get_local $4) - (f64.add - (get_local $4) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - (set_local $4 - (f64.mul - (f64.mul - (f64.const 2) - (get_local $5) - ) - (block $~lib/math/expo2|inlined.1 (result f64) - (set_local $6 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_u/i32 - (i32.shl - (i32.add - (i32.const 1023) - (i32.div_u - (i32.const 2043) - (i32.const 2) - ) - ) - (i32.const 20) - ) - ) - (i64.const 32) - ) - ) - ) - (f64.mul - (f64.mul - (call $~lib/math/NativeMath.exp - (f64.sub - (get_local $2) - (f64.const 1416.0996898839683) - ) - ) - (get_local $6) - ) - (get_local $6) - ) - ) - ) - ) - (get_local $4) + get_local $0 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $2 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $3 + f64.const 0.5 + get_local $0 + f64.copysign + set_local $5 + get_local $3 + i32.const 1082535490 + i32.lt_u + if + get_local $2 + call $~lib/math/NativeMath.expm1 + set_local $4 + get_local $3 + i32.const 1072693248 + i32.lt_u + if + get_local $3 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub + i32.lt_u + if + get_local $0 + return + end + get_local $5 + f64.const 2 + get_local $4 + f64.mul + get_local $4 + get_local $4 + f64.mul + get_local $4 + f64.const 1 + f64.add + f64.div + f64.sub + f64.mul + return + end + get_local $5 + get_local $4 + get_local $4 + get_local $4 + f64.const 1 + f64.add + f64.div + f64.add + f64.mul + return + end + f64.const 2 + get_local $5 + f64.mul + block $~lib/math/expo2|inlined.1 (result f64) + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_u/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $6 + get_local $2 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + get_local $6 + f64.mul + get_local $6 + f64.mul + end + f64.mul + set_local $4 + get_local $4 ) (func $std/libm/sinh (; 53 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.sinh - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.sinh ) (func $std/libm/sqrt (; 54 ;) (type $FF) (param $0 f64) (result f64) - (block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) - (f64.sqrt - (get_local $0) - ) - ) + get_local $0 + f64.sqrt ) (func $~lib/math/NativeMath.tan (; 55 ;) (type $FF) (param $0 f64) (result f64) - (unreachable) - (f64.const 0) + unreachable + f64.const 0 ) (func $std/libm/tan (; 56 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.tan - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.tan ) (func $~lib/math/NativeMath.tanh (; 57 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) (local $4 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.const 9223372036854775807) - ) - ) - (set_local $2 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $3 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (if - (i32.gt_u - (get_local $3) - (i32.const 1071748074) - ) - (if - (i32.gt_u - (get_local $3) - (i32.const 1077149696) - ) - (set_local $4 - (f64.sub - (f64.const 1) - (f64.div - (f64.const 0) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const 2) - (get_local $2) - ) - ) - ) - (set_local $4 - (f64.sub - (f64.const 1) - (f64.div - (f64.const 2) - (f64.add - (get_local $4) - (f64.const 2) - ) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $3) - (i32.const 1070618798) - ) - (block - (set_local $4 - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const 2) - (get_local $2) - ) - ) - ) - (set_local $4 - (f64.div - (get_local $4) - (f64.add - (get_local $4) - (f64.const 2) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $3) - (i32.const 1048576) - ) - (block - (set_local $4 - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const -2) - (get_local $2) - ) - ) - ) - (set_local $4 - (f64.div - (f64.neg - (get_local $4) - ) - (f64.add - (get_local $4) - (f64.const 2) - ) - ) - ) - ) - (set_local $4 - (get_local $2) - ) - ) - ) - ) - (f64.copysign - (get_local $4) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 9223372036854775807 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $2 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $3 + get_local $3 + i32.const 1071748074 + i32.gt_u + if + get_local $3 + i32.const 1077149696 + i32.gt_u + if + f64.const 1 + f64.const 0 + get_local $2 + f64.div + f64.sub + set_local $4 + else + f64.const 2 + get_local $2 + f64.mul + call $~lib/math/NativeMath.expm1 + set_local $4 + f64.const 1 + f64.const 2 + get_local $4 + f64.const 2 + f64.add + f64.div + f64.sub + set_local $4 + end + else + get_local $3 + i32.const 1070618798 + i32.gt_u + if + f64.const 2 + get_local $2 + f64.mul + call $~lib/math/NativeMath.expm1 + set_local $4 + get_local $4 + get_local $4 + f64.const 2 + f64.add + f64.div + set_local $4 + else + get_local $3 + i32.const 1048576 + i32.ge_u + if + f64.const -2 + get_local $2 + f64.mul + call $~lib/math/NativeMath.expm1 + set_local $4 + get_local $4 + f64.neg + get_local $4 + f64.const 2 + f64.add + f64.div + set_local $4 + else + get_local $2 + set_local $4 + end + end + end + get_local $4 + get_local $0 + f64.copysign ) (func $std/libm/tanh (; 58 ;) (type $FF) (param $0 f64) (result f64) - (call $~lib/math/NativeMath.tanh - (get_local $0) - ) + get_local $0 + call $~lib/math/NativeMath.tanh ) (func $std/libm/trunc (; 59 ;) (type $FF) (param $0 f64) (result f64) - (block $~lib/math/NativeMath.trunc|inlined.0 (result f64) - (f64.trunc - (get_local $0) - ) - ) + get_local $0 + f64.trunc ) (func $null (; 60 ;) (type $v) ) diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index b997c621..3a64c4c3 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -20,665 +20,486 @@ (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\13\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") (data (i32.const 56) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") (data (i32.const 120) "\n\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/memory/memory.allocate (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (i32.const 24) - ) + (func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$i) (result i32) + i32.const 24 + call $~lib/allocator/arena/__memory_allocate ) - (func $~lib/internal/arraybuffer/computeSize (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - ) - ) + (func $~lib/internal/arraybuffer/computeSize (; 3 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + get_local $0 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl ) - (func $~lib/internal/arraybuffer/allocateUnsafe (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/arraybuffer/allocateUnsafe (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 56) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 56 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/internal/memory/memset (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memset (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $1) - ) - (return) - ) - (i32.store8 - (get_local $0) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $2) - (i32.const 3) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $1 - (i32.and - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 8) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 28) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 16) - ) - (i32.const 0) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i64.const 0) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $1 + i32.eqz + if + return + end + get_local $0 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + get_local $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $2 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $0 + get_local $1 + get_local $2 + i32.sub + i32.const -4 + i32.and + tee_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 8 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 12 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 8 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 16 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 20 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 24 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 28 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 24 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 20 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 16 + i32.sub + i32.const 0 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $2 + i32.add + set_local $0 + get_local $1 + get_local $2 + i32.sub + set_local $1 + loop $continue|0 + get_local $1 + i32.const 32 + i32.ge_u + if + get_local $0 + i64.const 0 + i64.store + get_local $0 + i32.const 8 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 16 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 24 + i32.add + i64.const 0 + i64.store + get_local $1 + i32.const 32 + i32.sub + set_local $1 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 6 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 40) - ) - (unreachable) - ) - ) - (set_local $2 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $1) - (i32.const 1) - ) - ) - (call $~lib/internal/memory/memset - (i32.add - (get_local $2) - (i32.const 8) - ) - (get_local $0) - ) - ) - (get_local $2) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 40 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $2 + get_local $1 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + i32.const 8 + i32.add + get_local $0 + call $~lib/internal/memory/memset + end + get_local $2 ) - (func $~lib/map/Map#clear (; 7 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/map/Map#clear (; 7 ;) (type $iv) (param $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 3) - ) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (get_local $1) - ) - (i32.store offset=12 - (get_local $0) - (i32.const 4) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $1 + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 3 + i32.store offset=4 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $1 + get_local $0 + get_local $1 + i32.store offset=8 + get_local $0 + i32.const 4 + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 8 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 8 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (get_local $0) + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + i32.const 0 + i32.store offset=8 + get_local $0 + i32.const 0 + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 + get_local $0 + call $~lib/map/Map#clear + get_local $0 ) - (func $~lib/internal/hash/hash8 (; 9 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.mul - (i32.xor - (get_local $0) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) + (func $~lib/internal/hash/hash8 (; 9 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul ) - (func $~lib/map/Map#find (; 10 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load8_u - (get_local $2) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/map/Map#find (; 10 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + i32.load8_u + get_local $1 + i32.const 255 + i32.and + i32.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=8 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/map/Map#has (; 11 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 11 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#rehash (; 12 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 12 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -686,945 +507,674 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.mul - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 12) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $3 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (i32.const 12) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $3) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.const 1) - ) - ) - (block - (i32.store8 - (get_local $2) - (i32.load8_s - (get_local $3) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=4 - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash8 - (i32.load8_s - (get_local $3) - ) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 12) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 12) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 12 + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $3 + get_local $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $2 + loop $continue|0 + get_local $3 + get_local $8 + i32.ne + if + get_local $3 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + get_local $3 + i32.load8_s + i32.store8 + get_local $2 + get_local $3 + i32.load offset=4 + i32.store offset=4 + get_local $3 + i32.load8_s + call $~lib/internal/hash/hash8 + set_local $4 + get_local $2 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $2 + i32.store offset=8 + get_local $2 + i32.const 12 + i32.add + set_local $2 + end + get_local $3 + i32.const 12 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/map/Map#set (; 13 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 13 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $5 - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (if - (tee_local $3 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (tee_local $3 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $4 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (tee_local $3 - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (i32.mul - (get_local $4) - (i32.const 12) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - ) - ) + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + set_local $5 + get_local $0 + get_local $1 + get_local $5 + call $~lib/map/Map#find + tee_local $3 + if + get_local $3 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $3 + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $4 + i32.const 1 + i32.add + i32.store offset=16 + get_local $3 + i32.const 8 + i32.add + get_local $4 + i32.const 12 + i32.mul + i32.add + tee_local $3 + get_local $1 + i32.store8 + get_local $3 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $3 + get_local $0 + i32.load + get_local $5 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $3 + i32.store offset=8 + end ) - (func $~lib/map/Map#get (; 14 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (tee_local $0 - (if (result i32) - (tee_local $0 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (unreachable) - ) - ) + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + tee_local $0 + if (result i32) + get_local $0 + i32.load offset=4 + else + unreachable + end + tee_local $0 ) - (func $~lib/map/Map#get:size (; 15 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + (func $~lib/map/Map#get:size (; 15 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load offset=20 ) - (func $~lib/map/Map#delete (; 16 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 16 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/map/Map#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $0) - (i32.or - (i32.load offset=8 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $1 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/map/Map#rehash - (get_local $2) - (get_local $1) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/map/Map#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $1 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $1 + call $~lib/map/Map#rehash + end + i32.const 1 ) - (func $std/map/test (; 17 ;) (; has Stack IR ;) (type $v) + (func $std/map/test (; 17 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/map/Map#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 20) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $1) - ) - (if - (call $~lib/map/Map#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/map/Map#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 20 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/map/Map#clear + get_local $1 + call $~lib/map/Map#get:size + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/map/Map#has (; 18 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 18 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#rehash (; 19 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 19 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1632,1000 +1182,712 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.mul - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 12) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $3 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (i32.const 12) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $3) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.const 1) - ) - ) - (block - (i32.store8 - (get_local $2) - (i32.load8_u - (get_local $3) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=4 - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash8 - (i32.load8_u - (get_local $3) - ) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 12) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 12) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 12 + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $3 + get_local $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $2 + loop $continue|0 + get_local $3 + get_local $8 + i32.ne + if + get_local $3 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + get_local $3 + i32.load offset=4 + i32.store offset=4 + get_local $3 + i32.load8_u + call $~lib/internal/hash/hash8 + set_local $4 + get_local $2 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $2 + i32.store offset=8 + get_local $2 + i32.const 12 + i32.add + set_local $2 + end + get_local $3 + i32.const 12 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/map/Map#set (; 20 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 20 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $5 - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (if - (tee_local $3 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (tee_local $3 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $4 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (tee_local $3 - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (i32.mul - (get_local $4) - (i32.const 12) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - ) - ) + get_local $1 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + set_local $5 + get_local $0 + get_local $1 + get_local $5 + call $~lib/map/Map#find + tee_local $3 + if + get_local $3 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $3 + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $4 + i32.const 1 + i32.add + i32.store offset=16 + get_local $3 + i32.const 8 + i32.add + get_local $4 + i32.const 12 + i32.mul + i32.add + tee_local $3 + get_local $1 + i32.store8 + get_local $3 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $3 + get_local $0 + i32.load + get_local $5 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $3 + i32.store offset=8 + end ) - (func $~lib/map/Map#get (; 21 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 21 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (tee_local $0 - (if (result i32) - (tee_local $0 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (unreachable) - ) - ) + get_local $1 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + tee_local $0 + if (result i32) + get_local $0 + i32.load offset=4 + else + unreachable + end + tee_local $0 ) - (func $~lib/map/Map#delete (; 22 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 22 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/map/Map#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $0) - (i32.or - (i32.load offset=8 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $1 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/map/Map#rehash - (get_local $2) - (get_local $1) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/map/Map#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $1 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $1 + call $~lib/map/Map#rehash + end + i32.const 1 ) - (func $std/map/test (; 23 ;) (; has Stack IR ;) (type $v) + (func $std/map/test (; 23 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/map/Map#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 20) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $1) - ) - (if - (call $~lib/map/Map#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/map/Map#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 255 + i32.and + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 255 + i32.and + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 255 + i32.and + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 255 + i32.and + i32.const 20 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 255 + i32.and + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 255 + i32.and + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 255 + i32.and + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/map/Map#clear + get_local $1 + call $~lib/map/Map#get:size + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/internal/hash/hash16 (; 24 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - ) - (i32.const 16777619) - ) + (func $~lib/internal/hash/hash16 (; 24 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 8 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul ) - (func $~lib/map/Map#find (; 25 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load16_u - (get_local $2) - ) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/map/Map#find (; 25 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + i32.load16_u + get_local $1 + i32.const 65535 + i32.and + i32.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=8 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/map/Map#has (; 26 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 26 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#rehash (; 27 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 27 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2633,940 +1895,670 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.mul - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 12) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $3 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (i32.const 12) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $3) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.const 1) - ) - ) - (block - (i32.store16 - (get_local $2) - (i32.load16_s - (get_local $3) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=4 - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash16 - (i32.load16_s - (get_local $3) - ) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 12) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 12) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 12 + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $3 + get_local $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $2 + loop $continue|0 + get_local $3 + get_local $8 + i32.ne + if + get_local $3 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + get_local $3 + i32.load16_s + i32.store16 + get_local $2 + get_local $3 + i32.load offset=4 + i32.store offset=4 + get_local $3 + i32.load16_s + call $~lib/internal/hash/hash16 + set_local $4 + get_local $2 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $2 + i32.store offset=8 + get_local $2 + i32.const 12 + i32.add + set_local $2 + end + get_local $3 + i32.const 12 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/map/Map#set (; 28 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 28 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $5 - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (if - (tee_local $3 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (tee_local $3 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $4 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store16 - (tee_local $3 - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (i32.mul - (get_local $4) - (i32.const 12) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - ) - ) + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + set_local $5 + get_local $0 + get_local $1 + get_local $5 + call $~lib/map/Map#find + tee_local $3 + if + get_local $3 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $3 + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $4 + i32.const 1 + i32.add + i32.store offset=16 + get_local $3 + i32.const 8 + i32.add + get_local $4 + i32.const 12 + i32.mul + i32.add + tee_local $3 + get_local $1 + i32.store16 + get_local $3 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $3 + get_local $0 + i32.load + get_local $5 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $3 + i32.store offset=8 + end ) - (func $~lib/map/Map#get (; 29 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 29 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (tee_local $0 - (if (result i32) - (tee_local $0 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (unreachable) - ) - ) + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + tee_local $0 + if (result i32) + get_local $0 + i32.load offset=4 + else + unreachable + end + tee_local $0 ) - (func $~lib/map/Map#delete (; 30 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 30 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/map/Map#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $0) - (i32.or - (i32.load offset=8 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $1 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/map/Map#rehash - (get_local $2) - (get_local $1) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/map/Map#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $1 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $1 + call $~lib/map/Map#rehash + end + i32.const 1 ) - (func $std/map/test (; 31 ;) (; has Stack IR ;) (type $v) + (func $std/map/test (; 31 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/map/Map#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 20) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $1) - ) - (if - (call $~lib/map/Map#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/map/Map#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 20 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/map/Map#clear + get_local $1 + call $~lib/map/Map#get:size + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/map/Map#has (; 32 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 32 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#rehash (; 33 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 33 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3574,1015 +2566,722 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.mul - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 12) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $3 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (i32.const 12) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $3) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.const 1) - ) - ) - (block - (i32.store16 - (get_local $2) - (i32.load16_u - (get_local $3) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=4 - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash16 - (i32.load16_u - (get_local $3) - ) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 12) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 12) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 12 + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $3 + get_local $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $2 + loop $continue|0 + get_local $3 + get_local $8 + i32.ne + if + get_local $3 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + get_local $3 + i32.load16_u + i32.store16 + get_local $2 + get_local $3 + i32.load offset=4 + i32.store offset=4 + get_local $3 + i32.load16_u + call $~lib/internal/hash/hash16 + set_local $4 + get_local $2 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $2 + i32.store offset=8 + get_local $2 + i32.const 12 + i32.add + set_local $2 + end + get_local $3 + i32.const 12 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/map/Map#set (; 34 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 34 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $5 - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - (if - (tee_local $3 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (tee_local $3 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $4 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store16 - (tee_local $3 - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (i32.mul - (get_local $4) - (i32.const 12) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - ) - ) + get_local $1 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + set_local $5 + get_local $0 + get_local $1 + get_local $5 + call $~lib/map/Map#find + tee_local $3 + if + get_local $3 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $3 + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $4 + i32.const 1 + i32.add + i32.store offset=16 + get_local $3 + i32.const 8 + i32.add + get_local $4 + i32.const 12 + i32.mul + i32.add + tee_local $3 + get_local $1 + i32.store16 + get_local $3 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $3 + get_local $0 + i32.load + get_local $5 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $3 + i32.store offset=8 + end ) - (func $~lib/map/Map#get (; 35 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 35 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - (tee_local $0 - (if (result i32) - (tee_local $0 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (unreachable) - ) - ) + get_local $1 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + tee_local $0 + if (result i32) + get_local $0 + i32.load offset=4 + else + unreachable + end + tee_local $0 ) - (func $~lib/map/Map#delete (; 36 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 36 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/map/Map#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $0) - (i32.or - (i32.load offset=8 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $1 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/map/Map#rehash - (get_local $2) - (get_local $1) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/map/Map#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $1 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $1 + call $~lib/map/Map#rehash + end + i32.const 1 ) - (func $std/map/test (; 37 ;) (; has Stack IR ;) (type $v) + (func $std/map/test (; 37 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/map/Map#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.and - (get_local $0) - (i32.const 65535) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.and - (get_local $0) - (i32.const 65535) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.and - (get_local $0) - (i32.const 65535) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.and - (get_local $0) - (i32.const 65535) - ) - (i32.const 20) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.and - (get_local $0) - (i32.const 65535) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.and - (get_local $0) - (i32.const 65535) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.and - (get_local $0) - (i32.const 65535) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $1) - ) - (if - (call $~lib/map/Map#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/map/Map#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 65535 + i32.and + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 65535 + i32.and + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 65535 + i32.and + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 65535 + i32.and + i32.const 20 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 65535 + i32.and + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 65535 + i32.and + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 65535 + i32.and + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/map/Map#clear + get_local $1 + call $~lib/map/Map#get:size + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/internal/hash/hash32 (; 38 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $0) - (i32.const 24) - ) - ) - (i32.const 16777619) - ) + (func $~lib/internal/hash/hash32 (; 38 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul ) - (func $~lib/map/Map#find (; 39 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/map/Map#find (; 39 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + i32.load + get_local $1 + i32.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=8 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/map/Map#has (; 40 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 40 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash32 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#rehash (; 41 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 41 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4590,1553 +3289,1121 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.mul - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 12) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $3 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (i32.const 12) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $3) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.const 1) - ) - ) - (block - (i32.store - (get_local $2) - (i32.load - (get_local $3) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=4 - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash32 - (i32.load - (get_local $3) - ) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 12) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 12) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 12 + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $3 + get_local $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $2 + loop $continue|0 + get_local $3 + get_local $8 + i32.ne + if + get_local $3 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + get_local $3 + i32.load + i32.store + get_local $2 + get_local $3 + i32.load offset=4 + i32.store offset=4 + get_local $3 + i32.load + call $~lib/internal/hash/hash32 + set_local $4 + get_local $2 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $2 + i32.store offset=8 + get_local $2 + i32.const 12 + i32.add + set_local $2 + end + get_local $3 + i32.const 12 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/map/Map#set (; 42 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 42 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $5 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - (if - (tee_local $3 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (tee_local $3 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $4 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store - (tee_local $3 - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (i32.mul - (get_local $4) - (i32.const 12) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash32 + set_local $5 + get_local $0 + get_local $1 + get_local $5 + call $~lib/map/Map#find + tee_local $3 + if + get_local $3 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $3 + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $4 + i32.const 1 + i32.add + i32.store offset=16 + get_local $3 + i32.const 8 + i32.add + get_local $4 + i32.const 12 + i32.mul + i32.add + tee_local $3 + get_local $1 + i32.store + get_local $3 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $3 + get_local $0 + i32.load + get_local $5 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $3 + i32.store offset=8 + end ) - (func $~lib/map/Map#get (; 43 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 43 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - (tee_local $0 - (if (result i32) - (tee_local $0 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (unreachable) - ) - ) + get_local $1 + call $~lib/internal/hash/hash32 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + tee_local $0 + if (result i32) + get_local $0 + i32.load offset=4 + else + unreachable + end + tee_local $0 ) - (func $~lib/map/Map#delete (; 44 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 44 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/map/Map#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $0) - (i32.or - (i32.load offset=8 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $1 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/map/Map#rehash - (get_local $2) - (get_local $1) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + call $~lib/internal/hash/hash32 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/map/Map#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $1 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $1 + call $~lib/map/Map#rehash + end + i32.const 1 ) - (func $std/map/test (; 45 ;) (; has Stack IR ;) (type $v) + (func $std/map/test (; 45 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/map/Map#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (get_local $0) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (get_local $0) - (i32.const 20) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (get_local $0) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $1) - ) - (if - (call $~lib/map/Map#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/map/Map#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 20 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/map/Map#clear + get_local $1 + call $~lib/map/Map#get:size + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $std/map/test (; 46 ;) (; has Stack IR ;) (type $v) + (func $std/map/test (; 46 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/map/Map#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (get_local $0) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (get_local $0) - (i32.const 20) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (get_local $0) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (get_local $0) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $1) - ) - (if - (call $~lib/map/Map#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/map/Map#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 20 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/map/Map#clear + get_local $1 + call $~lib/map/Map#get:size + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/map/Map#clear (; 47 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/map/Map#clear (; 47 ;) (type $iv) (param $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 3) - ) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 64) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (get_local $1) - ) - (i32.store offset=12 - (get_local $0) - (i32.const 4) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $1 + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 3 + i32.store offset=4 + i32.const 64 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $1 + get_local $0 + get_local $1 + i32.store offset=8 + get_local $0 + i32.const 4 + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 48 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 48 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (get_local $0) + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + i32.const 0 + i32.store offset=8 + get_local $0 + i32.const 0 + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 + get_local $0 + call $~lib/map/Map#clear + get_local $0 ) - (func $~lib/internal/hash/hash64 (; 49 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/hash/hash64 (; 49 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.and - (tee_local $1 - (i32.wrap/i64 - (get_local $0) - ) - ) - (i32.const 255) - ) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $1) - (i32.const 24) - ) - ) - (i32.const 16777619) - ) - (i32.and - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (get_local $0) - (i64.const 32) - ) - ) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $1) - (i32.const 24) - ) - ) - (i32.const 16777619) - ) + get_local $0 + i32.wrap/i64 + tee_local $1 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul ) - (func $~lib/map/Map#find (; 50 ;) (; has Stack IR ;) (type $iIii) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i64.eq - (i64.load - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=12 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/map/Map#find (; 50 ;) (type $iIii) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + i64.load + get_local $1 + i64.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=12 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/map/Map#has (; 51 ;) (; has Stack IR ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#has (; 51 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash64 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#rehash (; 52 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 52 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6144,1413 +4411,1017 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 4) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $3 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.shl - (i32.load offset=16 - (get_local $0) - ) - (i32.const 4) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $3) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $3) - ) - (i32.const 1) - ) - ) - (block - (i64.store - (get_local $2) - (i64.load - (get_local $3) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash64 - (i64.load - (get_local $3) - ) - ) - ) - (i32.store offset=12 - (get_local $2) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 16) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 4 + i32.shl + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $3 + get_local $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $2 + loop $continue|0 + get_local $3 + get_local $8 + i32.ne + if + get_local $3 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + get_local $3 + i64.load + i64.store + get_local $2 + get_local $3 + i32.load offset=8 + i32.store offset=8 + get_local $3 + i64.load + call $~lib/internal/hash/hash64 + set_local $4 + get_local $2 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=12 + get_local $4 + get_local $2 + i32.store offset=8 + get_local $2 + i32.const 16 + i32.add + set_local $2 + end + get_local $3 + i32.const 16 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/map/Map#set (; 53 ;) (; has Stack IR ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/map/Map#set (; 53 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $5 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - (if - (tee_local $3 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (tee_local $3 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $4 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i64.store - (tee_local $3 - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 4) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash64 + set_local $5 + get_local $0 + get_local $1 + get_local $5 + call $~lib/map/Map#find + tee_local $3 + if + get_local $3 + get_local $2 + i32.store offset=8 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $3 + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $4 + i32.const 1 + i32.add + i32.store offset=16 + get_local $3 + i32.const 8 + i32.add + get_local $4 + i32.const 4 + i32.shl + i32.add + tee_local $3 + get_local $1 + i64.store + get_local $3 + get_local $2 + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $3 + get_local $0 + i32.load + get_local $5 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=12 + get_local $4 + get_local $3 + i32.store offset=8 + end ) - (func $~lib/map/Map#get (; 54 ;) (; has Stack IR ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#get (; 54 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - (tee_local $0 - (if (result i32) - (tee_local $0 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.load offset=8 - (get_local $0) - ) - (unreachable) - ) - ) + get_local $1 + call $~lib/internal/hash/hash64 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + tee_local $0 + if (result i32) + get_local $0 + i32.load offset=8 + else + unreachable + end + tee_local $0 ) - (func $~lib/map/Map#delete (; 55 ;) (; has Stack IR ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#delete (; 55 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/map/Map#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=12 - (get_local $0) - (i32.or - (i32.load offset=12 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/map/Map#rehash - (get_local $2) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + call $~lib/internal/hash/hash64 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/map/Map#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=12 + i32.const 1 + i32.or + i32.store offset=12 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $3 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) - (func $std/map/test (; 56 ;) (; has Stack IR ;) (type $v) + (func $std/map/test (; 56 ;) (type $v) (local $0 i64) (local $1 i32) - (set_local $1 - (call $~lib/map/Map#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i64.ge_s - (get_local $0) - (i64.const 100) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i64.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i64.ge_s - (get_local $0) - (i64.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 20) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i64.ge_s - (get_local $0) - (i64.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i64.ge_s - (get_local $0) - (i64.const 50) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $1) - ) - (if - (call $~lib/map/Map#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/map/Map#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i64.const 100 + i64.ge_s + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.wrap/i64 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.wrap/i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i64.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + i64.const 100 + i64.ge_s + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.wrap/i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.wrap/i64 + i32.const 20 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.wrap/i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i64.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i64.const 50 + i64.ge_s + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.wrap/i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i64.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i64.const 50 + i64.ge_s + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.wrap/i64 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/map/Map#clear + get_local $1 + call $~lib/map/Map#get:size + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $std/map/test (; 57 ;) (; has Stack IR ;) (type $v) + (func $std/map/test (; 57 ;) (type $v) (local $0 i64) (local $1 i32) - (set_local $1 - (call $~lib/map/Map#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i64.ge_u - (get_local $0) - (i64.const 100) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i64.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i64.ge_u - (get_local $0) - (i64.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 20) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i64.ge_u - (get_local $0) - (i64.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i64.ge_u - (get_local $0) - (i64.const 50) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.wrap/i64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $1) - ) - (if - (call $~lib/map/Map#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/map/Map#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i64.const 100 + i64.ge_u + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.wrap/i64 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.wrap/i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i64.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + i64.const 100 + i64.ge_u + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.wrap/i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.wrap/i64 + i32.const 20 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.wrap/i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i64.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i64.const 50 + i64.ge_u + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.wrap/i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i64.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i64.const 50 + i64.ge_u + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.wrap/i64 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/map/Map#clear + get_local $1 + call $~lib/map/Map#get:size + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/map/Map#find (; 58 ;) (; has Stack IR ;) (type $ifii) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (f32.eq - (f32.load - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/map/Map#find (; 58 ;) (type $ifii) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + f32.load + get_local $1 + f32.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=8 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/map/Map#has (; 59 ;) (; has Stack IR ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#has (; 59 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#rehash (; 60 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 60 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7558,973 +5429,688 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.mul - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 12) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $3 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (i32.const 12) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $3) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.const 1) - ) - ) - (block - (f32.store - (get_local $2) - (f32.load - (get_local $3) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=4 - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (f32.load - (get_local $3) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 12) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 12) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 12 + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $3 + get_local $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $2 + loop $continue|0 + get_local $3 + get_local $8 + i32.ne + if + get_local $3 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + get_local $3 + f32.load + f32.store + get_local $2 + get_local $3 + i32.load offset=4 + i32.store offset=4 + get_local $3 + f32.load + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + set_local $4 + get_local $2 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $2 + i32.store offset=8 + get_local $2 + i32.const 12 + i32.add + set_local $2 + end + get_local $3 + i32.const 12 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/map/Map#set (; 61 ;) (; has Stack IR ;) (type $ifiv) (param $0 i32) (param $1 f32) (param $2 i32) + (func $~lib/map/Map#set (; 61 ;) (type $ifiv) (param $0 i32) (param $1 f32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $5 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - (if - (tee_local $3 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (tee_local $3 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $4 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (f32.store - (tee_local $3 - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (i32.mul - (get_local $4) - (i32.const 12) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - ) - ) + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + set_local $5 + get_local $0 + get_local $1 + get_local $5 + call $~lib/map/Map#find + tee_local $3 + if + get_local $3 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $3 + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $4 + i32.const 1 + i32.add + i32.store offset=16 + get_local $3 + i32.const 8 + i32.add + get_local $4 + i32.const 12 + i32.mul + i32.add + tee_local $3 + get_local $1 + f32.store + get_local $3 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $3 + get_local $0 + i32.load + get_local $5 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $3 + i32.store offset=8 + end ) - (func $~lib/map/Map#get (; 62 ;) (; has Stack IR ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#get (; 62 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - (tee_local $0 - (if (result i32) - (tee_local $0 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (unreachable) - ) - ) + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + tee_local $0 + if (result i32) + get_local $0 + i32.load offset=4 + else + unreachable + end + tee_local $0 ) - (func $~lib/map/Map#delete (; 63 ;) (; has Stack IR ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#delete (; 63 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/map/Map#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $0) - (i32.or - (i32.load offset=8 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/map/Map#rehash - (get_local $2) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/map/Map#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $3 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) - (func $std/map/test (; 64 ;) (; has Stack IR ;) (type $v) + (func $std/map/test (; 64 ;) (type $v) (local $0 f32) (local $1 i32) - (set_local $1 - (call $~lib/map/Map#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (f32.lt - (get_local $0) - (f32.const 100) - ) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.trunc_s/f32 - (get_local $0) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.trunc_s/f32 - (get_local $0) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (f32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (f32.lt - (get_local $0) - (f32.const 100) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.trunc_s/f32 - (get_local $0) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.trunc_s/f32 - (get_local $0) - ) - (i32.const 20) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.trunc_s/f32 - (get_local $0) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (f32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (f32.lt - (get_local $0) - (f32.const 50) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.trunc_s/f32 - (get_local $0) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (f32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (f32.lt - (get_local $0) - (f32.const 50) - ) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.trunc_s/f32 - (get_local $0) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $1) - ) - (if - (call $~lib/map/Map#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/map/Map#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + f32.const 100 + f32.lt + i32.eqz + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.trunc_s/f32 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.trunc_s/f32 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f32.const 1 + f32.add + set_local $0 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + f32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + f32.const 100 + f32.lt + i32.eqz + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.trunc_s/f32 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.trunc_s/f32 + i32.const 20 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.trunc_s/f32 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f32.const 1 + f32.add + set_local $0 + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + f32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + f32.const 50 + f32.lt + i32.eqz + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.trunc_s/f32 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f32.const 1 + f32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + f32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + f32.const 50 + f32.lt + i32.eqz + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.trunc_s/f32 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f32.const 1 + f32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/map/Map#clear + get_local $1 + call $~lib/map/Map#get:size + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/map/Map#find (; 65 ;) (; has Stack IR ;) (type $iFii) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (f64.eq - (f64.load - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=12 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/map/Map#find (; 65 ;) (type $iFii) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + f64.load + get_local $1 + f64.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=12 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/map/Map#has (; 66 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#has (; 66 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - ) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#rehash (; 67 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 67 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8532,910 +6118,648 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 4) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $3 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.shl - (i32.load offset=16 - (get_local $0) - ) - (i32.const 4) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $3) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $3) - ) - (i32.const 1) - ) - ) - (block - (f64.store - (get_local $2) - (f64.load - (get_local $3) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (f64.load - (get_local $3) - ) - ) - ) - ) - (i32.store offset=12 - (get_local $2) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 16) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 4 + i32.shl + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $3 + get_local $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $2 + loop $continue|0 + get_local $3 + get_local $8 + i32.ne + if + get_local $3 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + get_local $3 + f64.load + f64.store + get_local $2 + get_local $3 + i32.load offset=8 + i32.store offset=8 + get_local $3 + f64.load + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + set_local $4 + get_local $2 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=12 + get_local $4 + get_local $2 + i32.store offset=8 + get_local $2 + i32.const 16 + i32.add + set_local $2 + end + get_local $3 + i32.const 16 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/map/Map#set (; 68 ;) (; has Stack IR ;) (type $iFiv) (param $0 i32) (param $1 f64) (param $2 i32) + (func $~lib/map/Map#set (; 68 ;) (type $iFiv) (param $0 i32) (param $1 f64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $5 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - ) - (if - (tee_local $3 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (tee_local $3 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $4 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (f64.store - (tee_local $3 - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 4) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - ) - ) + get_local $1 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + set_local $5 + get_local $0 + get_local $1 + get_local $5 + call $~lib/map/Map#find + tee_local $3 + if + get_local $3 + get_local $2 + i32.store offset=8 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $3 + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $4 + i32.const 1 + i32.add + i32.store offset=16 + get_local $3 + i32.const 8 + i32.add + get_local $4 + i32.const 4 + i32.shl + i32.add + tee_local $3 + get_local $1 + f64.store + get_local $3 + get_local $2 + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $3 + get_local $0 + i32.load + get_local $5 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=12 + get_local $4 + get_local $3 + i32.store offset=8 + end ) - (func $~lib/map/Map#get (; 69 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#get (; 69 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - ) - (tee_local $0 - (if (result i32) - (tee_local $0 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.load offset=8 - (get_local $0) - ) - (unreachable) - ) - ) + get_local $1 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + tee_local $0 + if (result i32) + get_local $0 + i32.load offset=8 + else + unreachable + end + tee_local $0 ) - (func $~lib/map/Map#delete (; 70 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#delete (; 70 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/map/Map#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=12 - (get_local $0) - (i32.or - (i32.load offset=12 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/map/Map#rehash - (get_local $2) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/map/Map#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=12 + i32.const 1 + i32.or + i32.store offset=12 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $3 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) - (func $std/map/test (; 71 ;) (; has Stack IR ;) (type $v) + (func $std/map/test (; 71 ;) (type $v) (local $0 f64) (local $1 i32) - (set_local $1 - (call $~lib/map/Map#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (f64.lt - (get_local $0) - (f64.const 100) - ) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.trunc_s/f64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.trunc_s/f64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (f64.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (f64.lt - (get_local $0) - (f64.const 100) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.trunc_s/f64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.trunc_s/f64 - (get_local $0) - ) - (i32.const 20) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.trunc_s/f64 - (get_local $0) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - (br $repeat|1) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (f64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (f64.lt - (get_local $0) - (f64.const 50) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get - (get_local $1) - (get_local $0) - ) - (i32.add - (i32.trunc_s/f64 - (get_local $0) - ) - (i32.const 20) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (f64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (f64.lt - (get_local $0) - (f64.const 50) - ) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $1) - (get_local $0) - (i32.add - (i32.trunc_s/f64 - (get_local $0) - ) - (i32.const 10) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/map/Map#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/map/Map#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $1) - ) - (if - (call $~lib/map/Map#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/map/Map#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + f64.const 100 + f64.lt + i32.eqz + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.trunc_s/f64 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.trunc_s/f64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f64.const 1 + f64.add + set_local $0 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + f64.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + f64.const 100 + f64.lt + i32.eqz + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.trunc_s/f64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.trunc_s/f64 + i32.const 20 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.trunc_s/f64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f64.const 1 + f64.add + set_local $0 + br $repeat|1 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + f64.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + f64.const 50 + f64.lt + i32.eqz + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#get + get_local $0 + i32.trunc_s/f64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f64.const 1 + f64.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + f64.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + f64.const 50 + f64.lt + i32.eqz + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + get_local $0 + i32.trunc_s/f64 + i32.const 10 + i32.add + call $~lib/map/Map#set + get_local $1 + get_local $0 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/map/Map#delete + drop + get_local $1 + get_local $0 + call $~lib/map/Map#has + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f64.const 1 + f64.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/map/Map#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/map/Map#clear + get_local $1 + call $~lib/map/Map#get:size + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $start (; 72 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.const 144) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) + (func $start (; 72 ;) (type $v) + i32.const 144 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test ) - (func $null (; 73 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 73 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index de1ce0a0..1f20ea28 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -17,13 +17,13 @@ (type $iFi (func (param i32 f64) (result i32))) (type $iFii (func (param i32 f64 i32) (result i32))) (type $iFiv (func (param i32 f64 i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\13\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 56) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 120) "\n\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -50,765 +50,555 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/memory/memory.allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $~lib/internal/arraybuffer/computeSize (; 3 ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.sub - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 56) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $2 - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 56 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_local $0 + call $~lib/internal/arraybuffer/computeSize + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/internal/memory/memset (; 5 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/arraybuffer/ArrayBuffer#constructor (; 6 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 40) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $2) - (i32.const 1) - ) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $1) - ) - ) - ) - (get_local $3) + get_local $1 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 40 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $2 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $1 + call $~lib/internal/memory/memset + end + get_local $3 ) (func $~lib/map/Map#clear (; 7 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 8 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/internal/hash/hash8 (; 9 ;) (type $ii) (param $0 i32) (result i32) - (i32.mul - (i32.xor - (get_global $~lib/internal/hash/FNV_OFFSET) - (get_local $0) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) + get_global $~lib/internal/hash/FNV_OFFSET + get_local $0 + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul ) (func $~lib/map/Map#find (; 10 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (i32.eq - (i32.load8_s - (get_local $3) - ) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load8_s + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 11 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#rehash (; 12 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -822,1193 +612,858 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 12) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 12) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store8 - (get_local $10) - (i32.load8_s - (get_local $9) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=4 - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $11 - (i32.load8_s - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash8 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 12) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 12) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load8_s + i32.store8 + get_local $10 + get_local $9 + i32.load offset=4 + i32.store offset=4 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $9 + i32.load8_s + set_local $11 + get_local $11 + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.2 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=8 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 13 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 12) - ) - ) - ) - ) - (i32.store8 - (get_local $4) - (get_local $1) - ) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.1 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + i32.store8 + get_local $4 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=8 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/map/Map#get (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=4 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=4 + else + unreachable + end ) (func $~lib/map/Map#get:size (; 15 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/map/Map#delete (; 16 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.or - (i32.load offset=8 - (get_local $2) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.4 (result i32) + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.4 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.or + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/map/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) (func $std/map/test (; 17 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 20) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/map/Map#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 20 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/map/Map#clear + get_local $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/map/Map#clear (; 18 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 19 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/map/Map#find (; 20 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (i32.eq - (i32.load8_u - (get_local $3) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load8_u + get_local $1 + i32.const 255 + i32.and + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 21 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#rehash (; 22 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -2022,1200 +1477,864 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 12) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 12) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store8 - (get_local $10) - (i32.load8_u - (get_local $9) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=4 - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $11 - (i32.load8_u - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash8 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 12) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 12) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load8_u + i32.store8 + get_local $10 + get_local $9 + i32.load offset=4 + i32.store offset=4 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $9 + i32.load8_u + set_local $11 + get_local $11 + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.2 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=8 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 23 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 12) - ) - ) - ) - ) - (i32.store8 - (get_local $4) - (get_local $1) - ) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.1 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + i32.store8 + get_local $4 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=8 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/map/Map#get (; 24 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=4 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=4 + else + unreachable + end ) (func $~lib/map/Map#get:size (; 25 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/map/Map#delete (; 26 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.or - (i32.load offset=8 - (get_local $2) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.4 (result i32) + get_local $1 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.4 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.or + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/map/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) (func $std/map/test (; 27 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 20) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/map/Map#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.const 255 + i32.and + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.const 255 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.const 255 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 20 + get_local $1 + i32.const 255 + i32.and + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.const 255 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.const 255 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.const 255 + i32.and + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/map/Map#clear + get_local $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/map/Map#clear (; 28 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 29 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/internal/hash/hash16 (; 30 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (set_local $1 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (get_local $0) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (get_local $1) + get_global $~lib/internal/hash/FNV_OFFSET + set_local $1 + get_local $1 + get_local $0 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 8 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 ) (func $~lib/map/Map#find (; 31 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (i32.eq - (i32.load16_s - (get_local $3) - ) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load16_s + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 32 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#rehash (; 33 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -3229,1193 +2348,858 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 12) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 12) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store16 - (get_local $10) - (i32.load16_s - (get_local $9) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=4 - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $11 - (i32.load16_s - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash16 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 12) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 12) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load16_s + i32.store16 + get_local $10 + get_local $9 + i32.load offset=4 + i32.store offset=4 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $9 + i32.load16_s + set_local $11 + get_local $11 + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.2 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=8 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 34 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 12) - ) - ) - ) - ) - (i32.store16 - (get_local $4) - (get_local $1) - ) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.1 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + i32.store16 + get_local $4 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=8 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/map/Map#get (; 35 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=4 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=4 + else + unreachable + end ) (func $~lib/map/Map#get:size (; 36 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/map/Map#delete (; 37 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.or - (i32.load offset=8 - (get_local $2) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.4 (result i32) + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.4 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.or + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/map/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) (func $std/map/test (; 38 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 20) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/map/Map#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 20 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/map/Map#clear + get_local $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/map/Map#clear (; 39 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 40 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/map/Map#find (; 41 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (i32.eq - (i32.load16_u - (get_local $3) - ) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load16_u + get_local $1 + i32.const 65535 + i32.and + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 42 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#rehash (; 43 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -4429,1218 +3213,876 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 12) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 12) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store16 - (get_local $10) - (i32.load16_u - (get_local $9) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=4 - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $11 - (i32.load16_u - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash16 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 12) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 12) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load16_u + i32.store16 + get_local $10 + get_local $9 + i32.load offset=4 + i32.store offset=4 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $9 + i32.load16_u + set_local $11 + get_local $11 + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.2 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=8 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 44 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 12) - ) - ) - ) - ) - (i32.store16 - (get_local $4) - (get_local $1) - ) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.1 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + i32.store16 + get_local $4 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=8 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/map/Map#get (; 45 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=4 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=4 + else + unreachable + end ) (func $~lib/map/Map#get:size (; 46 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/map/Map#delete (; 47 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.or - (i32.load offset=8 - (get_local $2) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.4 (result i32) + get_local $1 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.4 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.or + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/map/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) (func $std/map/test (; 48 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 20) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/map/Map#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.const 65535 + i32.and + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.const 65535 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.const 65535 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 20 + get_local $1 + i32.const 65535 + i32.and + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.const 65535 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.const 65535 + i32.and + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.const 65535 + i32.and + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/map/Map#clear + get_local $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/map/Map#clear (; 49 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 50 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/internal/hash/hash32 (; 51 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (set_local $1 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (get_local $0) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.shr_u - (get_local $0) - (i32.const 24) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (get_local $1) + get_global $~lib/internal/hash/FNV_OFFSET + set_local $1 + get_local $1 + get_local $0 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 24 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 ) (func $~lib/map/Map#find (; 52 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (i32.eq - (i32.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load + get_local $1 + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 53 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#rehash (; 54 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -5654,1127 +4096,814 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 12) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 12) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store - (get_local $10) - (i32.load - (get_local $9) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=4 - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $11 - (i32.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash32 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 12) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 12) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load + i32.store + get_local $10 + get_local $9 + i32.load offset=4 + i32.store offset=4 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $9 + i32.load + set_local $11 + get_local $11 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.2 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=8 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 55 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 12) - ) - ) - ) - ) - (i32.store - (get_local $4) - (get_local $1) - ) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.1 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + i32.store + get_local $4 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=8 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/map/Map#get (; 56 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=4 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=4 + else + unreachable + end ) (func $~lib/map/Map#get:size (; 57 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/map/Map#delete (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.or - (i32.load offset=8 - (get_local $2) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.4 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.4 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.or + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/map/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) (func $std/map/test (; 59 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 20) - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/map/Map#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 20 + get_local $1 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/map/Map#clear + get_local $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/map/Map#clear (; 60 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 61 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/map/Map#find (; 62 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (i32.eq - (i32.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load + get_local $1 + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 63 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#rehash (; 64 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -6788,1257 +4917,902 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 12) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 12) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store - (get_local $10) - (i32.load - (get_local $9) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=4 - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $11 - (i32.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash32 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 12) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 12) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load + i32.store + get_local $10 + get_local $9 + i32.load offset=4 + i32.store offset=4 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $9 + i32.load + set_local $11 + get_local $11 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.2 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=8 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 65 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 12) - ) - ) - ) - ) - (i32.store - (get_local $4) - (get_local $1) - ) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.1 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + i32.store + get_local $4 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=8 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/map/Map#get (; 66 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=4 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=4 + else + unreachable + end ) (func $~lib/map/Map#get:size (; 67 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/map/Map#delete (; 68 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.or - (i32.load offset=8 - (get_local $2) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.4 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.4 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.or + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/map/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) (func $std/map/test (; 69 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 20) - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/map/Map#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 20 + get_local $1 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/map/Map#clear + get_local $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/map/Map#clear (; 70 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 64) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 64 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 71 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/internal/hash/hash64 (; 72 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $1 - (i32.wrap/i64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $0) - (i64.const 32) - ) - ) - ) - (set_local $3 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.shr_u - (get_local $1) - (i32.const 24) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (get_local $2) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $2) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $2) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.shr_u - (get_local $2) - (i32.const 24) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (get_local $3) + get_local $0 + i32.wrap/i64 + set_local $1 + get_local $0 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + get_global $~lib/internal/hash/FNV_OFFSET + set_local $3 + get_local $3 + get_local $1 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $1 + i32.const 24 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 24 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 ) (func $~lib/map/Map#find (; 73 ;) (type $iIii) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (i64.eq - (i64.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=12 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i64.load + get_local $1 + i64.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 74 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#rehash (; 75 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -8053,1141 +5827,821 @@ (local $11 i64) (local $12 i32) (local $13 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 16) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 16) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i64.store - (get_local $10) - (i64.load - (get_local $9) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $9) - ) - ) - (set_local $12 - (i32.and - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $11 - (i64.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash64 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $13 - (i32.add - (get_local $3) - (i32.mul - (get_local $12) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=12 - (get_local $10) - (i32.load offset=8 - (get_local $13) - ) - ) - (i32.store offset=8 - (get_local $13) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 16) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 16) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i64.load + i64.store + get_local $10 + get_local $9 + i32.load offset=8 + i32.store offset=8 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $9 + i64.load + set_local $11 + get_local $11 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.2 + end + get_local $1 + i32.and + set_local $12 + get_local $3 + get_local $12 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $13 + get_local $10 + get_local $13 + i32.load offset=8 + i32.store offset=12 + get_local $13 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 76 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 16) - ) - ) - ) - ) - (i64.store - (get_local $4) - (get_local $1) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=12 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.1 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=8 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + i64.store + get_local $4 + get_local $2 + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=12 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/map/Map#get (; 77 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=8 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=8 + else + unreachable + end ) (func $~lib/map/Map#get:size (; 78 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/map/Map#delete (; 79 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=12 - (get_local $2) - (i32.or - (i32.load offset=12 - (get_local $2) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.4 (result i32) + get_local $1 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.4 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.or + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/map/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) (func $std/map/test (; 80 ;) (type $v) (local $0 i32) (local $1 i64) - (set_local $0 - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i64.lt_s - (get_local $1) - (i64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i64.lt_s - (get_local $1) - (i64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 20) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i64.lt_s - (get_local $1) - (i64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i64.lt_s - (get_local $1) - (i64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/map/Map#constructor + set_local $0 + block $break|0 + i64.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i64.const 100 + i64.lt_s + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.wrap/i64 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.wrap/i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i64.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + i64.const 100 + i64.lt_s + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.wrap/i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 20 + get_local $1 + i32.wrap/i64 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.wrap/i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i64.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i64.const 50 + i64.lt_s + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.wrap/i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i64.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i64.const 50 + i64.lt_s + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.wrap/i64 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/map/Map#clear + get_local $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/map/Map#clear (; 81 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 64) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 64 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 82 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/map/Map#find (; 83 ;) (type $iIii) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (i64.eq - (i64.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=12 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i64.load + get_local $1 + i64.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 84 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#rehash (; 85 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -9202,1143 +6656,822 @@ (local $11 i64) (local $12 i32) (local $13 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 16) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 16) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i64.store - (get_local $10) - (i64.load - (get_local $9) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $9) - ) - ) - (set_local $12 - (i32.and - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $11 - (i64.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash64 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $13 - (i32.add - (get_local $3) - (i32.mul - (get_local $12) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=12 - (get_local $10) - (i32.load offset=8 - (get_local $13) - ) - ) - (i32.store offset=8 - (get_local $13) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 16) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 16) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i64.load + i64.store + get_local $10 + get_local $9 + i32.load offset=8 + i32.store offset=8 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $9 + i64.load + set_local $11 + get_local $11 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.2 + end + get_local $1 + i32.and + set_local $12 + get_local $3 + get_local $12 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $13 + get_local $10 + get_local $13 + i32.load offset=8 + i32.store offset=12 + get_local $13 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 86 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 16) - ) - ) - ) - ) - (i64.store - (get_local $4) - (get_local $1) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=12 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.1 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=8 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + i64.store + get_local $4 + get_local $2 + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=12 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/map/Map#get (; 87 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=8 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=8 + else + unreachable + end ) (func $~lib/map/Map#get:size (; 88 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/map/Map#delete (; 89 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=12 - (get_local $2) - (i32.or - (i32.load offset=12 - (get_local $2) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.4 (result i32) + get_local $1 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.4 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.or + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/map/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) (func $std/map/test (; 90 ;) (type $v) (local $0 i32) (local $1 i64) - (set_local $0 - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i64.lt_u - (get_local $1) - (i64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i64.lt_u - (get_local $1) - (i64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 20) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i64.lt_u - (get_local $1) - (i64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i64.lt_u - (get_local $1) - (i64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.wrap/i64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/map/Map#constructor + set_local $0 + block $break|0 + i64.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i64.const 100 + i64.lt_u + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.wrap/i64 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.wrap/i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i64.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + i64.const 100 + i64.lt_u + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.wrap/i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 20 + get_local $1 + i32.wrap/i64 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.wrap/i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i64.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i64.const 50 + i64.lt_u + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.wrap/i64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i64.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i64.const 50 + i64.lt_u + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.wrap/i64 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/map/Map#clear + get_local $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/map/Map#clear (; 91 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 92 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/map/Map#find (; 93 ;) (type $ifii) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (f32.eq - (f32.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + f32.load + get_local $1 + f32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 94 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#rehash (; 95 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -10353,1151 +7486,826 @@ (local $11 f32) (local $12 i32) (local $13 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 12) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 12) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (f32.store - (get_local $10) - (f32.load - (get_local $9) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=4 - (get_local $9) - ) - ) - (set_local $12 - (i32.and - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $11 - (f32.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $11) - ) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $13 - (i32.add - (get_local $3) - (i32.mul - (get_local $12) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $13) - ) - ) - (i32.store offset=8 - (get_local $13) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 12) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 12) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + f32.load + f32.store + get_local $10 + get_local $9 + i32.load offset=4 + i32.store offset=4 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $9 + f32.load + set_local $11 + get_local $11 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.2 + end + get_local $1 + i32.and + set_local $12 + get_local $3 + get_local $12 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $13 + get_local $10 + get_local $13 + i32.load offset=8 + i32.store offset=8 + get_local $13 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 96 ;) (type $ifiv) (param $0 i32) (param $1 f32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 12) - ) - ) - ) - ) - (f32.store - (get_local $4) - (get_local $1) - ) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.1 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + f32.store + get_local $4 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=8 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/map/Map#get (; 97 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=4 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=4 + else + unreachable + end ) (func $~lib/map/Map#get:size (; 98 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/map/Map#delete (; 99 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.or - (i32.load offset=8 - (get_local $2) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.4 (result i32) + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.4 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.or + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/map/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) (func $std/map/test (; 100 ;) (type $v) (local $0 i32) (local $1 f32) - (set_local $0 - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (f32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (f32.lt - (get_local $1) - (f32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.trunc_s/f32 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.trunc_s/f32 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (f32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (f32.lt - (get_local $1) - (f32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.trunc_s/f32 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 20) - (i32.trunc_s/f32 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.trunc_s/f32 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (f32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (f32.lt - (get_local $1) - (f32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.trunc_s/f32 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (f32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (f32.lt - (get_local $1) - (f32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.trunc_s/f32 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/map/Map#constructor + set_local $0 + block $break|0 + f32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + f32.const 100 + f32.lt + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.trunc_s/f32 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.trunc_s/f32 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f32.const 1 + f32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + f32.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + f32.const 100 + f32.lt + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.trunc_s/f32 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 20 + get_local $1 + i32.trunc_s/f32 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.trunc_s/f32 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f32.const 1 + f32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + f32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + f32.const 50 + f32.lt + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.trunc_s/f32 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f32.const 1 + f32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + f32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + f32.const 50 + f32.lt + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.trunc_s/f32 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f32.const 1 + f32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/map/Map#clear + get_local $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/map/Map#clear (; 101 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 64) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 64 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 102 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/map/Map#find (; 103 ;) (type $iFii) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (f64.eq - (f64.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=12 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + f64.load + get_local $1 + f64.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 104 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#rehash (; 105 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -11512,1007 +8320,720 @@ (local $11 f64) (local $12 i32) (local $13 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 16) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 16) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (f64.store - (get_local $10) - (f64.load - (get_local $9) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $9) - ) - ) - (set_local $12 - (i32.and - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (set_local $11 - (f64.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $11) - ) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $13 - (i32.add - (get_local $3) - (i32.mul - (get_local $12) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=12 - (get_local $10) - (i32.load offset=8 - (get_local $13) - ) - ) - (i32.store offset=8 - (get_local $13) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 16) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 16) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + f64.load + f64.store + get_local $10 + get_local $9 + i32.load offset=8 + i32.store offset=8 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $9 + f64.load + set_local $11 + get_local $11 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.2 + end + get_local $1 + i32.and + set_local $12 + get_local $3 + get_local $12 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $13 + get_local $10 + get_local $13 + i32.load offset=8 + i32.store offset=12 + get_local $13 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 106 ;) (type $iFiv) (param $0 i32) (param $1 f64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 16) - ) - ) - ) - ) - (f64.store - (get_local $4) - (get_local $1) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=12 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.1 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=8 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + f64.store + get_local $4 + get_local $2 + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=12 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/map/Map#get (; 107 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=8 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=8 + else + unreachable + end ) (func $~lib/map/Map#get:size (; 108 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/map/Map#delete (; 109 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.4 (result i32) - (br $~lib/internal/hash/hash|inlined.4 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=12 - (get_local $2) - (i32.or - (i32.load offset=12 - (get_local $2) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.4 (result i32) + get_local $1 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.4 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=12 + get_global $~lib/map/EMPTY + i32.or + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/map/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/map/Map#rehash + end + i32.const 1 ) (func $std/map/test (; 110 ;) (type $v) (local $0 i32) (local $1 f64) - (set_local $0 - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (f64.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (f64.lt - (get_local $1) - (f64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.trunc_s/f64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.trunc_s/f64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 11) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 13) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (f64.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (f64.lt - (get_local $1) - (f64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 17) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 10) - (i32.trunc_s/f64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 20) - (i32.trunc_s/f64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.trunc_s/f64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 21) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (f64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (f64.lt - (get_local $1) - (f64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 27) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get - (get_local $0) - (get_local $1) - ) - (i32.add - (i32.const 20) - (i32.trunc_s/f64 - (get_local $1) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 30) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (f64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (f64.lt - (get_local $1) - (f64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#set - (get_local $0) - (get_local $1) - (i32.add - (i32.const 10) - (i32.trunc_s/f64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/map/Map#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/map/Map#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 40) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/map/Map#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/map/Map#constructor + set_local $0 + block $break|0 + f64.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + f64.const 100 + f64.lt + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.trunc_s/f64 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.trunc_s/f64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 11 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f64.const 1 + f64.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 13 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + f64.const 0 + set_local $1 + loop $repeat|1 + get_local $1 + f64.const 100 + f64.lt + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 17 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 10 + get_local $1 + i32.trunc_s/f64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 20 + get_local $1 + i32.trunc_s/f64 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.trunc_s/f64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 21 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f64.const 1 + f64.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + f64.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + f64.const 50 + f64.lt + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 27 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#get + i32.const 20 + get_local $1 + i32.trunc_s/f64 + i32.add + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 30 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f64.const 1 + f64.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + f64.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + f64.const 50 + f64.lt + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.const 10 + get_local $1 + i32.trunc_s/f64 + i32.add + call $~lib/map/Map#set + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/map/Map#delete + drop + get_local $0 + get_local $1 + call $~lib/map/Map#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 40 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f64.const 1 + f64.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/map/Map#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/map/Map#clear + get_local $0 + call $~lib/map/Map#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $start (; 111 ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) - (call $std/map/test) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test + call $std/map/test ) (func $null (; 112 ;) (type $v) ) diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index ba84e0b6..7d7fca23 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -31,11 +31,6 @@ (type $FUNCSIG$iffi (func (param f32 f32 i32) (result i32))) (type $FUNCSIG$idddi (func (param f64 f64 f64 i32) (result i32))) (type $FUNCSIG$ifffi (func (param f32 f32 f32 i32) (result i32))) - (memory $0 1) - (data (i32.const 8) "\0b\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s") - (data (i32.const 40) "\0c\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "Math" "E" (global $~lib/bindings/Math/E f64)) (import "Math" "LN2" (global $~lib/bindings/Math/LN2 f64)) (import "Math" "LN10" (global $~lib/bindings/Math/LN10 f64)) @@ -73,6 +68,11 @@ (import "Math" "sqrt" (func $~lib/bindings/Math/sqrt (param f64) (result f64))) (import "Math" "tanh" (func $~lib/bindings/Math/tanh (param f64) (result f64))) (import "Math" "trunc" (func $~lib/bindings/Math/trunc (param f64) (result f64))) + (memory $0 1) + (data (i32.const 8) "\0b\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s") + (data (i32.const 40) "\0c\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) @@ -81,1181 +81,812 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/builtins/isNaN (; 30 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (f64.ne - (get_local $0) - (get_local $0) - ) + (func $~lib/builtins/isNaN (; 30 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + get_local $0 + f64.ne ) - (func $std/math/signbit (; 31 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 63) - ) - ) + (func $std/math/signbit (; 31 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + i64.reinterpret/f64 + i64.const 63 + i64.shr_u + i32.wrap/i64 ) - (func $~lib/builtins/isFinite (; 32 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (f64.eq - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) + (func $~lib/builtins/isFinite (; 32 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.eq ) - (func $std/math/eulp (; 33 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) + (func $std/math/eulp (; 33 ;) (type $Fi) (param $0 f64) (result i32) (local $1 i32) - (if - (i32.eqz - (tee_local $1 - (i32.wrap/i64 - (i64.and - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.add - (get_local $1) - (i32.const -1075) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + i32.wrap/i64 + tee_local $1 + i32.eqz + if + get_local $1 + i32.const 1 + i32.add + set_local $1 + end + get_local $1 + i32.const -1075 + i32.add ) - (func $~lib/math/NativeMath.scalbn (; 34 ;) (; has Stack IR ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - (if - (i32.gt_s - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (i32.const 1023) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (select - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (i32.const 1023) - (i32.lt_s - (get_local $1) - (i32.const 1023) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 2.004168360008973e-292) - ) - ) - (if - (i32.lt_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 969) - ) - ) - (i32.const -1022) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 2.004168360008973e-292) - ) - ) - (set_local $1 - (select - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 969) - ) - ) - (i32.const -1022) - (i32.gt_s - (get_local $1) - (i32.const -1022) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.reinterpret/i64 - (i64.shl - (i64.add - (i64.extend_s/i32 - (get_local $1) - ) - (i64.const 1023) - ) - (i64.const 52) - ) - ) - ) + (func $~lib/math/NativeMath.scalbn (; 34 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $0 + get_local $1 + i32.const 1023 + i32.sub + tee_local $1 + i32.const 1023 + i32.gt_s + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $0 + get_local $1 + i32.const 1023 + i32.sub + tee_local $1 + i32.const 1023 + get_local $1 + i32.const 1023 + i32.lt_s + select + set_local $1 + end + else + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $0 + f64.const 2.004168360008973e-292 + f64.mul + set_local $0 + get_local $1 + i32.const 969 + i32.add + tee_local $1 + i32.const -1022 + i32.lt_s + if + get_local $0 + f64.const 2.004168360008973e-292 + f64.mul + set_local $0 + get_local $1 + i32.const 969 + i32.add + tee_local $1 + i32.const -1022 + get_local $1 + i32.const -1022 + i32.gt_s + select + set_local $1 + end + end + end + get_local $0 + get_local $1 + i64.extend_s/i32 + i64.const 1023 + i64.add + i64.const 52 + i64.shl + f64.reinterpret/i64 + f64.mul ) - (func $std/math/ulperr (; 35 ;) (; has Stack IR ;) (type $FFFF) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) + (func $std/math/ulperr (; 35 ;) (type $FFFF) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) (local $3 i32) (local $4 i32) - (if - (tee_local $3 - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - (set_local $3 - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - ) - (if - (get_local $3) - (return - (f64.const 0) - ) - ) - (if - (f64.eq - (get_local $0) - (get_local $1) - ) - (block - (set_local $4 - (call $std/math/signbit - (get_local $0) - ) - ) - (set_local $3 - (call $std/math/signbit - (get_local $1) - ) - ) - (if - (i32.eq - (get_local $4) - (get_local $3) - ) - (return - (get_local $2) - ) - ) - (return - (f64.const inf) - ) - ) - ) - (if - (i32.eqz - (call $~lib/builtins/isFinite - (get_local $0) - ) - ) - (block - (set_local $0 - (f64.copysign - (f64.const 8988465674311579538646525e283) - (get_local $0) - ) - ) - (set_local $1 - (f64.mul - (get_local $1) - (f64.const 0.5) - ) - ) - ) - ) - (set_local $0 - (f64.sub - (get_local $0) - (get_local $1) - ) - ) - (set_local $3 - (i32.sub - (i32.const 0) - (call $std/math/eulp - (get_local $1) - ) - ) - ) - (f64.add - (tee_local $0 - (call $~lib/math/NativeMath.scalbn - (get_local $0) - (get_local $3) - ) - ) - (get_local $2) - ) + get_local $0 + call $~lib/builtins/isNaN + tee_local $3 + if + get_local $1 + call $~lib/builtins/isNaN + set_local $3 + end + get_local $3 + if + f64.const 0 + return + end + get_local $0 + get_local $1 + f64.eq + if + get_local $0 + call $std/math/signbit + set_local $4 + get_local $1 + call $std/math/signbit + set_local $3 + get_local $4 + get_local $3 + i32.eq + if + get_local $2 + return + end + f64.const inf + return + end + get_local $0 + call $~lib/builtins/isFinite + i32.eqz + if + f64.const 8988465674311579538646525e283 + get_local $0 + f64.copysign + set_local $0 + get_local $1 + f64.const 0.5 + f64.mul + set_local $1 + end + get_local $0 + get_local $1 + f64.sub + set_local $0 + i32.const 0 + get_local $1 + call $std/math/eulp + i32.sub + set_local $3 + get_local $0 + get_local $3 + call $~lib/math/NativeMath.scalbn + tee_local $0 + get_local $2 + f64.add ) - (func $std/math/check (; 36 ;) (; has Stack IR ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (if - (f64.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (call $~lib/builtins/isNaN - (get_local $1) - ) - (return - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (if - (f64.ge - (f64.abs - (call $std/math/ulperr - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (f64.const 1.5) - ) - (return - (i32.const 0) - ) - ) - (i32.const 1) + (func $std/math/check (; 36 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + get_local $0 + get_local $1 + f64.eq + if + i32.const 1 + return + end + get_local $1 + call $~lib/builtins/isNaN + if + get_local $0 + call $~lib/builtins/isNaN + return + end + get_local $0 + get_local $1 + get_local $2 + call $std/math/ulperr + f64.abs + f64.const 1.5 + f64.ge + if + i32.const 0 + return + end + i32.const 1 ) - (func $~lib/builtins/isNaN (; 37 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32) - (f32.ne - (get_local $0) - (get_local $0) - ) + (func $~lib/builtins/isNaN (; 37 ;) (type $fi) (param $0 f32) (result i32) + get_local $0 + get_local $0 + f32.ne ) - (func $std/math/signbitf (; 38 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32) - (i32.shr_u - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 31) - ) + (func $std/math/signbitf (; 38 ;) (type $fi) (param $0 f32) (result i32) + get_local $0 + i32.reinterpret/f32 + i32.const 31 + i32.shr_u ) - (func $~lib/builtins/isFinite (; 39 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32) - (f32.eq - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.const 0) - ) + (func $~lib/builtins/isFinite (; 39 ;) (type $fi) (param $0 f32) (result i32) + get_local $0 + get_local $0 + f32.sub + f32.const 0 + f32.eq ) - (func $std/math/eulpf (; 40 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32) + (func $std/math/eulpf (; 40 ;) (type $fi) (param $0 f32) (result i32) (local $1 i32) - (if - (i32.eqz - (tee_local $1 - (i32.and - (i32.shr_u - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 23) - ) - (i32.const 255) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.add - (get_local $1) - (i32.const -150) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + tee_local $1 + i32.eqz + if + get_local $1 + i32.const 1 + i32.add + set_local $1 + end + get_local $1 + i32.const -150 + i32.add ) - (func $~lib/math/NativeMathf.scalbn (; 41 ;) (; has Stack IR ;) (type $fif) (param $0 f32) (param $1 i32) (result f32) - (if - (i32.gt_s - (get_local $1) - (i32.const 127) - ) - (block - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 1701411834604692317316873e14) - ) - ) - (if - (i32.gt_s - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 127) - ) - ) - (i32.const 127) - ) - (block - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 1701411834604692317316873e14) - ) - ) - (set_local $1 - (select - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 127) - ) - ) - (i32.const 127) - (i32.lt_s - (get_local $1) - (i32.const 127) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -126) - ) - (block - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 1.9721522630525295e-31) - ) - ) - (if - (i32.lt_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 102) - ) - ) - (i32.const -126) - ) - (block - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 1.9721522630525295e-31) - ) - ) - (set_local $1 - (select - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 102) - ) - ) - (i32.const -126) - (i32.gt_s - (get_local $1) - (i32.const -126) - ) - ) - ) - ) - ) - ) - ) - ) - (f32.mul - (get_local $0) - (f32.reinterpret/i32 - (i32.shl - (i32.add - (get_local $1) - (i32.const 127) - ) - (i32.const 23) - ) - ) - ) + (func $~lib/math/NativeMathf.scalbn (; 41 ;) (type $fif) (param $0 f32) (param $1 i32) (result f32) + get_local $1 + i32.const 127 + i32.gt_s + if + get_local $0 + f32.const 1701411834604692317316873e14 + f32.mul + set_local $0 + get_local $1 + i32.const 127 + i32.sub + tee_local $1 + i32.const 127 + i32.gt_s + if + get_local $0 + f32.const 1701411834604692317316873e14 + f32.mul + set_local $0 + get_local $1 + i32.const 127 + i32.sub + tee_local $1 + i32.const 127 + get_local $1 + i32.const 127 + i32.lt_s + select + set_local $1 + end + else + get_local $1 + i32.const -126 + i32.lt_s + if + get_local $0 + f32.const 1.9721522630525295e-31 + f32.mul + set_local $0 + get_local $1 + i32.const 102 + i32.add + tee_local $1 + i32.const -126 + i32.lt_s + if + get_local $0 + f32.const 1.9721522630525295e-31 + f32.mul + set_local $0 + get_local $1 + i32.const 102 + i32.add + tee_local $1 + i32.const -126 + get_local $1 + i32.const -126 + i32.gt_s + select + set_local $1 + end + end + end + get_local $0 + get_local $1 + i32.const 127 + i32.add + i32.const 23 + i32.shl + f32.reinterpret/i32 + f32.mul ) - (func $std/math/ulperrf (; 42 ;) (; has Stack IR ;) (type $ffff) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) + (func $std/math/ulperrf (; 42 ;) (type $ffff) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) (local $3 i32) (local $4 i32) - (if - (tee_local $3 - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - (set_local $3 - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - ) - (if - (get_local $3) - (return - (f32.const 0) - ) - ) - (if - (f32.eq - (get_local $0) - (get_local $1) - ) - (block - (set_local $4 - (call $std/math/signbitf - (get_local $0) - ) - ) - (set_local $3 - (call $std/math/signbitf - (get_local $1) - ) - ) - (if - (i32.eq - (get_local $4) - (get_local $3) - ) - (return - (get_local $2) - ) - ) - (return - (f32.const inf) - ) - ) - ) - (if - (i32.eqz - (call $~lib/builtins/isFinite - (get_local $0) - ) - ) - (block - (set_local $0 - (f32.copysign - (f32.const 1701411834604692317316873e14) - (get_local $0) - ) - ) - (set_local $1 - (f32.mul - (get_local $1) - (f32.const 0.5) - ) - ) - ) - ) - (set_local $0 - (f32.sub - (get_local $0) - (get_local $1) - ) - ) - (set_local $3 - (i32.sub - (i32.const 0) - (call $std/math/eulpf - (get_local $1) - ) - ) - ) - (f32.add - (tee_local $0 - (call $~lib/math/NativeMathf.scalbn - (get_local $0) - (get_local $3) - ) - ) - (get_local $2) - ) + get_local $0 + call $~lib/builtins/isNaN + tee_local $3 + if + get_local $1 + call $~lib/builtins/isNaN + set_local $3 + end + get_local $3 + if + f32.const 0 + return + end + get_local $0 + get_local $1 + f32.eq + if + get_local $0 + call $std/math/signbitf + set_local $4 + get_local $1 + call $std/math/signbitf + set_local $3 + get_local $4 + get_local $3 + i32.eq + if + get_local $2 + return + end + f32.const inf + return + end + get_local $0 + call $~lib/builtins/isFinite + i32.eqz + if + f32.const 1701411834604692317316873e14 + get_local $0 + f32.copysign + set_local $0 + get_local $1 + f32.const 0.5 + f32.mul + set_local $1 + end + get_local $0 + get_local $1 + f32.sub + set_local $0 + i32.const 0 + get_local $1 + call $std/math/eulpf + i32.sub + set_local $3 + get_local $0 + get_local $3 + call $~lib/math/NativeMathf.scalbn + tee_local $0 + get_local $2 + f32.add ) - (func $std/math/check (; 43 ;) (; has Stack IR ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (if - (f32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (call $~lib/builtins/isNaN - (get_local $1) - ) - (return - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (if - (f32.ge - (f32.abs - (call $std/math/ulperrf - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (f32.const 1.5) - ) - (return - (i32.const 0) - ) - ) - (i32.const 1) + (func $std/math/check (; 43 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + get_local $0 + get_local $1 + f32.eq + if + i32.const 1 + return + end + get_local $1 + call $~lib/builtins/isNaN + if + get_local $0 + call $~lib/builtins/isNaN + return + end + get_local $0 + get_local $1 + get_local $2 + call $std/math/ulperrf + f32.abs + f32.const 1.5 + f32.ge + if + i32.const 0 + return + end + i32.const 1 ) - (func $std/math/test_scalbn (; 44 ;) (; has Stack IR ;) (type $FUNCSIG$ididi) (param $0 f64) (param $1 i32) (param $2 f64) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMath.scalbn - (get_local $0) - (get_local $1) - ) - (get_local $2) - (f64.const 0) - ) + (func $std/math/test_scalbn (; 44 ;) (type $FUNCSIG$ididi) (param $0 f64) (param $1 i32) (param $2 f64) (param $3 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.scalbn + get_local $2 + f64.const 0 + call $std/math/check ) - (func $std/math/test_scalbnf (; 45 ;) (; has Stack IR ;) (type $FUNCSIG$ififi) (param $0 f32) (param $1 i32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.scalbn - (get_local $0) - (get_local $1) - ) - (get_local $2) - (f32.const 0) - ) + (func $std/math/test_scalbnf (; 45 ;) (type $FUNCSIG$ififi) (param $0 f32) (param $1 i32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.scalbn + get_local $2 + f32.const 0 + call $std/math/check ) - (func $std/math/test_abs (; 46 ;) (; has Stack IR ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_abs (; 46 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i32) - (if - (tee_local $2 - (call $std/math/check - (f64.abs - (get_local $0) - ) - (get_local $1) - (f64.const 0) - ) - ) - (set_local $2 - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/abs - (get_local $0) - ) - ) - (get_local $1) - (f64.const 0) - ) - ) - ) - (get_local $2) + get_local $0 + f64.abs + get_local $1 + f64.const 0 + call $std/math/check + tee_local $2 + if + get_local $0 + call $~lib/bindings/Math/abs + tee_local $0 + get_local $1 + f64.const 0 + call $std/math/check + set_local $2 + end + get_local $2 ) - (func $std/math/test_absf (; 47 ;) (; has Stack IR ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) - (call $std/math/check - (f32.abs - (get_local $0) - ) - (get_local $1) - (f32.const 0) - ) + (func $std/math/test_absf (; 47 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + get_local $0 + f32.abs + get_local $1 + f32.const 0 + call $std/math/check ) - (func $~lib/math/R (; 48 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) - (f64.div - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.16666666666666666) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.3255658186224009) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.20121253213486293) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.04005553450067941) - (f64.mul - (get_local $0) - (f64.add - (f64.const 7.915349942898145e-04) - (f64.mul - (get_local $0) - (f64.const 3.479331075960212e-05) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.add - (f64.const 1) - (f64.mul - (get_local $0) - (f64.add - (f64.const -2.403394911734414) - (f64.mul - (get_local $0) - (f64.add - (f64.const 2.0209457602335057) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.6882839716054533) - (f64.mul - (get_local $0) - (f64.const 0.07703815055590194) - ) - ) - ) - ) - ) - ) - ) - ) - ) + (func $~lib/math/R (; 48 ;) (type $FF) (param $0 f64) (result f64) + get_local $0 + f64.const 0.16666666666666666 + get_local $0 + f64.const -0.3255658186224009 + get_local $0 + f64.const 0.20121253213486293 + get_local $0 + f64.const -0.04005553450067941 + get_local $0 + f64.const 7.915349942898145e-04 + get_local $0 + f64.const 3.479331075960212e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.const 1 + get_local $0 + f64.const -2.403394911734414 + get_local $0 + f64.const 2.0209457602335057 + get_local $0 + f64.const -0.6882839716054533 + get_local $0 + f64.const 0.07703815055590194 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.div ) - (func $~lib/math/NativeMath.acos (; 49 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 49 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) (local $4 i32) (local $5 f64) - (if - (i32.ge_u - (tee_local $2 - (i32.and - (tee_local $4 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 1072693248) - ) - (block - (if - (i32.eqz - (i32.or - (i32.sub - (get_local $2) - (i32.const 1072693248) - ) - (i32.wrap/i64 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - ) - ) - (block - (if - (i32.shr_u - (get_local $4) - (i32.const 31) - ) - (return - (f64.const 3.141592653589793) - ) - ) - (return - (f64.const 0) - ) - ) - ) - (return - (f64.div - (f64.const 0) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1071644672) - ) - (block - (if - (i32.le_u - (get_local $2) - (i32.const 1012924416) - ) - (return - (f64.const 1.5707963267948966) - ) - ) - (set_local $1 - (call $~lib/math/R - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (return - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (get_local $0) - (f64.sub - (f64.const 6.123233995736766e-17) - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $4) - (i32.const 31) - ) - (block - (set_local $0 - (f64.sqrt - (tee_local $1 - (f64.add - (f64.const 0.5) - (f64.mul - (get_local $0) - (f64.const 0.5) - ) - ) - ) - ) - ) - (set_local $1 - (call $~lib/math/R - (get_local $1) - ) - ) - (return - (f64.mul - (f64.const 2) - (f64.sub - (f64.const 1.5707963267948966) - (f64.add - (get_local $0) - (f64.sub - (f64.mul - (get_local $1) - (get_local $0) - ) - (f64.const 6.123233995736766e-17) - ) - ) - ) - ) - ) - ) - ) - (set_local $0 - (f64.sqrt - (tee_local $1 - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $0) - (f64.const 0.5) - ) - ) - ) - ) - ) - (set_local $5 - (f64.div - (f64.sub - (get_local $1) - (f64.mul - (tee_local $3 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $3) - ) - ) - (f64.add - (get_local $0) - (get_local $3) - ) - ) - ) - (set_local $1 - (call $~lib/math/R - (get_local $1) - ) - ) - (f64.mul - (f64.const 2) - (f64.add - (get_local $3) - (f64.add - (f64.mul - (get_local $1) - (get_local $0) - ) - (get_local $5) - ) - ) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $4 + i32.const 2147483647 + i32.and + tee_local $2 + i32.const 1072693248 + i32.ge_u + if + get_local $2 + i32.const 1072693248 + i32.sub + get_local $0 + i64.reinterpret/f64 + i32.wrap/i64 + i32.or + i32.eqz + if + get_local $4 + i32.const 31 + i32.shr_u + if + f64.const 3.141592653589793 + return + end + f64.const 0 + return + end + f64.const 0 + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $2 + i32.const 1071644672 + i32.lt_u + if + get_local $2 + i32.const 1012924416 + i32.le_u + if + f64.const 1.5707963267948966 + return + end + get_local $0 + get_local $0 + f64.mul + call $~lib/math/R + set_local $1 + f64.const 1.5707963267948966 + get_local $0 + f64.const 6.123233995736766e-17 + get_local $0 + get_local $1 + f64.mul + f64.sub + f64.sub + f64.sub + return + end + get_local $4 + i32.const 31 + i32.shr_u + if + f64.const 0.5 + get_local $0 + f64.const 0.5 + f64.mul + f64.add + tee_local $1 + f64.sqrt + set_local $0 + get_local $1 + call $~lib/math/R + set_local $1 + f64.const 2 + f64.const 1.5707963267948966 + get_local $0 + get_local $1 + get_local $0 + f64.mul + f64.const 6.123233995736766e-17 + f64.sub + f64.add + f64.sub + f64.mul + return + end + f64.const 0.5 + get_local $0 + f64.const 0.5 + f64.mul + f64.sub + tee_local $1 + f64.sqrt + set_local $0 + get_local $1 + get_local $0 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $3 + get_local $3 + f64.mul + f64.sub + get_local $0 + get_local $3 + f64.add + f64.div + set_local $5 + get_local $1 + call $~lib/math/R + set_local $1 + f64.const 2 + get_local $3 + get_local $1 + get_local $0 + f64.mul + get_local $5 + f64.add + f64.add + f64.mul ) - (func $std/math/test_acos (; 50 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_acos (; 50 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.acos - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/acos - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.acos + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/acos + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/Rf (; 51 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) - (f32.div - (f32.mul - (get_local $0) - (f32.add - (f32.const 0.16666586697101593) - (f32.mul - (get_local $0) - (f32.add - (f32.const -0.04274342209100723) - (f32.mul - (get_local $0) - (f32.const -0.008656363002955914) - ) - ) - ) - ) - ) - (f32.add - (f32.const 1) - (f32.mul - (get_local $0) - (f32.const -0.7066296339035034) - ) - ) - ) + (func $~lib/math/Rf (; 51 ;) (type $ff) (param $0 f32) (result f32) + get_local $0 + f32.const 0.16666586697101593 + get_local $0 + f32.const -0.04274342209100723 + get_local $0 + f32.const -0.008656363002955914 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.const 1 + get_local $0 + f32.const -0.7066296339035034 + f32.mul + f32.add + f32.div ) - (func $~lib/math/NativeMathf.acos (; 52 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 52 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) (local $4 f32) (local $5 f32) - (if - (i32.ge_u - (tee_local $3 - (i32.and - (tee_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 1065353216) - ) - (block - (if - (i32.eq - (get_local $3) - (i32.const 1065353216) - ) - (block - (if - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (return - (f32.const 3.141592502593994) - ) - ) - (return - (f32.const 0) - ) - ) - ) - (return - (f32.div - (f32.const 0) - (f32.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 1056964608) - ) - (block - (if - (i32.le_u - (get_local $3) - (i32.const 847249408) - ) - (return - (f32.const 1.570796251296997) - ) - ) - (set_local $1 - (call $~lib/math/Rf - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (return - (f32.sub - (f32.const 1.570796251296997) - (f32.sub - (get_local $0) - (f32.sub - (f32.const 7.549789415861596e-08) - (f32.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (block - (set_local $0 - (f32.sqrt - (tee_local $1 - (f32.add - (f32.const 0.5) - (f32.mul - (get_local $0) - (f32.const 0.5) - ) - ) - ) - ) - ) - (set_local $1 - (call $~lib/math/Rf - (get_local $1) - ) - ) - (return - (f32.mul - (f32.const 2) - (f32.sub - (f32.const 1.570796251296997) - (f32.add - (get_local $0) - (f32.sub - (f32.mul - (get_local $1) - (get_local $0) - ) - (f32.const 7.549789415861596e-08) - ) - ) - ) - ) - ) - ) - ) - (set_local $2 - (i32.reinterpret/f32 - (tee_local $0 - (f32.sqrt - (tee_local $1 - (f32.sub - (f32.const 0.5) - (f32.mul - (get_local $0) - (f32.const 0.5) - ) - ) - ) - ) - ) - ) - ) - (set_local $5 - (f32.div - (f32.sub - (get_local $1) - (f32.mul - (tee_local $4 - (f32.reinterpret/i32 - (i32.and - (get_local $2) - (i32.const -4096) - ) - ) - ) - (get_local $4) - ) - ) - (f32.add - (get_local $0) - (get_local $4) - ) - ) - ) - (set_local $1 - (call $~lib/math/Rf - (get_local $1) - ) - ) - (f32.mul - (f32.const 2) - (f32.add - (get_local $4) - (f32.add - (f32.mul - (get_local $1) - (get_local $0) - ) - (get_local $5) - ) - ) - ) + get_local $0 + i32.reinterpret/f32 + tee_local $2 + i32.const 2147483647 + i32.and + tee_local $3 + i32.const 1065353216 + i32.ge_u + if + get_local $3 + i32.const 1065353216 + i32.eq + if + get_local $2 + i32.const 31 + i32.shr_u + if + f32.const 3.141592502593994 + return + end + f32.const 0 + return + end + f32.const 0 + get_local $0 + get_local $0 + f32.sub + f32.div + return + end + get_local $3 + i32.const 1056964608 + i32.lt_u + if + get_local $3 + i32.const 847249408 + i32.le_u + if + f32.const 1.570796251296997 + return + end + get_local $0 + get_local $0 + f32.mul + call $~lib/math/Rf + set_local $1 + f32.const 1.570796251296997 + get_local $0 + f32.const 7.549789415861596e-08 + get_local $0 + get_local $1 + f32.mul + f32.sub + f32.sub + f32.sub + return + end + get_local $2 + i32.const 31 + i32.shr_u + if + f32.const 0.5 + get_local $0 + f32.const 0.5 + f32.mul + f32.add + tee_local $1 + f32.sqrt + set_local $0 + get_local $1 + call $~lib/math/Rf + set_local $1 + f32.const 2 + f32.const 1.570796251296997 + get_local $0 + get_local $1 + get_local $0 + f32.mul + f32.const 7.549789415861596e-08 + f32.sub + f32.add + f32.sub + f32.mul + return + end + f32.const 0.5 + get_local $0 + f32.const 0.5 + f32.mul + f32.sub + tee_local $1 + f32.sqrt + tee_local $0 + i32.reinterpret/f32 + set_local $2 + get_local $1 + get_local $2 + i32.const -4096 + i32.and + f32.reinterpret/i32 + tee_local $4 + get_local $4 + f32.mul + f32.sub + get_local $0 + get_local $4 + f32.add + f32.div + set_local $5 + get_local $1 + call $~lib/math/Rf + set_local $1 + f32.const 2 + get_local $4 + get_local $1 + get_local $0 + f32.mul + get_local $5 + f32.add + f32.add + f32.mul ) - (func $std/math/test_acosf (; 53 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.acos - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_acosf (; 53 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.acos + get_local $1 + get_local $2 + call $std/math/check ) - (func $~lib/math/NativeMath.log1p (; 54 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 54 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -1264,299 +895,203 @@ (local $6 f64) (local $7 i64) (local $8 f64) - (set_local $2 - (i32.const 1) - ) - (if - (i32.eqz - (tee_local $5 - (i32.lt_u - (tee_local $3 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (i32.const 1071284858) - ) - ) - ) - (set_local $5 - (i32.shr_u - (get_local $3) - (i32.const 31) - ) - ) - ) - (if - (get_local $5) - (block - (if - (i32.ge_u - (get_local $3) - (i32.const -1074790400) - ) - (block - (if - (f64.eq - (get_local $0) - (f64.const -1) - ) - (return - (f64.div - (get_local $0) - (f64.const 0) - ) - ) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - ) - (if - (i32.lt_u - (i32.shl - (get_local $3) - (i32.const 1) - ) - (i32.const 2034237440) - ) - (return - (get_local $0) - ) - ) - (if - (i32.le_u - (get_local $3) - (i32.const -1076707644) - ) - (block - (set_local $2 - (i32.const 0) - ) - (set_local $1 - (get_local $0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $3) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - ) - ) - (if - (get_local $2) - (block - (set_local $4 - (if (result f64) - (i32.lt_s - (tee_local $2 - (i32.sub - (i32.shr_u - (tee_local $5 - (i32.add - (i32.wrap/i64 - (i64.shr_u - (tee_local $7 - (i64.reinterpret/f64 - (f64.add - (f64.const 1) - (get_local $0) - ) - ) - ) - (i64.const 32) - ) - ) - (i32.const 614242) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (i32.const 54) - ) - (block (result f64) - (set_local $1 - (f64.reinterpret/i64 - (get_local $7) - ) - ) - (f64.div - (tee_local $4 - (if (result f64) - (i32.ge_s - (get_local $2) - (i32.const 2) - ) - (f64.sub - (f64.const 1) - (f64.sub - (get_local $1) - (get_local $0) - ) - ) - (f64.sub - (get_local $0) - (f64.sub - (get_local $1) - (f64.const 1) - ) - ) - ) - ) - (get_local $1) - ) - ) - (f64.const 0) - ) - ) - (set_local $1 - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.shl - (i64.extend_u/i32 - (i32.add - (i32.and - (get_local $5) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (i64.const 32) - ) - (i64.and - (get_local $7) - (i64.const 4294967295) - ) - ) - ) - (f64.const 1) - ) - ) - ) - ) - (set_local $0 - (f64.mul - (tee_local $8 - (f64.mul - (tee_local $6 - (f64.div - (get_local $1) - (f64.add - (f64.const 2) - (get_local $1) - ) - ) - ) - (get_local $6) - ) - ) - (get_local $8) - ) - ) - (f64.add - (f64.add - (f64.sub - (f64.add - (f64.mul - (get_local $6) - (f64.add - (tee_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $1) - ) - (get_local $1) - ) - ) - (f64.add - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $0) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $0) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.add - (f64.mul - (tee_local $0 - (f64.convert_s/i32 - (get_local $2) - ) - ) - (f64.const 1.9082149292705877e-10) - ) - (get_local $4) - ) - ) - (get_local $6) - ) - (get_local $1) - ) - (f64.mul - (get_local $0) - (f64.const 0.6931471803691238) - ) - ) + i32.const 1 + set_local $2 + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $3 + i32.const 1071284858 + i32.lt_u + tee_local $5 + i32.eqz + if + get_local $3 + i32.const 31 + i32.shr_u + set_local $5 + end + get_local $5 + if + get_local $3 + i32.const -1074790400 + i32.ge_u + if + get_local $0 + f64.const -1 + f64.eq + if + get_local $0 + f64.const 0 + f64.div + return + end + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $3 + i32.const 1 + i32.shl + i32.const 2034237440 + i32.lt_u + if + get_local $0 + return + end + get_local $3 + i32.const -1076707644 + i32.le_u + if + i32.const 0 + set_local $2 + get_local $0 + set_local $1 + end + else + get_local $3 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + end + end + get_local $2 + if + f64.const 1 + get_local $0 + f64.add + i64.reinterpret/f64 + tee_local $7 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 614242 + i32.add + tee_local $5 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + tee_local $2 + i32.const 54 + i32.lt_s + if (result f64) + get_local $7 + f64.reinterpret/i64 + set_local $1 + get_local $2 + i32.const 2 + i32.ge_s + if (result f64) + f64.const 1 + get_local $1 + get_local $0 + f64.sub + f64.sub + else + get_local $0 + get_local $1 + f64.const 1 + f64.sub + f64.sub + end + tee_local $4 + get_local $1 + f64.div + else + f64.const 0 + end + set_local $4 + get_local $5 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $7 + i64.const 4294967295 + i64.and + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub + set_local $1 + end + get_local $1 + f64.const 2 + get_local $1 + f64.add + f64.div + tee_local $6 + get_local $6 + f64.mul + tee_local $8 + get_local $8 + f64.mul + set_local $0 + get_local $6 + f64.const 0.5 + get_local $1 + f64.mul + get_local $1 + f64.mul + tee_local $6 + get_local $8 + f64.const 0.6666666666666735 + get_local $0 + f64.const 0.2857142874366239 + get_local $0 + f64.const 0.1818357216161805 + get_local $0 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $0 + f64.const 0.3999999999940942 + get_local $0 + f64.const 0.22222198432149784 + get_local $0 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + f64.mul + get_local $2 + f64.convert_s/i32 + tee_local $0 + f64.const 1.9082149292705877e-10 + f64.mul + get_local $4 + f64.add + f64.add + get_local $6 + f64.sub + get_local $1 + f64.add + get_local $0 + f64.const 0.6931471803691238 + f64.mul + f64.add ) - (func $~lib/math/NativeMath.log (; 55 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 55 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1564,367 +1099,251 @@ (local $5 f64) (local $6 f64) (local $7 f64) - (if - (i32.eqz - (tee_local $2 - (i32.lt_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (i32.const 1048576) - ) - ) - ) - (set_local $2 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - ) - (if - (get_local $2) - (block - (if - (i64.eq - (i64.shl - (get_local $4) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $3 - (i32.const -54) - ) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (block - (if - (tee_local $2 - (i32.eq - (get_local $1) - (i32.const 1072693248) - ) - ) - (set_local $2 - (i64.eq - (i64.shl - (get_local $4) - (i64.const 32) - ) - (i64.const 0) - ) - ) - ) - (if - (get_local $2) - (return - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 614242) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $0 - (f64.mul - (tee_local $7 - (f64.mul - (tee_local $6 - (f64.div - (tee_local $5 - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.shl - (i64.extend_u/i32 - (i32.add - (i32.and - (get_local $1) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (i64.const 32) - ) - (i64.and - (get_local $4) - (i64.const 4294967295) - ) - ) - ) - (f64.const 1) - ) - ) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (get_local $6) - ) - ) - (get_local $7) - ) - ) - (f64.add - (f64.add - (f64.sub - (f64.add - (f64.mul - (get_local $6) - (f64.add - (tee_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (f64.add - (f64.mul - (get_local $7) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $0) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $0) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (tee_local $0 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (f64.const 1.9082149292705877e-10) - ) - ) - (get_local $6) - ) - (get_local $5) - ) - (f64.mul - (get_local $0) - (f64.const 0.6931471803691238) - ) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 1048576 + i32.lt_u + tee_local $2 + i32.eqz + if + get_local $1 + i32.const 31 + i32.shr_u + set_local $2 + end + get_local $2 + if + get_local $4 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + i32.const -54 + set_local $3 + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + tee_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + else + get_local $1 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1072693248 + i32.eq + tee_local $2 + if + get_local $4 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + set_local $2 + end + get_local $2 + if + f64.const 0 + return + end + end + end + get_local $3 + get_local $1 + i32.const 614242 + i32.add + tee_local $1 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $3 + get_local $1 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $4 + i64.const 4294967295 + i64.and + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub + tee_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + tee_local $6 + get_local $6 + f64.mul + tee_local $7 + get_local $7 + f64.mul + set_local $0 + get_local $6 + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + tee_local $6 + get_local $7 + f64.const 0.6666666666666735 + get_local $0 + f64.const 0.2857142874366239 + get_local $0 + f64.const 0.1818357216161805 + get_local $0 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $0 + f64.const 0.3999999999940942 + get_local $0 + f64.const 0.22222198432149784 + get_local $0 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + f64.mul + get_local $3 + f64.convert_s/i32 + tee_local $0 + f64.const 1.9082149292705877e-10 + f64.mul + f64.add + get_local $6 + f64.sub + get_local $5 + f64.add + get_local $0 + f64.const 0.6931471803691238 + f64.mul + f64.add ) - (func $~lib/math/NativeMath.acosh (; 56 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 56 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) - (if - (i64.lt_u - (tee_local $1 - (i64.and - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (i64.const 1024) - ) - (return - (call $~lib/math/NativeMath.log1p - (f64.add - (tee_local $0 - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (f64.sqrt - (f64.add - (f64.mul - (get_local $0) - (get_local $0) - ) - (f64.mul - (f64.const 2) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (if - (i64.lt_u - (get_local $1) - (i64.const 1049) - ) - (return - (call $~lib/math/NativeMath.log - (f64.sub - (f64.mul - (f64.const 2) - (get_local $0) - ) - (f64.div - (f64.const 1) - (f64.add - (get_local $0) - (f64.sqrt - (f64.sub - (f64.mul - (get_local $0) - (get_local $0) - ) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.add - (call $~lib/math/NativeMath.log - (get_local $0) - ) - (f64.const 0.6931471805599453) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + tee_local $1 + i64.const 1024 + i64.lt_u + if + get_local $0 + f64.const 1 + f64.sub + tee_local $0 + get_local $0 + get_local $0 + f64.mul + f64.const 2 + get_local $0 + f64.mul + f64.add + f64.sqrt + f64.add + call $~lib/math/NativeMath.log1p + return + end + get_local $1 + i64.const 1049 + i64.lt_u + if + f64.const 2 + get_local $0 + f64.mul + f64.const 1 + get_local $0 + get_local $0 + get_local $0 + f64.mul + f64.const 1 + f64.sub + f64.sqrt + f64.add + f64.div + f64.sub + call $~lib/math/NativeMath.log + return + end + get_local $0 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add ) - (func $std/math/test_acosh (; 57 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_acosh (; 57 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.acosh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/acosh - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.acosh + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/acosh + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.log1p (; 58 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 58 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -1932,3077 +1351,2174 @@ (local $5 i32) (local $6 f32) (local $7 f32) - (set_local $2 - (i32.const 1) - ) - (if - (i32.eqz - (tee_local $5 - (i32.lt_u - (tee_local $3 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 1054086096) - ) - ) - ) - (set_local $5 - (i32.shr_u - (get_local $3) - (i32.const 31) - ) - ) - ) - (if - (get_local $5) - (block - (if - (i32.ge_u - (get_local $3) - (i32.const -1082130432) - ) - (block - (if - (f32.eq - (get_local $0) - (f32.const -1) - ) - (return - (f32.div - (get_local $0) - (f32.const 0) - ) - ) - ) - (return - (f32.div - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.const 0) - ) - ) - ) - ) - (if - (i32.lt_u - (i32.shl - (get_local $3) - (i32.const 1) - ) - (i32.const 1728053248) - ) - (return - (get_local $0) - ) - ) - (if - (i32.le_u - (get_local $3) - (i32.const -1097468391) - ) - (block - (set_local $2 - (i32.const 0) - ) - (set_local $1 - (get_local $0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $3) - (i32.const 2139095040) - ) - (return - (get_local $0) - ) - ) - ) - (if - (get_local $2) - (block - (set_local $4 - (if (result f32) - (i32.lt_s - (tee_local $2 - (i32.sub - (i32.shr_u - (tee_local $5 - (i32.add - (i32.reinterpret/f32 - (tee_local $1 - (f32.add - (f32.const 1) - (get_local $0) - ) - ) - ) - (i32.const 4913933) - ) - ) - (i32.const 23) - ) - (i32.const 127) - ) - ) - (i32.const 25) - ) - (f32.div - (tee_local $4 - (if (result f32) - (i32.ge_s - (get_local $2) - (i32.const 2) - ) - (f32.sub - (f32.const 1) - (f32.sub - (get_local $1) - (get_local $0) - ) - ) - (f32.sub - (get_local $0) - (f32.sub - (get_local $1) - (f32.const 1) - ) - ) - ) - ) - (get_local $1) - ) - (f32.const 0) - ) - ) - (set_local $1 - (f32.sub - (f32.reinterpret/i32 - (i32.add - (i32.and - (get_local $5) - (i32.const 8388607) - ) - (i32.const 1060439283) - ) - ) - (f32.const 1) - ) - ) - ) - ) - (set_local $0 - (f32.mul - (tee_local $7 - (f32.mul - (tee_local $6 - (f32.div - (get_local $1) - (f32.add - (f32.const 2) - (get_local $1) - ) - ) - ) - (get_local $6) - ) - ) - (get_local $7) - ) - ) - (f32.add - (f32.add - (f32.sub - (f32.add - (f32.mul - (get_local $6) - (f32.add - (tee_local $6 - (f32.mul - (f32.mul - (f32.const 0.5) - (get_local $1) - ) - (get_local $1) - ) - ) - (f32.add - (f32.mul - (get_local $7) - (f32.add - (f32.const 0.6666666269302368) - (f32.mul - (get_local $0) - (f32.const 0.2849878668785095) - ) - ) - ) - (f32.mul - (get_local $0) - (f32.add - (f32.const 0.40000972151756287) - (f32.mul - (get_local $0) - (f32.const 0.24279078841209412) - ) - ) - ) - ) - ) - ) - (f32.add - (f32.mul - (tee_local $0 - (f32.convert_s/i32 - (get_local $2) - ) - ) - (f32.const 9.05800061445916e-06) - ) - (get_local $4) - ) - ) - (get_local $6) - ) - (get_local $1) - ) - (f32.mul - (get_local $0) - (f32.const 0.6931381225585938) - ) - ) + i32.const 1 + set_local $2 + get_local $0 + i32.reinterpret/f32 + tee_local $3 + i32.const 1054086096 + i32.lt_u + tee_local $5 + i32.eqz + if + get_local $3 + i32.const 31 + i32.shr_u + set_local $5 + end + get_local $5 + if + get_local $3 + i32.const -1082130432 + i32.ge_u + if + get_local $0 + f32.const -1 + f32.eq + if + get_local $0 + f32.const 0 + f32.div + return + end + get_local $0 + get_local $0 + f32.sub + f32.const 0 + f32.div + return + end + get_local $3 + i32.const 1 + i32.shl + i32.const 1728053248 + i32.lt_u + if + get_local $0 + return + end + get_local $3 + i32.const -1097468391 + i32.le_u + if + i32.const 0 + set_local $2 + get_local $0 + set_local $1 + end + else + get_local $3 + i32.const 2139095040 + i32.ge_u + if + get_local $0 + return + end + end + get_local $2 + if + f32.const 1 + get_local $0 + f32.add + tee_local $1 + i32.reinterpret/f32 + i32.const 4913933 + i32.add + tee_local $5 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + tee_local $2 + i32.const 25 + i32.lt_s + if (result f32) + get_local $2 + i32.const 2 + i32.ge_s + if (result f32) + f32.const 1 + get_local $1 + get_local $0 + f32.sub + f32.sub + else + get_local $0 + get_local $1 + f32.const 1 + f32.sub + f32.sub + end + tee_local $4 + get_local $1 + f32.div + else + f32.const 0 + end + set_local $4 + get_local $5 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + f32.reinterpret/i32 + f32.const 1 + f32.sub + set_local $1 + end + get_local $1 + f32.const 2 + get_local $1 + f32.add + f32.div + tee_local $6 + get_local $6 + f32.mul + tee_local $7 + get_local $7 + f32.mul + set_local $0 + get_local $6 + f32.const 0.5 + get_local $1 + f32.mul + get_local $1 + f32.mul + tee_local $6 + get_local $7 + f32.const 0.6666666269302368 + get_local $0 + f32.const 0.2849878668785095 + f32.mul + f32.add + f32.mul + get_local $0 + f32.const 0.40000972151756287 + get_local $0 + f32.const 0.24279078841209412 + f32.mul + f32.add + f32.mul + f32.add + f32.add + f32.mul + get_local $2 + f32.convert_s/i32 + tee_local $0 + f32.const 9.05800061445916e-06 + f32.mul + get_local $4 + f32.add + f32.add + get_local $6 + f32.sub + get_local $1 + f32.add + get_local $0 + f32.const 0.6931381225585938 + f32.mul + f32.add ) - (func $~lib/math/NativeMathf.log (; 59 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 59 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) (local $4 f32) (local $5 i32) (local $6 f32) - (if - (i32.eqz - (tee_local $5 - (i32.lt_u - (tee_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 8388608) - ) - ) - ) - (set_local $5 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - ) - (if - (get_local $5) - (block - (if - (i32.eqz - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (return - (f32.div - (f32.const -1) - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f32.div - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.const 0) - ) - ) - ) - (set_local $3 - (i32.const -25) - ) - (set_local $1 - (i32.reinterpret/f32 - (f32.mul - (get_local $0) - (f32.const 33554432) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2139095040) - ) - (return - (get_local $0) - ) - (if - (i32.eq - (get_local $1) - (i32.const 1065353216) - ) - (return - (f32.const 0) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 4913933) - ) - ) - (i32.const 23) - ) - (i32.const 127) - ) - ) - ) - (set_local $2 - (f32.mul - (tee_local $6 - (f32.mul - (tee_local $4 - (f32.div - (tee_local $0 - (f32.sub - (f32.reinterpret/i32 - (i32.add - (i32.and - (get_local $1) - (i32.const 8388607) - ) - (i32.const 1060439283) - ) - ) - (f32.const 1) - ) - ) - (f32.add - (f32.const 2) - (get_local $0) - ) - ) - ) - (get_local $4) - ) - ) - (get_local $6) - ) - ) - (f32.add - (f32.add - (f32.sub - (f32.add - (f32.mul - (get_local $4) - (f32.add - (tee_local $4 - (f32.mul - (f32.mul - (f32.const 0.5) - (get_local $0) - ) - (get_local $0) - ) - ) - (f32.add - (f32.mul - (get_local $6) - (f32.add - (f32.const 0.6666666269302368) - (f32.mul - (get_local $2) - (f32.const 0.2849878668785095) - ) - ) - ) - (f32.mul - (get_local $2) - (f32.add - (f32.const 0.40000972151756287) - (f32.mul - (get_local $2) - (f32.const 0.24279078841209412) - ) - ) - ) - ) - ) - ) - (f32.mul - (tee_local $2 - (f32.convert_s/i32 - (get_local $3) - ) - ) - (f32.const 9.05800061445916e-06) - ) - ) - (get_local $4) - ) - (get_local $0) - ) - (f32.mul - (get_local $2) - (f32.const 0.6931381225585938) - ) - ) + get_local $0 + i32.reinterpret/f32 + tee_local $1 + i32.const 8388608 + i32.lt_u + tee_local $5 + i32.eqz + if + get_local $1 + i32.const 31 + i32.shr_u + set_local $5 + end + get_local $5 + if + get_local $1 + i32.const 1 + i32.shl + i32.eqz + if + f32.const -1 + get_local $0 + get_local $0 + f32.mul + f32.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f32.sub + f32.const 0 + f32.div + return + end + i32.const -25 + set_local $3 + get_local $0 + f32.const 33554432 + f32.mul + i32.reinterpret/f32 + set_local $1 + else + get_local $1 + i32.const 2139095040 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1065353216 + i32.eq + if + f32.const 0 + return + end + end + end + get_local $3 + get_local $1 + i32.const 4913933 + i32.add + tee_local $1 + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + i32.add + set_local $3 + get_local $1 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + f32.reinterpret/i32 + f32.const 1 + f32.sub + tee_local $0 + f32.const 2 + get_local $0 + f32.add + f32.div + tee_local $4 + get_local $4 + f32.mul + tee_local $6 + get_local $6 + f32.mul + set_local $2 + get_local $4 + f32.const 0.5 + get_local $0 + f32.mul + get_local $0 + f32.mul + tee_local $4 + get_local $6 + f32.const 0.6666666269302368 + get_local $2 + f32.const 0.2849878668785095 + f32.mul + f32.add + f32.mul + get_local $2 + f32.const 0.40000972151756287 + get_local $2 + f32.const 0.24279078841209412 + f32.mul + f32.add + f32.mul + f32.add + f32.add + f32.mul + get_local $3 + f32.convert_s/i32 + tee_local $2 + f32.const 9.05800061445916e-06 + f32.mul + f32.add + get_local $4 + f32.sub + get_local $0 + f32.add + get_local $2 + f32.const 0.6931381225585938 + f32.mul + f32.add ) - (func $~lib/math/NativeMathf.acosh (; 60 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acosh (; 60 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) - (if - (i32.lt_u - (tee_local $1 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - (i32.const 1073741824) - ) - (return - (call $~lib/math/NativeMathf.log1p - (f32.add - (tee_local $0 - (f32.sub - (get_local $0) - (f32.const 1) - ) - ) - (f32.sqrt - (f32.mul - (get_local $0) - (f32.add - (get_local $0) - (f32.const 2) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1166016512) - ) - (return - (call $~lib/math/NativeMathf.log - (f32.sub - (f32.mul - (f32.const 2) - (get_local $0) - ) - (f32.div - (f32.const 1) - (f32.add - (get_local $0) - (f32.sqrt - (f32.sub - (f32.mul - (get_local $0) - (get_local $0) - ) - (f32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f32.add - (call $~lib/math/NativeMathf.log - (get_local $0) - ) - (f32.const 0.6931471824645996) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + tee_local $1 + i32.const 1073741824 + i32.lt_u + if + get_local $0 + f32.const 1 + f32.sub + tee_local $0 + get_local $0 + get_local $0 + f32.const 2 + f32.add + f32.mul + f32.sqrt + f32.add + call $~lib/math/NativeMathf.log1p + return + end + get_local $1 + i32.const 1166016512 + i32.lt_u + if + f32.const 2 + get_local $0 + f32.mul + f32.const 1 + get_local $0 + get_local $0 + get_local $0 + f32.mul + f32.const 1 + f32.sub + f32.sqrt + f32.add + f32.div + f32.sub + call $~lib/math/NativeMathf.log + return + end + get_local $0 + call $~lib/math/NativeMathf.log + f32.const 0.6931471824645996 + f32.add ) - (func $std/math/test_acoshf (; 61 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.acosh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_acoshf (; 61 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.acosh + get_local $1 + get_local $2 + call $std/math/check ) - (func $~lib/math/NativeMath.asin (; 62 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 62 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) (local $4 f64) - (if - (i32.ge_u - (tee_local $2 - (i32.and - (tee_local $3 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 1072693248) - ) - (block - (if - (i32.eqz - (i32.or - (i32.sub - (get_local $2) - (i32.const 1072693248) - ) - (i32.wrap/i64 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - ) - ) - (return - (f64.add - (f64.mul - (get_local $0) - (f64.const 1.5707963267948966) - ) - (f64.const 7.52316384526264e-37) - ) - ) - ) - (return - (f64.div - (f64.const 0) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1071644672) - ) - (block - (if - (tee_local $3 - (i32.lt_u - (get_local $2) - (i32.const 1045430272) - ) - ) - (set_local $3 - (i32.ge_u - (get_local $2) - (i32.const 1048576) - ) - ) - ) - (if - (get_local $3) - (return - (get_local $0) - ) - ) - (set_local $1 - (call $~lib/math/R - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (return - (f64.add - (get_local $0) - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (set_local $0 - (f64.sqrt - (tee_local $1 - (f64.sub - (f64.const 0.5) - (f64.mul - (f64.abs - (get_local $0) - ) - (f64.const 0.5) - ) - ) - ) - ) - ) - (set_local $4 - (call $~lib/math/R - (get_local $1) - ) - ) - (set_local $0 - (if (result f64) - (i32.ge_u - (get_local $2) - (i32.const 1072640819) - ) - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (f64.mul - (f64.const 2) - (f64.add - (get_local $0) - (f64.mul - (get_local $0) - (get_local $4) - ) - ) - ) - (f64.const 6.123233995736766e-17) - ) - ) - (f64.sub - (f64.const 0.7853981633974483) - (f64.sub - (f64.sub - (f64.mul - (f64.mul - (f64.const 2) - (get_local $0) - ) - (get_local $4) - ) - (f64.sub - (f64.const 6.123233995736766e-17) - (f64.mul - (f64.const 2) - (f64.div - (f64.sub - (get_local $1) - (f64.mul - (tee_local $1 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $1) - ) - ) - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (f64.sub - (f64.const 0.7853981633974483) - (f64.mul - (f64.const 2) - (get_local $1) - ) - ) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $3) - (i32.const 31) - ) - (return - (f64.neg - (get_local $0) - ) - ) - ) - (get_local $0) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $3 + i32.const 2147483647 + i32.and + tee_local $2 + i32.const 1072693248 + i32.ge_u + if + get_local $2 + i32.const 1072693248 + i32.sub + get_local $0 + i64.reinterpret/f64 + i32.wrap/i64 + i32.or + i32.eqz + if + get_local $0 + f64.const 1.5707963267948966 + f64.mul + f64.const 7.52316384526264e-37 + f64.add + return + end + f64.const 0 + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $2 + i32.const 1071644672 + i32.lt_u + if + get_local $2 + i32.const 1045430272 + i32.lt_u + tee_local $3 + if + get_local $2 + i32.const 1048576 + i32.ge_u + set_local $3 + end + get_local $3 + if + get_local $0 + return + end + get_local $0 + get_local $0 + f64.mul + call $~lib/math/R + set_local $1 + get_local $0 + get_local $0 + get_local $1 + f64.mul + f64.add + return + end + f64.const 0.5 + get_local $0 + f64.abs + f64.const 0.5 + f64.mul + f64.sub + tee_local $1 + f64.sqrt + set_local $0 + get_local $1 + call $~lib/math/R + set_local $4 + get_local $2 + i32.const 1072640819 + i32.ge_u + if (result f64) + f64.const 1.5707963267948966 + f64.const 2 + get_local $0 + get_local $0 + get_local $4 + f64.mul + f64.add + f64.mul + f64.const 6.123233995736766e-17 + f64.sub + f64.sub + else + f64.const 0.7853981633974483 + f64.const 2 + get_local $0 + f64.mul + get_local $4 + f64.mul + f64.const 6.123233995736766e-17 + f64.const 2 + get_local $1 + get_local $0 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $1 + get_local $1 + f64.mul + f64.sub + get_local $0 + get_local $1 + f64.add + f64.div + f64.mul + f64.sub + f64.sub + f64.const 0.7853981633974483 + f64.const 2 + get_local $1 + f64.mul + f64.sub + f64.sub + f64.sub + end + set_local $0 + get_local $3 + i32.const 31 + i32.shr_u + if + get_local $0 + f64.neg + return + end + get_local $0 ) - (func $std/math/test_asin (; 63 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_asin (; 63 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.asin - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/asin - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.asin + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/asin + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.asin (; 64 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 64 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) (local $4 f64) (local $5 f64) - (if - (i32.ge_u - (tee_local $1 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - (i32.const 1065353216) - ) - (block - (if - (i32.eq - (get_local $1) - (i32.const 1065353216) - ) - (return - (f32.add - (f32.mul - (get_local $0) - (f32.const 1.5707963705062866) - ) - (f32.const 7.52316384526264e-37) - ) - ) - ) - (return - (f32.div - (f32.const 0) - (f32.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1056964608) - ) - (block - (if - (tee_local $3 - (i32.lt_u - (get_local $1) - (i32.const 964689920) - ) - ) - (set_local $3 - (i32.ge_u - (get_local $1) - (i32.const 8388608) - ) - ) - ) - (if - (get_local $3) - (return - (get_local $0) - ) - ) - (set_local $2 - (call $~lib/math/Rf - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (return - (f32.add - (get_local $0) - (f32.mul - (get_local $0) - (get_local $2) - ) - ) - ) - ) - ) - (set_local $4 - (f64.sqrt - (f64.promote/f32 - (tee_local $2 - (f32.sub - (f32.const 0.5) - (f32.mul - (f32.abs - (get_local $0) - ) - (f32.const 0.5) - ) - ) - ) - ) - ) - ) - (set_local $5 - (f64.promote/f32 - (call $~lib/math/Rf - (get_local $2) - ) - ) - ) - (f32.copysign - (f32.demote/f64 - (f64.sub - (f64.const 1.5707963705062866) - (f64.mul - (f64.const 2) - (f64.add - (get_local $4) - (f64.mul - (get_local $4) - (get_local $5) - ) - ) - ) - ) - ) - (get_local $0) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + tee_local $1 + i32.const 1065353216 + i32.ge_u + if + get_local $1 + i32.const 1065353216 + i32.eq + if + get_local $0 + f32.const 1.5707963705062866 + f32.mul + f32.const 7.52316384526264e-37 + f32.add + return + end + f32.const 0 + get_local $0 + get_local $0 + f32.sub + f32.div + return + end + get_local $1 + i32.const 1056964608 + i32.lt_u + if + get_local $1 + i32.const 964689920 + i32.lt_u + tee_local $3 + if + get_local $1 + i32.const 8388608 + i32.ge_u + set_local $3 + end + get_local $3 + if + get_local $0 + return + end + get_local $0 + get_local $0 + f32.mul + call $~lib/math/Rf + set_local $2 + get_local $0 + get_local $0 + get_local $2 + f32.mul + f32.add + return + end + f32.const 0.5 + get_local $0 + f32.abs + f32.const 0.5 + f32.mul + f32.sub + tee_local $2 + f64.promote/f32 + f64.sqrt + set_local $4 + get_local $2 + call $~lib/math/Rf + f64.promote/f32 + set_local $5 + f64.const 1.5707963705062866 + f64.const 2 + get_local $4 + get_local $4 + get_local $5 + f64.mul + f64.add + f64.mul + f64.sub + f32.demote/f64 + get_local $0 + f32.copysign ) - (func $std/math/test_asinf (; 65 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.asin - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_asinf (; 65 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.asin + get_local $1 + get_local $2 + call $std/math/check ) - (func $~lib/math/NativeMath.asinh (; 66 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 66 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) - (set_local $1 - (f64.reinterpret/i64 - (i64.and - (tee_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 9223372036854775807) - ) - ) - ) - (if - (i64.ge_u - (tee_local $2 - (i64.and - (i64.shr_u - (get_local $2) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (i64.const 1049) - ) - (set_local $1 - (f64.add - (call $~lib/math/NativeMath.log - (get_local $1) - ) - (f64.const 0.6931471805599453) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.const 1024) - ) - (set_local $1 - (call $~lib/math/NativeMath.log - (f64.add - (f64.mul - (f64.const 2) - (get_local $1) - ) - (f64.div - (f64.const 1) - (f64.add - (f64.sqrt - (f64.add - (f64.mul - (get_local $1) - (get_local $1) - ) - (f64.const 1) - ) - ) - (get_local $1) - ) - ) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.const 997) - ) - (set_local $1 - (call $~lib/math/NativeMath.log1p - (f64.add - (get_local $1) - (f64.div - (tee_local $1 - (f64.mul - (get_local $1) - (get_local $1) - ) - ) - (f64.add - (f64.sqrt - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.copysign - (get_local $1) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $2 + i64.const 9223372036854775807 + i64.and + f64.reinterpret/i64 + set_local $1 + get_local $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + tee_local $2 + i64.const 1049 + i64.ge_u + if + get_local $1 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add + set_local $1 + else + get_local $2 + i64.const 1024 + i64.ge_u + if + f64.const 2 + get_local $1 + f64.mul + f64.const 1 + get_local $1 + get_local $1 + f64.mul + f64.const 1 + f64.add + f64.sqrt + get_local $1 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log + set_local $1 + else + get_local $2 + i64.const 997 + i64.ge_u + if + get_local $1 + get_local $1 + get_local $1 + f64.mul + tee_local $1 + get_local $1 + f64.const 1 + f64.add + f64.sqrt + f64.const 1 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log1p + set_local $1 + end + end + end + get_local $1 + get_local $0 + f64.copysign ) - (func $std/math/test_asinh (; 67 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_asinh (; 67 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.asinh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/asinh - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.asinh + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/asinh + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.asinh (; 68 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asinh (; 68 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) - (set_local $1 - (f32.reinterpret/i32 - (tee_local $2 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1166016512) - ) - (set_local $1 - (f32.add - (call $~lib/math/NativeMathf.log - (get_local $1) - ) - (f32.const 0.6931471824645996) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1073741824) - ) - (set_local $1 - (call $~lib/math/NativeMathf.log - (f32.add - (f32.mul - (f32.const 2) - (get_local $1) - ) - (f32.div - (f32.const 1) - (f32.add - (f32.sqrt - (f32.add - (f32.mul - (get_local $1) - (get_local $1) - ) - (f32.const 1) - ) - ) - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 964689920) - ) - (set_local $1 - (call $~lib/math/NativeMathf.log1p - (f32.add - (get_local $1) - (f32.div - (tee_local $1 - (f32.mul - (get_local $1) - (get_local $1) - ) - ) - (f32.add - (f32.sqrt - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - (f32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f32.copysign - (get_local $1) - (get_local $0) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + tee_local $2 + f32.reinterpret/i32 + set_local $1 + get_local $2 + i32.const 1166016512 + i32.ge_u + if + get_local $1 + call $~lib/math/NativeMathf.log + f32.const 0.6931471824645996 + f32.add + set_local $1 + else + get_local $2 + i32.const 1073741824 + i32.ge_u + if + f32.const 2 + get_local $1 + f32.mul + f32.const 1 + get_local $1 + get_local $1 + f32.mul + f32.const 1 + f32.add + f32.sqrt + get_local $1 + f32.add + f32.div + f32.add + call $~lib/math/NativeMathf.log + set_local $1 + else + get_local $2 + i32.const 964689920 + i32.ge_u + if + get_local $1 + get_local $1 + get_local $1 + f32.mul + tee_local $1 + get_local $1 + f32.const 1 + f32.add + f32.sqrt + f32.const 1 + f32.add + f32.div + f32.add + call $~lib/math/NativeMathf.log1p + set_local $1 + end + end + end + get_local $1 + get_local $0 + f32.copysign ) - (func $std/math/test_asinhf (; 69 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.asinh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_asinhf (; 69 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.asinh + get_local $1 + get_local $2 + call $std/math/check ) - (func $~lib/math/NativeMath.atan (; 70 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 70 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) (local $4 f64) - (set_local $4 - (get_local $0) - ) - (if - (i32.ge_u - (tee_local $2 - (i32.and - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 1141899264) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.copysign - (f64.const 1.5707963267948966) - (get_local $4) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1071382528) - ) - (block - (if - (i32.lt_u - (get_local $2) - (i32.const 1044381696) - ) - (return - (get_local $0) - ) - ) - (set_local $2 - (i32.const -1) - ) - ) - (block - (set_local $0 - (f64.abs - (get_local $0) - ) - ) - (set_local $0 - (if (result f64) - (i32.lt_u - (get_local $2) - (i32.const 1072889856) - ) - (if (result f64) - (i32.lt_u - (get_local $2) - (i32.const 1072037888) - ) - (block (result f64) - (set_local $2 - (i32.const 0) - ) - (f64.div - (f64.sub - (f64.mul - (f64.const 2) - (get_local $0) - ) - (f64.const 1) - ) - (f64.add - (f64.const 2) - (get_local $0) - ) - ) - ) - (block (result f64) - (set_local $2 - (i32.const 1) - ) - (f64.div - (f64.sub - (get_local $0) - (f64.const 1) - ) - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - ) - ) - (if (result f64) - (i32.lt_u - (get_local $2) - (i32.const 1073971200) - ) - (block (result f64) - (set_local $2 - (i32.const 2) - ) - (f64.div - (f64.sub - (get_local $0) - (f64.const 1.5) - ) - (f64.add - (f64.const 1) - (f64.mul - (f64.const 1.5) - (get_local $0) - ) - ) - ) - ) - (block (result f64) - (set_local $2 - (i32.const 3) - ) - (f64.div - (f64.const -1) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (set_local $1 - (f64.mul - (tee_local $3 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - (get_local $3) - ) - ) - (set_local $1 - (f64.mul - (get_local $0) - (f64.add - (f64.mul - (get_local $3) - (f64.add - (f64.const 0.3333333333333293) - (f64.mul - (get_local $1) - (f64.add - (f64.const 0.14285714272503466) - (f64.mul - (get_local $1) - (f64.add - (f64.const 0.09090887133436507) - (f64.mul - (get_local $1) - (f64.add - (f64.const 0.06661073137387531) - (f64.mul - (get_local $1) - (f64.add - (f64.const 0.049768779946159324) - (f64.mul - (get_local $1) - (f64.const 0.016285820115365782) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $1) - (f64.add - (f64.const -0.19999999999876483) - (f64.mul - (get_local $1) - (f64.add - (f64.const -0.11111110405462356) - (f64.mul - (get_local $1) - (f64.add - (f64.const -0.0769187620504483) - (f64.mul - (get_local $1) - (f64.add - (f64.const -0.058335701337905735) - (f64.mul - (get_local $1) - (f64.const -0.036531572744216916) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (return - (f64.sub - (get_local $0) - (get_local $1) - ) - ) - ) - (block $break|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (if - (get_local $2) - (block - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $tablify|0 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $case4|0) - ) - ) - (set_local $3 - (f64.sub - (f64.const 0.4636476090008061) - (f64.sub - (f64.sub - (get_local $1) - (f64.const 2.2698777452961687e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (set_local $3 - (f64.sub - (f64.const 0.7853981633974483) - (f64.sub - (f64.sub - (get_local $1) - (f64.const 3.061616997868383e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (set_local $3 - (f64.sub - (f64.const 0.982793723247329) - (f64.sub - (f64.sub - (get_local $1) - (f64.const 1.3903311031230998e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (set_local $3 - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (f64.sub - (get_local $1) - (f64.const 6.123233995736766e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (unreachable) - ) - (f64.copysign - (get_local $3) - (get_local $4) - ) + get_local $0 + set_local $4 + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 2147483647 + i32.and + tee_local $2 + i32.const 1141899264 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + f64.const 1.5707963267948966 + get_local $4 + f64.copysign + return + end + get_local $2 + i32.const 1071382528 + i32.lt_u + if + get_local $2 + i32.const 1044381696 + i32.lt_u + if + get_local $0 + return + end + i32.const -1 + set_local $2 + else + get_local $0 + f64.abs + set_local $0 + get_local $2 + i32.const 1072889856 + i32.lt_u + if (result f64) + get_local $2 + i32.const 1072037888 + i32.lt_u + if (result f64) + i32.const 0 + set_local $2 + f64.const 2 + get_local $0 + f64.mul + f64.const 1 + f64.sub + f64.const 2 + get_local $0 + f64.add + f64.div + else + i32.const 1 + set_local $2 + get_local $0 + f64.const 1 + f64.sub + get_local $0 + f64.const 1 + f64.add + f64.div + end + else + get_local $2 + i32.const 1073971200 + i32.lt_u + if (result f64) + i32.const 2 + set_local $2 + get_local $0 + f64.const 1.5 + f64.sub + f64.const 1 + f64.const 1.5 + get_local $0 + f64.mul + f64.add + f64.div + else + i32.const 3 + set_local $2 + f64.const -1 + get_local $0 + f64.div + end + end + set_local $0 + end + get_local $0 + get_local $0 + f64.mul + tee_local $3 + get_local $3 + f64.mul + set_local $1 + get_local $0 + get_local $3 + f64.const 0.3333333333333293 + get_local $1 + f64.const 0.14285714272503466 + get_local $1 + f64.const 0.09090887133436507 + get_local $1 + f64.const 0.06661073137387531 + get_local $1 + f64.const 0.049768779946159324 + get_local $1 + f64.const 0.016285820115365782 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $1 + f64.const -0.19999999999876483 + get_local $1 + f64.const -0.11111110405462356 + get_local $1 + f64.const -0.0769187620504483 + get_local $1 + f64.const -0.058335701337905735 + get_local $1 + f64.const -0.036531572744216916 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $1 + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $0 + get_local $1 + f64.sub + return + end + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + get_local $2 + if + block $tablify|0 + get_local $2 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $tablify|0 + end + br $case4|0 + end + f64.const 0.4636476090008061 + get_local $1 + f64.const 2.2698777452961687e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + end + f64.const 0.7853981633974483 + get_local $1 + f64.const 3.061616997868383e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + end + f64.const 0.982793723247329 + get_local $1 + f64.const 1.3903311031230998e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + end + f64.const 1.5707963267948966 + get_local $1 + f64.const 6.123233995736766e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + end + unreachable + end + get_local $3 + get_local $4 + f64.copysign ) - (func $std/math/test_atan (; 71 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_atan (; 71 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.atan - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/atan - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.atan + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/atan + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.atan (; 72 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 72 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) (local $4 f32) - (set_local $4 - (get_local $0) - ) - (if - (i32.ge_u - (tee_local $1 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - (i32.const 1283457024) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (return - (f32.copysign - (f32.const 1.570796251296997) - (get_local $4) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1054867456) - ) - (block - (if - (i32.lt_u - (get_local $1) - (i32.const 964689920) - ) - (return - (get_local $0) - ) - ) - (set_local $1 - (i32.const -1) - ) - ) - (block - (set_local $0 - (f32.abs - (get_local $0) - ) - ) - (set_local $0 - (if (result f32) - (i32.lt_u - (get_local $1) - (i32.const 1066926080) - ) - (if (result f32) - (i32.lt_u - (get_local $1) - (i32.const 1060110336) - ) - (block (result f32) - (set_local $1 - (i32.const 0) - ) - (f32.div - (f32.sub - (f32.mul - (f32.const 2) - (get_local $0) - ) - (f32.const 1) - ) - (f32.add - (f32.const 2) - (get_local $0) - ) - ) - ) - (block (result f32) - (set_local $1 - (i32.const 1) - ) - (f32.div - (f32.sub - (get_local $0) - (f32.const 1) - ) - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - ) - ) - (if (result f32) - (i32.lt_u - (get_local $1) - (i32.const 1075576832) - ) - (block (result f32) - (set_local $1 - (i32.const 2) - ) - (f32.div - (f32.sub - (get_local $0) - (f32.const 1.5) - ) - (f32.add - (f32.const 1) - (f32.mul - (f32.const 1.5) - (get_local $0) - ) - ) - ) - ) - (block (result f32) - (set_local $1 - (i32.const 3) - ) - (f32.div - (f32.const -1) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (set_local $3 - (f32.mul - (tee_local $2 - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - (get_local $2) - ) - ) - (set_local $2 - (f32.mul - (get_local $0) - (f32.add - (f32.mul - (get_local $2) - (f32.add - (f32.const 0.333333283662796) - (f32.mul - (get_local $3) - (f32.add - (f32.const 0.14253635704517365) - (f32.mul - (get_local $3) - (f32.const 0.06168760731816292) - ) - ) - ) - ) - ) - (f32.mul - (get_local $3) - (f32.add - (f32.const -0.19999158382415771) - (f32.mul - (get_local $3) - (f32.const -0.106480173766613) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (return - (f32.sub - (get_local $0) - (get_local $2) - ) - ) - ) - (block $break|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (if - (get_local $1) - (block - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $tablify|0 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - ) - (br $case4|0) - ) - ) - (set_local $2 - (f32.sub - (f32.const 0.46364760398864746) - (f32.sub - (f32.sub - (get_local $2) - (f32.const 5.01215824399992e-09) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (set_local $2 - (f32.sub - (f32.const 0.7853981256484985) - (f32.sub - (f32.sub - (get_local $2) - (f32.const 3.774894707930798e-08) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (set_local $2 - (f32.sub - (f32.const 0.9827936887741089) - (f32.sub - (f32.sub - (get_local $2) - (f32.const 3.447321716976148e-08) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (set_local $2 - (f32.sub - (f32.const 1.570796251296997) - (f32.sub - (f32.sub - (get_local $2) - (f32.const 7.549789415861596e-08) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - (unreachable) - ) - (f32.copysign - (get_local $2) - (get_local $4) - ) + get_local $0 + set_local $4 + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + tee_local $1 + i32.const 1283457024 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + f32.const 1.570796251296997 + get_local $4 + f32.copysign + return + end + get_local $1 + i32.const 1054867456 + i32.lt_u + if + get_local $1 + i32.const 964689920 + i32.lt_u + if + get_local $0 + return + end + i32.const -1 + set_local $1 + else + get_local $0 + f32.abs + set_local $0 + get_local $1 + i32.const 1066926080 + i32.lt_u + if (result f32) + get_local $1 + i32.const 1060110336 + i32.lt_u + if (result f32) + i32.const 0 + set_local $1 + f32.const 2 + get_local $0 + f32.mul + f32.const 1 + f32.sub + f32.const 2 + get_local $0 + f32.add + f32.div + else + i32.const 1 + set_local $1 + get_local $0 + f32.const 1 + f32.sub + get_local $0 + f32.const 1 + f32.add + f32.div + end + else + get_local $1 + i32.const 1075576832 + i32.lt_u + if (result f32) + i32.const 2 + set_local $1 + get_local $0 + f32.const 1.5 + f32.sub + f32.const 1 + f32.const 1.5 + get_local $0 + f32.mul + f32.add + f32.div + else + i32.const 3 + set_local $1 + f32.const -1 + get_local $0 + f32.div + end + end + set_local $0 + end + get_local $0 + get_local $0 + f32.mul + tee_local $2 + get_local $2 + f32.mul + set_local $3 + get_local $0 + get_local $2 + f32.const 0.333333283662796 + get_local $3 + f32.const 0.14253635704517365 + get_local $3 + f32.const 0.06168760731816292 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + get_local $3 + f32.const -0.19999158382415771 + get_local $3 + f32.const -0.106480173766613 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + set_local $2 + get_local $1 + i32.const 0 + i32.lt_s + if + get_local $0 + get_local $2 + f32.sub + return + end + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + get_local $1 + if + block $tablify|0 + get_local $1 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $tablify|0 + end + br $case4|0 + end + f32.const 0.46364760398864746 + get_local $2 + f32.const 5.01215824399992e-09 + f32.sub + get_local $0 + f32.sub + f32.sub + set_local $2 + br $break|0 + end + f32.const 0.7853981256484985 + get_local $2 + f32.const 3.774894707930798e-08 + f32.sub + get_local $0 + f32.sub + f32.sub + set_local $2 + br $break|0 + end + f32.const 0.9827936887741089 + get_local $2 + f32.const 3.447321716976148e-08 + f32.sub + get_local $0 + f32.sub + f32.sub + set_local $2 + br $break|0 + end + f32.const 1.570796251296997 + get_local $2 + f32.const 7.549789415861596e-08 + f32.sub + get_local $0 + f32.sub + f32.sub + set_local $2 + br $break|0 + end + unreachable + end + get_local $2 + get_local $4 + f32.copysign ) - (func $std/math/test_atanf (; 73 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.atan - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_atanf (; 73 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.atan + get_local $1 + get_local $2 + call $std/math/check ) - (func $~lib/math/NativeMath.atanh (; 74 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 74 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 i64) (local $4 f64) - (set_local $2 - (i64.and - (i64.shr_u - (tee_local $3 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $1 - (f64.reinterpret/i64 - (i64.and - (get_local $3) - (i64.const 9223372036854775807) - ) - ) - ) - (if - (i64.lt_u - (get_local $2) - (i64.const 1022) - ) - (if - (i64.ge_u - (get_local $2) - (i64.const 991) - ) - (set_local $1 - (f64.mul - (f64.const 0.5) - (call $~lib/math/NativeMath.log1p - (f64.add - (tee_local $4 - (f64.mul - (f64.const 2) - (get_local $1) - ) - ) - (f64.div - (f64.mul - (get_local $4) - (get_local $1) - ) - (f64.sub - (f64.const 1) - (get_local $1) - ) - ) - ) - ) - ) - ) - ) - (set_local $1 - (f64.mul - (f64.const 0.5) - (call $~lib/math/NativeMath.log1p - (f64.mul - (f64.const 2) - (f64.div - (get_local $1) - (f64.sub - (f64.const 1) - (get_local $1) - ) - ) - ) - ) - ) - ) - ) - (f64.copysign - (get_local $1) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $2 + get_local $3 + i64.const 9223372036854775807 + i64.and + f64.reinterpret/i64 + set_local $1 + get_local $2 + i64.const 1022 + i64.lt_u + if + get_local $2 + i64.const 991 + i64.ge_u + if + f64.const 0.5 + f64.const 2 + get_local $1 + f64.mul + tee_local $4 + get_local $4 + get_local $1 + f64.mul + f64.const 1 + get_local $1 + f64.sub + f64.div + f64.add + call $~lib/math/NativeMath.log1p + f64.mul + set_local $1 + end + else + f64.const 0.5 + f64.const 2 + get_local $1 + f64.const 1 + get_local $1 + f64.sub + f64.div + f64.mul + call $~lib/math/NativeMath.log1p + f64.mul + set_local $1 + end + get_local $1 + get_local $0 + f64.copysign ) - (func $std/math/test_atanh (; 75 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_atanh (; 75 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.atanh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/atanh - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.atanh + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/atanh + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.atanh (; 76 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atanh (; 76 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) - (set_local $1 - (f32.reinterpret/i32 - (tee_local $2 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1056964608) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 796917760) - ) - (set_local $1 - (f32.mul - (f32.const 0.5) - (call $~lib/math/NativeMathf.log1p - (f32.mul - (f32.mul - (f32.const 2) - (get_local $1) - ) - (f32.add - (f32.const 1) - (f32.div - (get_local $1) - (f32.sub - (f32.const 1) - (get_local $1) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $1 - (f32.mul - (f32.const 0.5) - (call $~lib/math/NativeMathf.log1p - (f32.mul - (f32.const 2) - (f32.div - (get_local $1) - (f32.sub - (f32.const 1) - (get_local $1) - ) - ) - ) - ) - ) - ) - ) - (f32.copysign - (get_local $1) - (get_local $0) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + tee_local $2 + f32.reinterpret/i32 + set_local $1 + get_local $2 + i32.const 1056964608 + i32.lt_u + if + get_local $2 + i32.const 796917760 + i32.ge_u + if + f32.const 0.5 + f32.const 2 + get_local $1 + f32.mul + f32.const 1 + get_local $1 + f32.const 1 + get_local $1 + f32.sub + f32.div + f32.add + f32.mul + call $~lib/math/NativeMathf.log1p + f32.mul + set_local $1 + end + else + f32.const 0.5 + f32.const 2 + get_local $1 + f32.const 1 + get_local $1 + f32.sub + f32.div + f32.mul + call $~lib/math/NativeMathf.log1p + f32.mul + set_local $1 + end + get_local $1 + get_local $0 + f32.copysign ) - (func $std/math/test_atanhf (; 77 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.atanh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_atanhf (; 77 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.atanh + get_local $1 + get_local $2 + call $std/math/check ) - (func $~lib/math/NativeMath.atan2 (; 78 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 78 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i64) (local $7 i32) - (block $folding-inner0 - (if - (i32.eqz - (tee_local $2 - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - ) - (set_local $2 - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (if - (get_local $2) - (return - (f64.add - (get_local $1) - (get_local $0) - ) - ) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (tee_local $6 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $2 - (i32.wrap/i64 - (get_local $6) - ) - ) - (set_local $5 - (i32.wrap/i64 - (i64.shr_u - (tee_local $6 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $7 - (i32.wrap/i64 - (get_local $6) - ) - ) - (if - (i32.eqz - (i32.or - (i32.sub - (get_local $4) - (i32.const 1072693248) - ) - (get_local $2) - ) - ) - (return - (call $~lib/math/NativeMath.atan - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 31) - ) - (i32.and - (i32.shr_u - (get_local $4) - (i32.const 30) - ) - (i32.const 2) - ) - ) - ) - (set_local $4 - (i32.and - (get_local $4) - (i32.const 2147483647) - ) - ) - (if - (i32.eqz - (i32.or - (tee_local $5 - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - ) - (get_local $7) - ) - ) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (br_if $case1|0 - (i32.eqz - (get_local $3) - ) - ) - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $tablify|0 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $break|0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.const 3.141592653589793) - ) - ) - (return - (f64.const -3.141592653589793) - ) - ) - ) - (br_if $folding-inner0 - (i32.eqz - (i32.or - (get_local $4) - (get_local $2) - ) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 2146435072) - ) - (if - (i32.eq - (get_local $5) - (i32.const 2146435072) - ) - (block $break|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (if - (get_local $3) - (block - (block $tablify|00 - (br_table $case1|1 $case2|1 $case3|1 $tablify|00 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $break|1) - ) - ) - (return - (f64.const 0.7853981633974483) - ) - ) - (return - (f64.const -0.7853981633974483) - ) - ) - (return - (f64.const 2.356194490192345) - ) - ) - (return - (f64.const -2.356194490192345) - ) - ) - (block $break|2 - (block $case3|2 - (block $case2|2 - (block $case1|2 - (if - (get_local $3) - (block - (block $tablify|01 - (br_table $case1|2 $case2|2 $case3|2 $tablify|01 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $break|2) - ) - ) - (return - (f64.const 0) - ) - ) - (return - (f64.const -0) - ) - ) - (return - (f64.const 3.141592653589793) - ) - ) - (return - (f64.const -3.141592653589793) - ) - ) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.lt_u - (i32.add - (get_local $4) - (i32.const 67108864) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.eq - (get_local $5) - (i32.const 2146435072) - ) - ) - ) - (br_if $folding-inner0 - (get_local $2) - ) - (if - (tee_local $2 - (i32.and - (get_local $3) - (i32.const 2) - ) - ) - (set_local $2 - (i32.lt_u - (i32.add - (get_local $5) - (i32.const 67108864) - ) - (get_local $4) - ) - ) - ) - (set_local $0 - (if (result f64) - (get_local $2) - (f64.const 0) - (call $~lib/math/NativeMath.atan - (f64.abs - (f64.div - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (block $break|3 - (block $case3|3 - (block $case2|3 - (block $case1|3 - (if - (tee_local $2 - (get_local $3) - ) - (block - (block $tablify|02 - (br_table $case1|3 $case2|3 $case3|3 $tablify|02 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $break|3) - ) - ) - (return - (get_local $0) - ) - ) - (return - (f64.neg - (get_local $0) - ) - ) - ) - (return - (f64.sub - (f64.const 3.141592653589793) - (f64.sub - (get_local $0) - (f64.const 1.2246467991473532e-16) - ) - ) - ) - ) - (return - (f64.sub - (f64.sub - (get_local $0) - (f64.const 1.2246467991473532e-16) - ) - (f64.const 3.141592653589793) - ) - ) - ) - (unreachable) - ) - (tee_local $0 - (if (result f64) - (i32.and - (get_local $3) - (i32.const 1) - ) - (f64.const -1.5707963267948966) - (f64.const 1.5707963267948966) - ) - ) + block $folding-inner0 + get_local $1 + call $~lib/builtins/isNaN + tee_local $2 + i32.eqz + if + get_local $0 + call $~lib/builtins/isNaN + set_local $2 + end + get_local $2 + if + get_local $1 + get_local $0 + f64.add + return + end + get_local $1 + i64.reinterpret/f64 + tee_local $6 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $4 + get_local $6 + i32.wrap/i64 + set_local $2 + get_local $0 + i64.reinterpret/f64 + tee_local $6 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $5 + get_local $6 + i32.wrap/i64 + set_local $7 + get_local $4 + i32.const 1072693248 + i32.sub + get_local $2 + i32.or + i32.eqz + if + get_local $0 + call $~lib/math/NativeMath.atan + return + end + get_local $5 + i32.const 31 + i32.shr_u + get_local $4 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + i32.or + set_local $3 + get_local $4 + i32.const 2147483647 + i32.and + set_local $4 + get_local $5 + i32.const 2147483647 + i32.and + tee_local $5 + get_local $7 + i32.or + i32.eqz + if + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + get_local $3 + i32.eqz + br_if $case1|0 + block $tablify|0 + get_local $3 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $tablify|0 + end + br $break|0 + end + get_local $0 + return + end + f64.const 3.141592653589793 + return + end + f64.const -3.141592653589793 + return + end + end + get_local $4 + get_local $2 + i32.or + i32.eqz + br_if $folding-inner0 + get_local $4 + i32.const 2146435072 + i32.eq + if + get_local $5 + i32.const 2146435072 + i32.eq + if + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + get_local $3 + if + block $tablify|00 + get_local $3 + i32.const 1 + i32.sub + br_table $case1|1 $case2|1 $case3|1 $tablify|00 + end + br $break|1 + end + f64.const 0.7853981633974483 + return + end + f64.const -0.7853981633974483 + return + end + f64.const 2.356194490192345 + return + end + f64.const -2.356194490192345 + return + end + else + block $break|2 + block $case3|2 + block $case2|2 + block $case1|2 + get_local $3 + if + block $tablify|01 + get_local $3 + i32.const 1 + i32.sub + br_table $case1|2 $case2|2 $case3|2 $tablify|01 + end + br $break|2 + end + f64.const 0 + return + end + f64.const -0 + return + end + f64.const 3.141592653589793 + return + end + f64.const -3.141592653589793 + return + end + end + end + get_local $4 + i32.const 67108864 + i32.add + get_local $5 + i32.lt_u + tee_local $2 + i32.eqz + if + get_local $5 + i32.const 2146435072 + i32.eq + set_local $2 + end + get_local $2 + br_if $folding-inner0 + get_local $3 + i32.const 2 + i32.and + tee_local $2 + if + get_local $5 + i32.const 67108864 + i32.add + get_local $4 + i32.lt_u + set_local $2 + end + get_local $2 + if (result f64) + f64.const 0 + else + get_local $0 + get_local $1 + f64.div + f64.abs + call $~lib/math/NativeMath.atan + end + set_local $0 + block $break|3 + block $case3|3 + block $case2|3 + block $case1|3 + get_local $3 + tee_local $2 + if + block $tablify|02 + get_local $2 + i32.const 1 + i32.sub + br_table $case1|3 $case2|3 $case3|3 $tablify|02 + end + br $break|3 + end + get_local $0 + return + end + get_local $0 + f64.neg + return + end + f64.const 3.141592653589793 + get_local $0 + f64.const 1.2246467991473532e-16 + f64.sub + f64.sub + return + end + get_local $0 + f64.const 1.2246467991473532e-16 + f64.sub + f64.const 3.141592653589793 + f64.sub + return + end + unreachable + end + get_local $3 + i32.const 1 + i32.and + if (result f64) + f64.const -1.5707963267948966 + else + f64.const 1.5707963267948966 + end + tee_local $0 ) - (func $std/math/test_atan2 (; 79 ;) (; has Stack IR ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_atan2 (; 79 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) - (tee_local $4 - (if (result i32) - (tee_local $5 - (call $std/math/check - (call $~lib/math/NativeMath.atan2 - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/atan2 - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (get_local $3) - ) - (get_local $5) - ) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.atan2 + get_local $2 + get_local $3 + call $std/math/check + tee_local $5 + if (result i32) + get_local $0 + get_local $1 + call $~lib/bindings/Math/atan2 + tee_local $0 + get_local $2 + get_local $3 + call $std/math/check + else + get_local $5 + end + tee_local $4 ) - (func $~lib/math/NativeMathf.atan2 (; 80 ;) (; has Stack IR ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 80 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $folding-inner0 - (if - (i32.eqz - (tee_local $2 - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - ) - (set_local $2 - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (if - (get_local $2) - (return - (f32.add - (get_local $1) - (get_local $0) - ) - ) - ) - (set_local $4 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (if - (i32.eq - (tee_local $5 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (i32.const 1065353216) - ) - (return - (call $~lib/math/NativeMathf.atan - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 31) - ) - (i32.and - (i32.shr_u - (get_local $5) - (i32.const 30) - ) - (i32.const 2) - ) - ) - ) - (set_local $5 - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - ) - (if - (i32.eqz - (tee_local $4 - (i32.and - (get_local $4) - (i32.const 2147483647) - ) - ) - ) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (br_if $case1|0 - (i32.eqz - (get_local $3) - ) - ) - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $tablify|0 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $break|0) - ) - (return - (get_local $0) - ) - ) - (return - (f32.const 3.1415927410125732) - ) - ) - (return - (f32.const -3.1415927410125732) - ) - ) - ) - (br_if $folding-inner0 - (i32.eqz - (get_local $5) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 2139095040) - ) - (if - (i32.eq - (get_local $4) - (i32.const 2139095040) - ) - (block $break|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (if - (get_local $3) - (block - (block $tablify|00 - (br_table $case1|1 $case2|1 $case3|1 $tablify|00 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $break|1) - ) - ) - (return - (f32.const 0.7853981852531433) - ) - ) - (return - (f32.const -0.7853981852531433) - ) - ) - (return - (f32.const 2.356194496154785) - ) - ) - (return - (f32.const -2.356194496154785) - ) - ) - (block $break|2 - (block $case3|2 - (block $case2|2 - (block $case1|2 - (if - (get_local $3) - (block - (block $tablify|01 - (br_table $case1|2 $case2|2 $case3|2 $tablify|01 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $break|2) - ) - ) - (return - (f32.const 0) - ) - ) - (return - (f32.const 0) - ) - ) - (return - (f32.const 3.1415927410125732) - ) - ) - (return - (f32.const -3.1415927410125732) - ) - ) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.lt_u - (i32.add - (get_local $5) - (i32.const 218103808) - ) - (get_local $4) - ) - ) - ) - (set_local $2 - (i32.eq - (get_local $4) - (i32.const 2139095040) - ) - ) - ) - (br_if $folding-inner0 - (get_local $2) - ) - (if - (tee_local $2 - (i32.and - (get_local $3) - (i32.const 2) - ) - ) - (set_local $2 - (i32.lt_u - (i32.add - (get_local $4) - (i32.const 218103808) - ) - (get_local $5) - ) - ) - ) - (set_local $0 - (if (result f32) - (get_local $2) - (f32.const 0) - (call $~lib/math/NativeMathf.atan - (f32.abs - (f32.div - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (block $break|3 - (block $case3|3 - (block $case2|3 - (block $case1|3 - (if - (tee_local $2 - (get_local $3) - ) - (block - (block $tablify|02 - (br_table $case1|3 $case2|3 $case3|3 $tablify|02 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $break|3) - ) - ) - (return - (get_local $0) - ) - ) - (return - (f32.neg - (get_local $0) - ) - ) - ) - (return - (f32.sub - (f32.const 3.1415927410125732) - (f32.sub - (get_local $0) - (f32.const -8.742277657347586e-08) - ) - ) - ) - ) - (return - (f32.sub - (f32.sub - (get_local $0) - (f32.const -8.742277657347586e-08) - ) - (f32.const 3.1415927410125732) - ) - ) - ) - (unreachable) - ) - (tee_local $0 - (if (result f32) - (i32.and - (get_local $3) - (i32.const 1) - ) - (f32.const -1.5707963705062866) - (f32.const 1.5707963705062866) - ) - ) + block $folding-inner0 + get_local $1 + call $~lib/builtins/isNaN + tee_local $2 + i32.eqz + if + get_local $0 + call $~lib/builtins/isNaN + set_local $2 + end + get_local $2 + if + get_local $1 + get_local $0 + f32.add + return + end + get_local $0 + i32.reinterpret/f32 + set_local $4 + get_local $1 + i32.reinterpret/f32 + tee_local $5 + i32.const 1065353216 + i32.eq + if + get_local $0 + call $~lib/math/NativeMathf.atan + return + end + get_local $4 + i32.const 31 + i32.shr_u + get_local $5 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + i32.or + set_local $3 + get_local $5 + i32.const 2147483647 + i32.and + set_local $5 + get_local $4 + i32.const 2147483647 + i32.and + tee_local $4 + i32.eqz + if + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + get_local $3 + i32.eqz + br_if $case1|0 + block $tablify|0 + get_local $3 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $tablify|0 + end + br $break|0 + end + get_local $0 + return + end + f32.const 3.1415927410125732 + return + end + f32.const -3.1415927410125732 + return + end + end + get_local $5 + i32.eqz + br_if $folding-inner0 + get_local $5 + i32.const 2139095040 + i32.eq + if + get_local $4 + i32.const 2139095040 + i32.eq + if + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + get_local $3 + if + block $tablify|00 + get_local $3 + i32.const 1 + i32.sub + br_table $case1|1 $case2|1 $case3|1 $tablify|00 + end + br $break|1 + end + f32.const 0.7853981852531433 + return + end + f32.const -0.7853981852531433 + return + end + f32.const 2.356194496154785 + return + end + f32.const -2.356194496154785 + return + end + else + block $break|2 + block $case3|2 + block $case2|2 + block $case1|2 + get_local $3 + if + block $tablify|01 + get_local $3 + i32.const 1 + i32.sub + br_table $case1|2 $case2|2 $case3|2 $tablify|01 + end + br $break|2 + end + f32.const 0 + return + end + f32.const 0 + return + end + f32.const 3.1415927410125732 + return + end + f32.const -3.1415927410125732 + return + end + end + end + get_local $5 + i32.const 218103808 + i32.add + get_local $4 + i32.lt_u + tee_local $2 + i32.eqz + if + get_local $4 + i32.const 2139095040 + i32.eq + set_local $2 + end + get_local $2 + br_if $folding-inner0 + get_local $3 + i32.const 2 + i32.and + tee_local $2 + if + get_local $4 + i32.const 218103808 + i32.add + get_local $5 + i32.lt_u + set_local $2 + end + get_local $2 + if (result f32) + f32.const 0 + else + get_local $0 + get_local $1 + f32.div + f32.abs + call $~lib/math/NativeMathf.atan + end + set_local $0 + block $break|3 + block $case3|3 + block $case2|3 + block $case1|3 + get_local $3 + tee_local $2 + if + block $tablify|02 + get_local $2 + i32.const 1 + i32.sub + br_table $case1|3 $case2|3 $case3|3 $tablify|02 + end + br $break|3 + end + get_local $0 + return + end + get_local $0 + f32.neg + return + end + f32.const 3.1415927410125732 + get_local $0 + f32.const -8.742277657347586e-08 + f32.sub + f32.sub + return + end + get_local $0 + f32.const -8.742277657347586e-08 + f32.sub + f32.const 3.1415927410125732 + f32.sub + return + end + unreachable + end + get_local $3 + i32.const 1 + i32.and + if (result f32) + f32.const -1.5707963705062866 + else + f32.const 1.5707963705062866 + end + tee_local $0 ) - (func $std/math/test_atan2f (; 81 ;) (; has Stack IR ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.atan2 - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - ) + (func $std/math/test_atan2f (; 81 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.atan2 + get_local $2 + get_local $3 + call $std/math/check ) - (func $~lib/math/NativeMath.cbrt (; 82 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 82 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) (local $4 i64) - (if - (i32.ge_u - (tee_local $3 - (i32.and - (i32.wrap/i64 - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 2146435072) - ) - (return - (f64.add - (get_local $0) - (get_local $0) - ) - ) - ) - (set_local $3 - (if (result i32) - (i32.lt_u - (get_local $3) - (i32.const 1048576) - ) - (block (result i32) - (if - (i32.eqz - (tee_local $3 - (i32.and - (i32.wrap/i64 - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (i64.const 32) - ) - ) - (i32.const 2147483647) - ) - ) - ) - (return - (get_local $0) - ) - ) - (i32.add - (i32.div_u - (get_local $3) - (i32.const 3) - ) - (i32.const 696219795) - ) - ) - (i32.add - (i32.div_u - (get_local $3) - (i32.const 3) - ) - (i32.const 715094163) - ) - ) - ) - (set_local $2 - (f64.mul - (f64.mul - (tee_local $1 - (f64.reinterpret/i64 - (i64.or - (i64.and - (get_local $4) - (i64.const -9223372036854775808) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $3) - ) - (i64.const 32) - ) - ) - ) - ) - (get_local $1) - ) - (f64.div - (get_local $1) - (get_local $0) - ) - ) - ) - (set_local $2 - (f64.mul - (tee_local $1 - (f64.reinterpret/i64 - (i64.and - (i64.add - (i64.reinterpret/f64 - (f64.mul - (get_local $1) - (f64.add - (f64.add - (f64.const 1.87595182427177) - (f64.mul - (get_local $2) - (f64.add - (f64.const -1.8849797954337717) - (f64.mul - (get_local $2) - (f64.const 1.6214297201053545) - ) - ) - ) - ) - (f64.mul - (f64.mul - (f64.mul - (get_local $2) - (get_local $2) - ) - (get_local $2) - ) - (f64.add - (f64.const -0.758397934778766) - (f64.mul - (get_local $2) - (f64.const 0.14599619288661245) - ) - ) - ) - ) - ) - ) - (i64.const 2147483648) - ) - (i64.const -1073741824) - ) - ) - ) - (get_local $1) - ) - ) - (f64.add - (get_local $1) - (f64.mul - (get_local $1) - (f64.div - (f64.sub - (tee_local $2 - (f64.div - (get_local $0) - (get_local $2) - ) - ) - (get_local $1) - ) - (f64.add - (f64.add - (get_local $1) - (get_local $1) - ) - (get_local $2) - ) - ) - ) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 2147483647 + i32.and + tee_local $3 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + get_local $0 + f64.add + return + end + get_local $3 + i32.const 1048576 + i32.lt_u + if (result i32) + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + tee_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 2147483647 + i32.and + tee_local $3 + i32.eqz + if + get_local $0 + return + end + get_local $3 + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add + else + get_local $3 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add + end + set_local $3 + get_local $4 + i64.const -9223372036854775808 + i64.and + get_local $3 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + tee_local $1 + get_local $1 + f64.mul + get_local $1 + get_local $0 + f64.div + f64.mul + set_local $2 + get_local $1 + f64.const 1.87595182427177 + get_local $2 + f64.const -1.8849797954337717 + get_local $2 + f64.const 1.6214297201053545 + f64.mul + f64.add + f64.mul + f64.add + get_local $2 + get_local $2 + f64.mul + get_local $2 + f64.mul + f64.const -0.758397934778766 + get_local $2 + f64.const 0.14599619288661245 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + i64.reinterpret/f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret/i64 + tee_local $1 + get_local $1 + f64.mul + set_local $2 + get_local $1 + get_local $1 + get_local $0 + get_local $2 + f64.div + tee_local $2 + get_local $1 + f64.sub + get_local $1 + get_local $1 + f64.add + get_local $2 + f64.add + f64.div + f64.mul + f64.add ) - (func $std/math/test_cbrt (; 83 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cbrt (; 83 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.cbrt - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/cbrt - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.cbrt + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/cbrt + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.cbrt (; 84 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 84 ;) (type $ff) (param $0 f32) (result f32) (local $1 f64) (local $2 f64) (local $3 i32) (local $4 f64) (local $5 i32) (local $6 f64) - (if - (i32.ge_u - (tee_local $3 - (i32.and - (tee_local $5 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 2147483647) - ) - ) - (i32.const 2139095040) - ) - (return - (f32.add - (get_local $0) - (get_local $0) - ) - ) - ) - (set_local $3 - (if (result i32) - (i32.lt_u - (get_local $3) - (i32.const 8388608) - ) - (block (result i32) - (if - (i32.eqz - (get_local $3) - ) - (return - (get_local $0) - ) - ) - (i32.add - (i32.div_u - (i32.and - (tee_local $5 - (i32.reinterpret/f32 - (f32.mul - (get_local $0) - (f32.const 16777216) - ) - ) - ) - (i32.const 2147483647) - ) - (i32.const 3) - ) - (i32.const 642849266) - ) - ) - (i32.add - (i32.div_u - (get_local $3) - (i32.const 3) - ) - (i32.const 709958130) - ) - ) - ) - (set_local $2 - (f64.mul - (f64.mul - (tee_local $1 - (f64.promote/f32 - (f32.reinterpret/i32 - (i32.or - (i32.and - (get_local $5) - (i32.const -2147483648) - ) - (get_local $3) - ) - ) - ) - ) - (get_local $1) - ) - (get_local $1) - ) - ) - (f32.demote/f64 - (f64.div - (f64.mul - (tee_local $1 - (f64.div - (f64.mul - (get_local $1) - (f64.add - (tee_local $6 - (f64.add - (tee_local $4 - (f64.promote/f32 - (get_local $0) - ) - ) - (get_local $4) - ) - ) - (get_local $2) - ) - ) - (f64.add - (f64.add - (get_local $4) - (get_local $2) - ) - (get_local $2) - ) - ) - ) - (f64.add - (get_local $6) - (tee_local $2 - (f64.mul - (f64.mul - (get_local $1) - (get_local $1) - ) - (get_local $1) - ) - ) - ) - ) - (f64.add - (f64.add - (get_local $4) - (get_local $2) - ) - (get_local $2) - ) - ) - ) + get_local $0 + i32.reinterpret/f32 + tee_local $5 + i32.const 2147483647 + i32.and + tee_local $3 + i32.const 2139095040 + i32.ge_u + if + get_local $0 + get_local $0 + f32.add + return + end + get_local $3 + i32.const 8388608 + i32.lt_u + if (result i32) + get_local $3 + i32.eqz + if + get_local $0 + return + end + get_local $0 + f32.const 16777216 + f32.mul + i32.reinterpret/f32 + tee_local $5 + i32.const 2147483647 + i32.and + i32.const 3 + i32.div_u + i32.const 642849266 + i32.add + else + get_local $3 + i32.const 3 + i32.div_u + i32.const 709958130 + i32.add + end + set_local $3 + get_local $5 + i32.const -2147483648 + i32.and + get_local $3 + i32.or + f32.reinterpret/i32 + f64.promote/f32 + tee_local $1 + get_local $1 + f64.mul + get_local $1 + f64.mul + set_local $2 + get_local $1 + get_local $0 + f64.promote/f32 + tee_local $4 + get_local $4 + f64.add + tee_local $6 + get_local $2 + f64.add + f64.mul + get_local $4 + get_local $2 + f64.add + get_local $2 + f64.add + f64.div + tee_local $1 + get_local $6 + get_local $1 + get_local $1 + f64.mul + get_local $1 + f64.mul + tee_local $2 + f64.add + f64.mul + get_local $4 + get_local $2 + f64.add + get_local $2 + f64.add + f64.div + f32.demote/f64 ) - (func $std/math/test_cbrtf (; 85 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.cbrt - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_cbrtf (; 85 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.cbrt + get_local $1 + get_local $2 + call $std/math/check ) - (func $std/math/test_ceil (; 86 ;) (; has Stack IR ;) (type $FUNCSIG$iddi) (param $0 f64) (param $1 f64) (param $2 i32) (result i32) - (if - (tee_local $2 - (call $std/math/check - (f64.ceil - (get_local $0) - ) - (get_local $1) - (f64.const 0) - ) - ) - (set_local $2 - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/ceil - (get_local $0) - ) - ) - (get_local $1) - (f64.const 0) - ) - ) - ) - (get_local $2) + (func $std/math/test_ceil (; 86 ;) (type $FUNCSIG$iddi) (param $0 f64) (param $1 f64) (param $2 i32) (result i32) + get_local $0 + f64.ceil + get_local $1 + f64.const 0 + call $std/math/check + tee_local $2 + if + get_local $0 + call $~lib/bindings/Math/ceil + tee_local $0 + get_local $1 + f64.const 0 + call $std/math/check + set_local $2 + end + get_local $2 ) - (func $std/math/test_ceilf (; 87 ;) (; has Stack IR ;) (type $FUNCSIG$iffi) (param $0 f32) (param $1 f32) (param $2 i32) (result i32) - (call $std/math/check - (f32.ceil - (get_local $0) - ) - (get_local $1) - (f32.const 0) - ) + (func $std/math/test_ceilf (; 87 ;) (type $FUNCSIG$iffi) (param $0 f32) (param $1 f32) (param $2 i32) (result i32) + get_local $0 + f32.ceil + get_local $1 + f32.const 0 + call $std/math/check ) - (func $~lib/math/NativeMath.expm1 (; 88 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 88 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -5011,1488 +3527,1041 @@ (local $6 i32) (local $7 i64) (local $8 f64) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (tee_local $7 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 63) - ) - ) - ) - (if - (i32.ge_u - (tee_local $4 - (i32.wrap/i64 - (i64.and - (i64.shr_u - (get_local $7) - (i64.const 32) - ) - (i64.const 2147483647) - ) - ) - ) - (i32.const 1078159482) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (if - (get_local $6) - (return - (f64.const -1) - ) - ) - (if - (f64.gt - (get_local $0) - (f64.const 709.782712893384) - ) - (return - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $4) - (i32.const 1071001154) - ) - (block - (set_local $0 - (f64.sub - (tee_local $2 - (f64.sub - (get_local $0) - (f64.mul - (tee_local $1 - (f64.convert_s/i32 - (tee_local $3 - (select - (i32.sub - (i32.const 1) - (i32.shl - (get_local $6) - (i32.const 1) - ) - ) - (i32.trunc_s/f64 - (f64.add - (f64.mul - (f64.const 1.4426950408889634) - (get_local $0) - ) - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - ) - (i32.lt_u - (get_local $4) - (i32.const 1072734898) - ) - ) - ) - ) - ) - (f64.const 0.6931471803691238) - ) - ) - ) - (tee_local $1 - (f64.mul - (get_local $1) - (f64.const 1.9082149292705877e-10) - ) - ) - ) - ) - (set_local $5 - (f64.sub - (f64.sub - (get_local $2) - (get_local $0) - ) - (get_local $1) - ) - ) - ) - (if - (i32.lt_u - (get_local $4) - (i32.const 1016070144) - ) - (return - (get_local $0) - ) - ) - ) - (set_local $1 - (f64.add - (f64.const 1) - (f64.mul - (tee_local $2 - (f64.mul - (get_local $0) - (tee_local $8 - (f64.mul - (f64.const 0.5) - (get_local $0) - ) - ) - ) - ) - (f64.add - (f64.const -0.03333333333333313) - (f64.mul - (get_local $2) - (f64.add - (f64.const 1.5873015872548146e-03) - (f64.mul - (get_local $2) - (f64.add - (f64.const -7.93650757867488e-05) - (f64.mul - (get_local $2) - (f64.add - (f64.const 4.008217827329362e-06) - (f64.mul - (get_local $2) - (f64.const -2.0109921818362437e-07) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $1 - (f64.mul - (get_local $2) - (f64.div - (f64.sub - (get_local $1) - (tee_local $1 - (f64.sub - (f64.const 3) - (f64.mul - (get_local $1) - (get_local $8) - ) - ) - ) - ) - (f64.sub - (f64.const 6) - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (f64.sub - (get_local $0) - (f64.sub - (f64.mul - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) - ) - ) - ) - (set_local $1 - (f64.sub - (f64.sub - (f64.mul - (get_local $0) - (f64.sub - (get_local $1) - (get_local $5) - ) - ) - (get_local $5) - ) - (get_local $2) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const -1) - ) - (return - (f64.sub - (f64.mul - (f64.const 0.5) - (f64.sub - (get_local $0) - (get_local $1) - ) - ) - (f64.const 0.5) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1) - ) - (block - (if - (f64.lt - (get_local $0) - (f64.const -0.25) - ) - (return - (f64.mul - (f64.const -2) - (f64.sub - (get_local $1) - (f64.add - (get_local $0) - (f64.const 0.5) - ) - ) - ) - ) - ) - (return - (f64.add - (f64.const 1) - (f64.mul - (f64.const 2) - (f64.sub - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - ) - (set_local $5 - (f64.reinterpret/i64 - (i64.shl - (i64.add - (i64.extend_s/i32 - (get_local $3) - ) - (i64.const 1023) - ) - (i64.const 52) - ) - ) - ) - (if - (i32.eqz - (tee_local $4 - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - ) - (set_local $4 - (i32.gt_s - (get_local $3) - (i32.const 56) - ) - ) - ) - (if - (get_local $4) - (block - (set_local $2 - (f64.add - (f64.sub - (get_local $0) - (get_local $1) - ) - (f64.const 1) - ) - ) - (return - (f64.sub - (tee_local $2 - (if (result f64) - (i32.eq - (get_local $3) - (i32.const 1024) - ) - (f64.mul - (f64.mul - (get_local $2) - (f64.const 2) - ) - (f64.const 8988465674311579538646525e283) - ) - (f64.mul - (get_local $2) - (get_local $5) - ) - ) - ) - (f64.const 1) - ) - ) - ) - ) - (set_local $2 - (f64.reinterpret/i64 - (i64.shl - (i64.sub - (i64.const 1023) - (i64.extend_s/i32 - (get_local $3) - ) - ) - (i64.const 52) - ) - ) - ) - (f64.mul - (f64.add - (get_local $0) - (tee_local $2 - (if (result f64) - (i32.lt_s - (get_local $3) - (i32.const 20) - ) - (f64.sub - (f64.sub - (f64.const 1) - (get_local $2) - ) - (get_local $1) - ) - (f64.sub - (f64.const 1) - (f64.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - ) - (get_local $5) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $7 + i64.const 63 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $7 + i64.const 32 + i64.shr_u + i64.const 2147483647 + i64.and + i32.wrap/i64 + tee_local $4 + i32.const 1078159482 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + get_local $6 + if + f64.const -1 + return + end + get_local $0 + f64.const 709.782712893384 + f64.gt + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + return + end + end + get_local $4 + i32.const 1071001154 + i32.gt_u + if + get_local $0 + i32.const 1 + get_local $6 + i32.const 1 + i32.shl + i32.sub + f64.const 1.4426950408889634 + get_local $0 + f64.mul + f64.const 0.5 + get_local $0 + f64.copysign + f64.add + i32.trunc_s/f64 + get_local $4 + i32.const 1072734898 + i32.lt_u + select + tee_local $3 + f64.convert_s/i32 + tee_local $1 + f64.const 0.6931471803691238 + f64.mul + f64.sub + tee_local $2 + get_local $1 + f64.const 1.9082149292705877e-10 + f64.mul + tee_local $1 + f64.sub + set_local $0 + get_local $2 + get_local $0 + f64.sub + get_local $1 + f64.sub + set_local $5 + else + get_local $4 + i32.const 1016070144 + i32.lt_u + if + get_local $0 + return + end + end + f64.const 1 + get_local $0 + f64.const 0.5 + get_local $0 + f64.mul + tee_local $8 + f64.mul + tee_local $2 + f64.const -0.03333333333333313 + get_local $2 + f64.const 1.5873015872548146e-03 + get_local $2 + f64.const -7.93650757867488e-05 + get_local $2 + f64.const 4.008217827329362e-06 + get_local $2 + f64.const -2.0109921818362437e-07 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + set_local $1 + get_local $2 + get_local $1 + f64.const 3 + get_local $1 + get_local $8 + f64.mul + f64.sub + tee_local $1 + f64.sub + f64.const 6 + get_local $0 + get_local $1 + f64.mul + f64.sub + f64.div + f64.mul + set_local $1 + get_local $3 + i32.eqz + if + get_local $0 + get_local $0 + get_local $1 + f64.mul + get_local $2 + f64.sub + f64.sub + return + end + get_local $0 + get_local $1 + get_local $5 + f64.sub + f64.mul + get_local $5 + f64.sub + get_local $2 + f64.sub + set_local $1 + get_local $3 + i32.const -1 + i32.eq + if + f64.const 0.5 + get_local $0 + get_local $1 + f64.sub + f64.mul + f64.const 0.5 + f64.sub + return + end + get_local $3 + i32.const 1 + i32.eq + if + get_local $0 + f64.const -0.25 + f64.lt + if + f64.const -2 + get_local $1 + get_local $0 + f64.const 0.5 + f64.add + f64.sub + f64.mul + return + end + f64.const 1 + f64.const 2 + get_local $0 + get_local $1 + f64.sub + f64.mul + f64.add + return + end + get_local $3 + i64.extend_s/i32 + i64.const 1023 + i64.add + i64.const 52 + i64.shl + f64.reinterpret/i64 + set_local $5 + get_local $3 + i32.const 0 + i32.lt_s + tee_local $4 + i32.eqz + if + get_local $3 + i32.const 56 + i32.gt_s + set_local $4 + end + get_local $4 + if + get_local $0 + get_local $1 + f64.sub + f64.const 1 + f64.add + set_local $2 + get_local $3 + i32.const 1024 + i32.eq + if (result f64) + get_local $2 + f64.const 2 + f64.mul + f64.const 8988465674311579538646525e283 + f64.mul + else + get_local $2 + get_local $5 + f64.mul + end + tee_local $2 + f64.const 1 + f64.sub + return + end + i64.const 1023 + get_local $3 + i64.extend_s/i32 + i64.sub + i64.const 52 + i64.shl + f64.reinterpret/i64 + set_local $2 + get_local $0 + get_local $3 + i32.const 20 + i32.lt_s + if (result f64) + f64.const 1 + get_local $2 + f64.sub + get_local $1 + f64.sub + else + f64.const 1 + get_local $1 + get_local $2 + f64.add + f64.sub + end + tee_local $2 + f64.add + get_local $5 + f64.mul ) - (func $~lib/math/NativeMath.exp (; 89 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 89 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 f64) (local $4 f64) (local $5 i32) - (set_local $5 - (i32.shr_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (i32.const 31) - ) - ) - (if - (i32.ge_u - (tee_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (i32.const 1082532651) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (if - (f64.gt - (get_local $0) - (f64.const 709.782712893384) - ) - (return - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - ) - (if - (f64.lt - (get_local $0) - (f64.const -745.1332191019411) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1071001154) - ) - (set_local $0 - (f64.sub - (tee_local $4 - (f64.sub - (get_local $0) - (f64.mul - (tee_local $0 - (f64.convert_s/i32 - (tee_local $2 - (if (result i32) - (i32.ge_u - (get_local $1) - (i32.const 1072734898) - ) - (i32.trunc_s/f64 - (f64.add - (f64.mul - (f64.const 1.4426950408889634) - (get_local $0) - ) - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - ) - (i32.sub - (i32.const 1) - (i32.shl - (get_local $5) - (i32.const 1) - ) - ) - ) - ) - ) - ) - (f64.const 0.6931471803691238) - ) - ) - ) - (tee_local $3 - (f64.mul - (get_local $0) - (f64.const 1.9082149292705877e-10) - ) - ) - ) - ) - (set_local $4 - (if (result f64) - (i32.gt_u - (get_local $1) - (i32.const 1043333120) - ) - (get_local $0) - (return - (f64.add - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - ) - (set_local $0 - (f64.add - (f64.const 1) - (f64.add - (f64.sub - (f64.div - (f64.mul - (get_local $0) - (tee_local $0 - (f64.sub - (get_local $0) - (f64.mul - (tee_local $0 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $0) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $0) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $0) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $0) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.sub - (f64.const 2) - (get_local $0) - ) - ) - (get_local $3) - ) - (get_local $4) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (get_local $0) - ) - ) - (call $~lib/math/NativeMath.scalbn - (get_local $0) - (get_local $2) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 31 + i32.shr_u + set_local $5 + get_local $1 + i32.const 2147483647 + i32.and + tee_local $1 + i32.const 1082532651 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + get_local $0 + f64.const 709.782712893384 + f64.gt + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + return + end + get_local $0 + f64.const -745.1332191019411 + f64.lt + if + f64.const 0 + return + end + end + get_local $1 + i32.const 1071001154 + i32.gt_u + if + get_local $0 + get_local $1 + i32.const 1072734898 + i32.ge_u + if (result i32) + f64.const 1.4426950408889634 + get_local $0 + f64.mul + f64.const 0.5 + get_local $0 + f64.copysign + f64.add + i32.trunc_s/f64 + else + i32.const 1 + get_local $5 + i32.const 1 + i32.shl + i32.sub + end + tee_local $2 + f64.convert_s/i32 + tee_local $0 + f64.const 0.6931471803691238 + f64.mul + f64.sub + tee_local $4 + get_local $0 + f64.const 1.9082149292705877e-10 + f64.mul + tee_local $3 + f64.sub + set_local $0 + else + get_local $1 + i32.const 1043333120 + i32.gt_u + if (result f64) + get_local $0 + else + f64.const 1 + get_local $0 + f64.add + return + end + set_local $4 + end + f64.const 1 + get_local $0 + get_local $0 + get_local $0 + get_local $0 + f64.mul + tee_local $0 + f64.const 0.16666666666666602 + get_local $0 + f64.const -2.7777777777015593e-03 + get_local $0 + f64.const 6.613756321437934e-05 + get_local $0 + f64.const -1.6533902205465252e-06 + get_local $0 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + tee_local $0 + f64.mul + f64.const 2 + get_local $0 + f64.sub + f64.div + get_local $3 + f64.sub + get_local $4 + f64.add + f64.add + set_local $0 + get_local $2 + i32.eqz + if + get_local $0 + return + end + get_local $0 + get_local $2 + call $~lib/math/NativeMath.scalbn ) - (func $~lib/math/NativeMath.cosh (; 90 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 90 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) - (set_local $0 - (f64.reinterpret/i64 - (tee_local $2 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 9223372036854775807) - ) - ) - ) - ) - (if - (i32.lt_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (i32.const 1072049730) - ) - (block - (if - (i32.lt_u - (get_local $1) - (i32.const 1045430272) - ) - (return - (f64.const 1) - ) - ) - (return - (f64.add - (f64.const 1) - (f64.div - (f64.mul - (tee_local $0 - (call $~lib/math/NativeMath.expm1 - (get_local $0) - ) - ) - (get_local $0) - ) - (f64.add - (f64.const 2) - (f64.mul - (f64.const 2) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1082535490) - ) - (return - (f64.mul - (f64.const 0.5) - (f64.add - (tee_local $0 - (call $~lib/math/NativeMath.exp - (get_local $0) - ) - ) - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - ) - (f64.mul - (f64.mul - (call $~lib/math/NativeMath.exp - (f64.sub - (get_local $0) - (f64.const 1416.0996898839683) - ) - ) - (f64.const 2247116418577894884661631e283) - ) - (f64.const 2247116418577894884661631e283) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + tee_local $2 + f64.reinterpret/i64 + set_local $0 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 1072049730 + i32.lt_u + if + get_local $1 + i32.const 1045430272 + i32.lt_u + if + f64.const 1 + return + end + f64.const 1 + get_local $0 + call $~lib/math/NativeMath.expm1 + tee_local $0 + get_local $0 + f64.mul + f64.const 2 + f64.const 2 + get_local $0 + f64.mul + f64.add + f64.div + f64.add + return + end + get_local $1 + i32.const 1082535490 + i32.lt_u + if + f64.const 0.5 + get_local $0 + call $~lib/math/NativeMath.exp + tee_local $0 + f64.const 1 + get_local $0 + f64.div + f64.add + f64.mul + return + end + get_local $0 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + f64.const 2247116418577894884661631e283 + f64.mul + f64.const 2247116418577894884661631e283 + f64.mul ) - (func $std/math/test_cosh (; 91 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cosh (; 91 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.cosh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/cosh - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.cosh + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/cosh + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.expm1 (; 92 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 92 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 f32) (local $3 i32) (local $4 i32) (local $5 f32) (local $6 f32) - (set_local $3 - (i32.shr_u - (tee_local $4 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 31) - ) - ) - (if - (i32.ge_u - (tee_local $4 - (i32.and - (get_local $4) - (i32.const 2147483647) - ) - ) - (i32.const 1100331076) - ) - (block - (if - (i32.gt_u - (get_local $4) - (i32.const 2139095040) - ) - (return - (get_local $0) - ) - ) - (if - (get_local $3) - (return - (f32.const -1) - ) - ) - (if - (f32.gt - (get_local $0) - (f32.const 88.7216796875) - ) - (return - (f32.mul - (get_local $0) - (f32.const 1701411834604692317316873e14) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $4) - (i32.const 1051816472) - ) - (block - (set_local $0 - (f32.sub - (tee_local $2 - (f32.sub - (get_local $0) - (f32.mul - (tee_local $1 - (f32.convert_s/i32 - (tee_local $3 - (select - (i32.sub - (i32.const 1) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.trunc_s/f32 - (f32.add - (f32.mul - (f32.const 1.4426950216293335) - (get_local $0) - ) - (f32.copysign - (f32.const 0.5) - (get_local $0) - ) - ) - ) - (i32.lt_u - (get_local $4) - (i32.const 1065686418) - ) - ) - ) - ) - ) - (f32.const 0.6931381225585938) - ) - ) - ) - (tee_local $1 - (f32.mul - (get_local $1) - (f32.const 9.05800061445916e-06) - ) - ) - ) - ) - (set_local $5 - (f32.sub - (f32.sub - (get_local $2) - (get_local $0) - ) - (get_local $1) - ) - ) - ) - (set_local $3 - (if (result i32) - (i32.lt_u - (get_local $4) - (i32.const 855638016) - ) - (return - (get_local $0) - ) - (i32.const 0) - ) - ) - ) - (set_local $1 - (f32.add - (f32.const 1) - (f32.mul - (tee_local $2 - (f32.mul - (get_local $0) - (tee_local $6 - (f32.mul - (f32.const 0.5) - (get_local $0) - ) - ) - ) - ) - (f32.add - (f32.const -0.03333321213722229) - (f32.mul - (get_local $2) - (f32.const 1.5807170420885086e-03) - ) - ) - ) - ) - ) - (set_local $1 - (f32.mul - (get_local $2) - (f32.div - (f32.sub - (get_local $1) - (tee_local $1 - (f32.sub - (f32.const 3) - (f32.mul - (get_local $1) - (get_local $6) - ) - ) - ) - ) - (f32.sub - (f32.const 6) - (f32.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (f32.sub - (get_local $0) - (f32.sub - (f32.mul - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) - ) - ) - ) - (set_local $1 - (f32.sub - (f32.sub - (f32.mul - (get_local $0) - (f32.sub - (get_local $1) - (get_local $5) - ) - ) - (get_local $5) - ) - (get_local $2) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const -1) - ) - (return - (f32.sub - (f32.mul - (f32.const 0.5) - (f32.sub - (get_local $0) - (get_local $1) - ) - ) - (f32.const 0.5) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1) - ) - (block - (if - (f32.lt - (get_local $0) - (f32.const -0.25) - ) - (return - (f32.mul - (f32.const -2) - (f32.sub - (get_local $1) - (f32.add - (get_local $0) - (f32.const 0.5) - ) - ) - ) - ) - ) - (return - (f32.add - (f32.const 1) - (f32.mul - (f32.const 2) - (f32.sub - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - ) - (set_local $5 - (f32.reinterpret/i32 - (i32.shl - (i32.add - (get_local $3) - (i32.const 127) - ) - (i32.const 23) - ) - ) - ) - (if - (i32.eqz - (tee_local $4 - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - ) - (set_local $4 - (i32.gt_s - (get_local $3) - (i32.const 56) - ) - ) - ) - (if - (get_local $4) - (block - (set_local $2 - (f32.add - (f32.sub - (get_local $0) - (get_local $1) - ) - (f32.const 1) - ) - ) - (return - (f32.sub - (tee_local $2 - (if (result f32) - (i32.eq - (get_local $3) - (i32.const 128) - ) - (f32.mul - (f32.mul - (get_local $2) - (f32.const 2) - ) - (f32.const 1701411834604692317316873e14) - ) - (f32.mul - (get_local $2) - (get_local $5) - ) - ) - ) - (f32.const 1) - ) - ) - ) - ) - (set_local $2 - (f32.reinterpret/i32 - (i32.shl - (i32.sub - (i32.const 127) - (get_local $3) - ) - (i32.const 23) - ) - ) - ) - (f32.mul - (f32.add - (get_local $0) - (tee_local $2 - (if (result f32) - (i32.lt_s - (get_local $3) - (i32.const 20) - ) - (f32.sub - (f32.sub - (f32.const 1) - (get_local $2) - ) - (get_local $1) - ) - (f32.sub - (f32.const 1) - (f32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - ) - (get_local $5) - ) + get_local $0 + i32.reinterpret/f32 + tee_local $4 + i32.const 31 + i32.shr_u + set_local $3 + get_local $4 + i32.const 2147483647 + i32.and + tee_local $4 + i32.const 1100331076 + i32.ge_u + if + get_local $4 + i32.const 2139095040 + i32.gt_u + if + get_local $0 + return + end + get_local $3 + if + f32.const -1 + return + end + get_local $0 + f32.const 88.7216796875 + f32.gt + if + get_local $0 + f32.const 1701411834604692317316873e14 + f32.mul + return + end + end + get_local $4 + i32.const 1051816472 + i32.gt_u + if + get_local $0 + i32.const 1 + get_local $3 + i32.const 1 + i32.shl + i32.sub + f32.const 1.4426950216293335 + get_local $0 + f32.mul + f32.const 0.5 + get_local $0 + f32.copysign + f32.add + i32.trunc_s/f32 + get_local $4 + i32.const 1065686418 + i32.lt_u + select + tee_local $3 + f32.convert_s/i32 + tee_local $1 + f32.const 0.6931381225585938 + f32.mul + f32.sub + tee_local $2 + get_local $1 + f32.const 9.05800061445916e-06 + f32.mul + tee_local $1 + f32.sub + set_local $0 + get_local $2 + get_local $0 + f32.sub + get_local $1 + f32.sub + set_local $5 + else + get_local $4 + i32.const 855638016 + i32.lt_u + if (result i32) + get_local $0 + return + else + i32.const 0 + end + set_local $3 + end + f32.const 1 + get_local $0 + f32.const 0.5 + get_local $0 + f32.mul + tee_local $6 + f32.mul + tee_local $2 + f32.const -0.03333321213722229 + get_local $2 + f32.const 1.5807170420885086e-03 + f32.mul + f32.add + f32.mul + f32.add + set_local $1 + get_local $2 + get_local $1 + f32.const 3 + get_local $1 + get_local $6 + f32.mul + f32.sub + tee_local $1 + f32.sub + f32.const 6 + get_local $0 + get_local $1 + f32.mul + f32.sub + f32.div + f32.mul + set_local $1 + get_local $3 + i32.eqz + if + get_local $0 + get_local $0 + get_local $1 + f32.mul + get_local $2 + f32.sub + f32.sub + return + end + get_local $0 + get_local $1 + get_local $5 + f32.sub + f32.mul + get_local $5 + f32.sub + get_local $2 + f32.sub + set_local $1 + get_local $3 + i32.const -1 + i32.eq + if + f32.const 0.5 + get_local $0 + get_local $1 + f32.sub + f32.mul + f32.const 0.5 + f32.sub + return + end + get_local $3 + i32.const 1 + i32.eq + if + get_local $0 + f32.const -0.25 + f32.lt + if + f32.const -2 + get_local $1 + get_local $0 + f32.const 0.5 + f32.add + f32.sub + f32.mul + return + end + f32.const 1 + f32.const 2 + get_local $0 + get_local $1 + f32.sub + f32.mul + f32.add + return + end + get_local $3 + i32.const 127 + i32.add + i32.const 23 + i32.shl + f32.reinterpret/i32 + set_local $5 + get_local $3 + i32.const 0 + i32.lt_s + tee_local $4 + i32.eqz + if + get_local $3 + i32.const 56 + i32.gt_s + set_local $4 + end + get_local $4 + if + get_local $0 + get_local $1 + f32.sub + f32.const 1 + f32.add + set_local $2 + get_local $3 + i32.const 128 + i32.eq + if (result f32) + get_local $2 + f32.const 2 + f32.mul + f32.const 1701411834604692317316873e14 + f32.mul + else + get_local $2 + get_local $5 + f32.mul + end + tee_local $2 + f32.const 1 + f32.sub + return + end + i32.const 127 + get_local $3 + i32.sub + i32.const 23 + i32.shl + f32.reinterpret/i32 + set_local $2 + get_local $0 + get_local $3 + i32.const 20 + i32.lt_s + if (result f32) + f32.const 1 + get_local $2 + f32.sub + get_local $1 + f32.sub + else + f32.const 1 + get_local $1 + get_local $2 + f32.add + f32.sub + end + tee_local $2 + f32.add + get_local $5 + f32.mul ) - (func $~lib/math/NativeMathf.exp (; 93 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 93 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) (local $4 f32) - (set_local $2 - (i32.shr_u - (tee_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 31) - ) - ) - (if - (i32.ge_u - (tee_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (i32.const 1118743632) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 1118925336) - ) - (if - (get_local $2) - (if - (i32.ge_u - (get_local $1) - (i32.const 1120924085) - ) - (return - (f32.const 0) - ) - ) - (return - (f32.mul - (get_local $0) - (f32.const 1701411834604692317316873e14) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1051816472) - ) - (set_local $0 - (f32.sub - (tee_local $3 - (f32.sub - (get_local $0) - (f32.mul - (tee_local $0 - (f32.convert_s/i32 - (tee_local $1 - (if (result i32) - (i32.gt_u - (get_local $1) - (i32.const 1065686418) - ) - (i32.trunc_s/f32 - (f32.add - (f32.mul - (f32.const 1.4426950216293335) - (get_local $0) - ) - (f32.copysign - (f32.const 0.5) - (get_local $0) - ) - ) - ) - (i32.sub - (i32.const 1) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - ) - ) - (f32.const 0.693145751953125) - ) - ) - ) - (tee_local $4 - (f32.mul - (get_local $0) - (f32.const 1.428606765330187e-06) - ) - ) - ) - ) - (set_local $3 - (if (result f32) - (i32.gt_u - (get_local $1) - (i32.const 956301312) - ) - (block (result f32) - (set_local $1 - (i32.const 0) - ) - (get_local $0) - ) - (return - (f32.add - (f32.const 1) - (get_local $0) - ) - ) - ) - ) - ) - (set_local $0 - (f32.add - (f32.const 1) - (f32.add - (f32.sub - (f32.div - (f32.mul - (get_local $0) - (tee_local $0 - (f32.sub - (get_local $0) - (f32.mul - (tee_local $0 - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - (f32.add - (f32.const 0.16666625440120697) - (f32.mul - (get_local $0) - (f32.const -2.7667332906275988e-03) - ) - ) - ) - ) - ) - ) - (f32.sub - (f32.const 2) - (get_local $0) - ) - ) - (get_local $4) - ) - (get_local $3) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (return - (get_local $0) - ) - ) - (call $~lib/math/NativeMathf.scalbn - (get_local $0) - (get_local $1) - ) + get_local $0 + i32.reinterpret/f32 + tee_local $1 + i32.const 31 + i32.shr_u + set_local $2 + get_local $1 + i32.const 2147483647 + i32.and + tee_local $1 + i32.const 1118743632 + i32.ge_u + if + get_local $1 + i32.const 1118925336 + i32.ge_u + if + get_local $2 + if + get_local $1 + i32.const 1120924085 + i32.ge_u + if + f32.const 0 + return + end + else + get_local $0 + f32.const 1701411834604692317316873e14 + f32.mul + return + end + end + end + get_local $1 + i32.const 1051816472 + i32.gt_u + if + get_local $0 + get_local $1 + i32.const 1065686418 + i32.gt_u + if (result i32) + f32.const 1.4426950216293335 + get_local $0 + f32.mul + f32.const 0.5 + get_local $0 + f32.copysign + f32.add + i32.trunc_s/f32 + else + i32.const 1 + get_local $2 + i32.const 1 + i32.shl + i32.sub + end + tee_local $1 + f32.convert_s/i32 + tee_local $0 + f32.const 0.693145751953125 + f32.mul + f32.sub + tee_local $3 + get_local $0 + f32.const 1.428606765330187e-06 + f32.mul + tee_local $4 + f32.sub + set_local $0 + else + get_local $1 + i32.const 956301312 + i32.gt_u + if (result f32) + i32.const 0 + set_local $1 + get_local $0 + else + f32.const 1 + get_local $0 + f32.add + return + end + set_local $3 + end + f32.const 1 + get_local $0 + get_local $0 + get_local $0 + get_local $0 + f32.mul + tee_local $0 + f32.const 0.16666625440120697 + get_local $0 + f32.const -2.7667332906275988e-03 + f32.mul + f32.add + f32.mul + f32.sub + tee_local $0 + f32.mul + f32.const 2 + get_local $0 + f32.sub + f32.div + get_local $4 + f32.sub + get_local $3 + f32.add + f32.add + set_local $0 + get_local $1 + i32.eqz + if + get_local $0 + return + end + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.scalbn ) - (func $~lib/math/NativeMathf.cosh (; 94 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 94 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) - (set_local $0 - (f32.reinterpret/i32 - (tee_local $1 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1060205079) - ) - (block - (if - (i32.lt_u - (get_local $1) - (i32.const 964689920) - ) - (return - (f32.const 1) - ) - ) - (return - (f32.add - (f32.const 1) - (f32.div - (f32.mul - (tee_local $0 - (call $~lib/math/NativeMathf.expm1 - (get_local $0) - ) - ) - (get_local $0) - ) - (f32.add - (f32.const 2) - (f32.mul - (f32.const 2) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1118925335) - ) - (return - (f32.add - (f32.mul - (f32.const 0.5) - (tee_local $0 - (call $~lib/math/NativeMathf.exp - (get_local $0) - ) - ) - ) - (f32.div - (f32.const 0.5) - (get_local $0) - ) - ) - ) - ) - (f32.mul - (f32.mul - (call $~lib/math/NativeMathf.exp - (f32.sub - (get_local $0) - (f32.const 162.88958740234375) - ) - ) - (f32.const 1661534994731144841129758e11) - ) - (f32.const 1661534994731144841129758e11) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + tee_local $1 + f32.reinterpret/i32 + set_local $0 + get_local $1 + i32.const 1060205079 + i32.lt_u + if + get_local $1 + i32.const 964689920 + i32.lt_u + if + f32.const 1 + return + end + f32.const 1 + get_local $0 + call $~lib/math/NativeMathf.expm1 + tee_local $0 + get_local $0 + f32.mul + f32.const 2 + f32.const 2 + get_local $0 + f32.mul + f32.add + f32.div + f32.add + return + end + get_local $1 + i32.const 1118925335 + i32.lt_u + if + f32.const 0.5 + get_local $0 + call $~lib/math/NativeMathf.exp + tee_local $0 + f32.mul + f32.const 0.5 + get_local $0 + f32.div + f32.add + return + end + get_local $0 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + f32.const 1661534994731144841129758e11 + f32.mul + f32.const 1661534994731144841129758e11 + f32.mul ) - (func $std/math/test_coshf (; 95 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.cosh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_coshf (; 95 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.cosh + get_local $1 + get_local $2 + call $std/math/check ) - (func $std/math/test_exp (; 96 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_exp (; 96 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.exp - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/exp - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.exp + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/exp + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $std/math/test_expf (; 97 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.exp - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_expf (; 97 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.exp + get_local $1 + get_local $2 + call $std/math/check ) - (func $std/math/test_expm1 (; 98 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_expm1 (; 98 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.expm1 - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/expm1 - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.expm1 + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/expm1 + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $std/math/test_expm1f (; 99 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.expm1 - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_expm1f (; 99 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.expm1 + get_local $1 + get_local $2 + call $std/math/check ) - (func $std/math/test_floor (; 100 ;) (; has Stack IR ;) (type $FUNCSIG$iddi) (param $0 f64) (param $1 f64) (param $2 i32) (result i32) - (if - (tee_local $2 - (call $std/math/check - (f64.floor - (get_local $0) - ) - (get_local $1) - (f64.const 0) - ) - ) - (set_local $2 - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/floor - (get_local $0) - ) - ) - (get_local $1) - (f64.const 0) - ) - ) - ) - (get_local $2) + (func $std/math/test_floor (; 100 ;) (type $FUNCSIG$iddi) (param $0 f64) (param $1 f64) (param $2 i32) (result i32) + get_local $0 + f64.floor + get_local $1 + f64.const 0 + call $std/math/check + tee_local $2 + if + get_local $0 + call $~lib/bindings/Math/floor + tee_local $0 + get_local $1 + f64.const 0 + call $std/math/check + set_local $2 + end + get_local $2 ) - (func $std/math/test_floorf (; 101 ;) (; has Stack IR ;) (type $FUNCSIG$iffi) (param $0 f32) (param $1 f32) (param $2 i32) (result i32) - (call $std/math/check - (f32.floor - (get_local $0) - ) - (get_local $1) - (f32.const 0) - ) + (func $std/math/test_floorf (; 101 ;) (type $FUNCSIG$iffi) (param $0 f32) (param $1 f32) (param $2 i32) (result i32) + get_local $0 + f32.floor + get_local $1 + f32.const 0 + call $std/math/check ) - (func $~lib/math/NativeMath.hypot (; 102 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 102 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 i64) (local $4 f64) @@ -6503,505 +4572,347 @@ (local $9 i32) (local $10 i64) (local $11 f64) - (if - (i64.lt_u - (tee_local $5 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 9223372036854775807) - ) - ) - (tee_local $3 - (i64.and - (i64.reinterpret/f64 - (get_local $1) - ) - (i64.const 9223372036854775807) - ) - ) - ) - (block - (set_local $10 - (get_local $5) - ) - (set_local $5 - (get_local $3) - ) - (set_local $3 - (get_local $10) - ) - ) - ) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (get_local $5) - (i64.const 52) - ) - ) - ) - (set_local $1 - (f64.reinterpret/i64 - (get_local $3) - ) - ) - (if - (i32.eq - (tee_local $8 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.const 52) - ) - ) - ) - (i32.const 2047) - ) - (return - (get_local $1) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $5) - ) - ) - (if - (i32.eqz - (tee_local $9 - (i32.eq - (get_local $6) - (i32.const 2047) - ) - ) - ) - (set_local $9 - (i64.eq - (get_local $3) - (i64.const 0) - ) - ) - ) - (if - (get_local $9) - (return - (get_local $0) - ) - ) - (if - (i32.gt_s - (i32.sub - (get_local $6) - (get_local $8) - ) - (i32.const 64) - ) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $7 - (f64.const 1) - ) - (if - (i32.gt_s - (get_local $6) - (i32.const 1533) - ) - (block - (set_local $7 - (f64.const 5260135901548373507240989e186) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 1.90109156629516e-211) - ) - ) - (set_local $1 - (f64.mul - (get_local $1) - (f64.const 1.90109156629516e-211) - ) - ) - ) - (if - (i32.lt_s - (get_local $8) - (i32.const 573) - ) - (block - (set_local $7 - (f64.const 1.90109156629516e-211) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 5260135901548373507240989e186) - ) - ) - (set_local $1 - (f64.mul - (get_local $1) - (f64.const 5260135901548373507240989e186) - ) - ) - ) - ) - ) - (set_local $4 - (f64.sub - (get_local $0) - (tee_local $2 - (f64.add - (f64.sub - (get_local $0) - (tee_local $2 - (f64.mul - (get_local $0) - (f64.const 134217729) - ) - ) - ) - (get_local $2) - ) - ) - ) - ) - (set_local $11 - (f64.add - (f64.sub - (f64.mul - (get_local $2) - (get_local $2) - ) - (tee_local $0 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (f64.mul - (f64.add - (f64.mul - (f64.const 2) - (get_local $2) - ) - (get_local $4) - ) - (get_local $4) - ) - ) - ) - (set_local $4 - (f64.sub - (get_local $1) - (tee_local $2 - (f64.add - (f64.sub - (get_local $1) - (tee_local $2 - (f64.mul - (get_local $1) - (f64.const 134217729) - ) - ) - ) - (get_local $2) - ) - ) - ) - ) - (f64.mul - (get_local $7) - (f64.sqrt - (f64.add - (f64.add - (f64.add - (tee_local $2 - (f64.add - (f64.sub - (f64.mul - (get_local $2) - (get_local $2) - ) - (tee_local $1 - (f64.mul - (get_local $1) - (get_local $1) - ) - ) - ) - (f64.mul - (f64.add - (f64.mul - (f64.const 2) - (get_local $2) - ) - (get_local $4) - ) - (get_local $4) - ) - ) - ) - (get_local $11) - ) - (get_local $1) - ) - (get_local $0) - ) - ) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + tee_local $5 + get_local $1 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + tee_local $3 + i64.lt_u + if + get_local $5 + set_local $10 + get_local $3 + set_local $5 + get_local $10 + set_local $3 + end + get_local $5 + i64.const 52 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $3 + f64.reinterpret/i64 + set_local $1 + get_local $3 + i64.const 52 + i64.shr_u + i32.wrap/i64 + tee_local $8 + i32.const 2047 + i32.eq + if + get_local $1 + return + end + get_local $5 + f64.reinterpret/i64 + set_local $0 + get_local $6 + i32.const 2047 + i32.eq + tee_local $9 + i32.eqz + if + get_local $3 + i64.const 0 + i64.eq + set_local $9 + end + get_local $9 + if + get_local $0 + return + end + get_local $6 + get_local $8 + i32.sub + i32.const 64 + i32.gt_s + if + get_local $0 + get_local $1 + f64.add + return + end + f64.const 1 + set_local $7 + get_local $6 + i32.const 1533 + i32.gt_s + if + f64.const 5260135901548373507240989e186 + set_local $7 + get_local $0 + f64.const 1.90109156629516e-211 + f64.mul + set_local $0 + get_local $1 + f64.const 1.90109156629516e-211 + f64.mul + set_local $1 + else + get_local $8 + i32.const 573 + i32.lt_s + if + f64.const 1.90109156629516e-211 + set_local $7 + get_local $0 + f64.const 5260135901548373507240989e186 + f64.mul + set_local $0 + get_local $1 + f64.const 5260135901548373507240989e186 + f64.mul + set_local $1 + end + end + get_local $0 + get_local $0 + get_local $0 + f64.const 134217729 + f64.mul + tee_local $2 + f64.sub + get_local $2 + f64.add + tee_local $2 + f64.sub + set_local $4 + get_local $2 + get_local $2 + f64.mul + get_local $0 + get_local $0 + f64.mul + tee_local $0 + f64.sub + f64.const 2 + get_local $2 + f64.mul + get_local $4 + f64.add + get_local $4 + f64.mul + f64.add + set_local $11 + get_local $1 + get_local $1 + get_local $1 + f64.const 134217729 + f64.mul + tee_local $2 + f64.sub + get_local $2 + f64.add + tee_local $2 + f64.sub + set_local $4 + get_local $7 + get_local $2 + get_local $2 + f64.mul + get_local $1 + get_local $1 + f64.mul + tee_local $1 + f64.sub + f64.const 2 + get_local $2 + f64.mul + get_local $4 + f64.add + get_local $4 + f64.mul + f64.add + tee_local $2 + get_local $11 + f64.add + get_local $1 + f64.add + get_local $0 + f64.add + f64.sqrt + f64.mul ) - (func $std/math/test_hypot (; 103 ;) (; has Stack IR ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_hypot (; 103 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) - (tee_local $4 - (if (result i32) - (tee_local $5 - (call $std/math/check - (call $~lib/math/NativeMath.hypot - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/hypot - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (get_local $3) - ) - (get_local $5) - ) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.hypot + get_local $2 + get_local $3 + call $std/math/check + tee_local $5 + if (result i32) + get_local $0 + get_local $1 + call $~lib/bindings/Math/hypot + tee_local $0 + get_local $2 + get_local $3 + call $std/math/check + else + get_local $5 + end + tee_local $4 ) - (func $~lib/math/NativeMathf.hypot (; 104 ;) (; has Stack IR ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 104 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) (local $6 f64) - (if - (i32.lt_u - (tee_local $3 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - (tee_local $2 - (i32.and - (i32.reinterpret/f32 - (get_local $1) - ) - (i32.const 2147483647) - ) - ) - ) - (block - (set_local $4 - (get_local $3) - ) - (set_local $3 - (get_local $2) - ) - (set_local $2 - (get_local $4) - ) - ) - ) - (set_local $0 - (f32.reinterpret/i32 - (get_local $3) - ) - ) - (set_local $1 - (f32.reinterpret/i32 - (get_local $2) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 2139095040) - ) - (return - (get_local $1) - ) - ) - (if - (i32.eqz - (tee_local $4 - (i32.ge_u - (get_local $3) - (i32.const 2139095040) - ) - ) - ) - (set_local $4 - (i32.eqz - (get_local $2) - ) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (set_local $4 - (i32.ge_u - (i32.sub - (get_local $3) - (get_local $2) - ) - (i32.const 209715200) - ) - ) - ) - (if - (get_local $4) - (return - (f32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $5 - (f32.const 1) - ) - (if - (i32.ge_u - (get_local $3) - (i32.const 1568669696) - ) - (block - (set_local $5 - (f32.const 1237940039285380274899124e3) - ) - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 8.077935669463161e-28) - ) - ) - (set_local $1 - (f32.mul - (get_local $1) - (f32.const 8.077935669463161e-28) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 562036736) - ) - (block - (set_local $5 - (f32.const 8.077935669463161e-28) - ) - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 1237940039285380274899124e3) - ) - ) - (set_local $1 - (f32.mul - (get_local $1) - (f32.const 1237940039285380274899124e3) - ) - ) - ) - ) - ) - (f32.mul - (get_local $5) - (f32.sqrt - (f32.demote/f64 - (f64.add - (f64.mul - (tee_local $6 - (f64.promote/f32 - (get_local $0) - ) - ) - (get_local $6) - ) - (f64.mul - (tee_local $6 - (f64.promote/f32 - (get_local $1) - ) - ) - (get_local $6) - ) - ) - ) - ) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + tee_local $3 + get_local $1 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + tee_local $2 + i32.lt_u + if + get_local $3 + set_local $4 + get_local $2 + set_local $3 + get_local $4 + set_local $2 + end + get_local $3 + f32.reinterpret/i32 + set_local $0 + get_local $2 + f32.reinterpret/i32 + set_local $1 + get_local $2 + i32.const 2139095040 + i32.eq + if + get_local $1 + return + end + get_local $3 + i32.const 2139095040 + i32.ge_u + tee_local $4 + i32.eqz + if + get_local $2 + i32.eqz + set_local $4 + end + get_local $4 + i32.eqz + if + get_local $3 + get_local $2 + i32.sub + i32.const 209715200 + i32.ge_u + set_local $4 + end + get_local $4 + if + get_local $0 + get_local $1 + f32.add + return + end + f32.const 1 + set_local $5 + get_local $3 + i32.const 1568669696 + i32.ge_u + if + f32.const 1237940039285380274899124e3 + set_local $5 + get_local $0 + f32.const 8.077935669463161e-28 + f32.mul + set_local $0 + get_local $1 + f32.const 8.077935669463161e-28 + f32.mul + set_local $1 + else + get_local $2 + i32.const 562036736 + i32.lt_u + if + f32.const 8.077935669463161e-28 + set_local $5 + get_local $0 + f32.const 1237940039285380274899124e3 + f32.mul + set_local $0 + get_local $1 + f32.const 1237940039285380274899124e3 + f32.mul + set_local $1 + end + end + get_local $5 + get_local $0 + f64.promote/f32 + tee_local $6 + get_local $6 + f64.mul + get_local $1 + f64.promote/f32 + tee_local $6 + get_local $6 + f64.mul + f64.add + f32.demote/f64 + f32.sqrt + f32.mul ) - (func $std/math/test_hypotf (; 105 ;) (; has Stack IR ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.hypot - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - ) + (func $std/math/test_hypotf (; 105 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.hypot + get_local $2 + get_local $3 + call $std/math/check ) - (func $std/math/test_log (; 106 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log (; 106 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.log - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/log - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.log + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/log + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $std/math/test_logf (; 107 ;) (; has Stack IR ;) (type $FUNCSIG$iffi) (param $0 f32) (param $1 f32) (param $2 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.log - (get_local $0) - ) - (get_local $1) - (f32.const 0) - ) + (func $std/math/test_logf (; 107 ;) (type $FUNCSIG$iffi) (param $0 f32) (param $1 f32) (param $2 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.log + get_local $1 + f32.const 0 + call $std/math/check ) - (func $~lib/math/NativeMath.log10 (; 108 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 108 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -7013,340 +4924,230 @@ (local $9 f64) (local $10 f64) (local $11 f64) - (if - (i32.eqz - (tee_local $3 - (i32.lt_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $5 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (i32.const 1048576) - ) - ) - ) - (set_local $3 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - ) - (if - (get_local $3) - (block - (if - (i64.eq - (i64.shl - (get_local $5) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $4 - (i32.const -54) - ) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $5 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (block - (if - (tee_local $3 - (i32.eq - (get_local $1) - (i32.const 1072693248) - ) - ) - (set_local $3 - (i64.eq - (i64.shl - (get_local $5) - (i64.const 32) - ) - (i64.const 0) - ) - ) - ) - (if - (get_local $3) - (return - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.sub - (i32.shr_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 614242) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $0 - (f64.mul - (tee_local $8 - (f64.mul - (tee_local $7 - (f64.div - (tee_local $2 - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.shl - (i64.extend_u/i32 - (i32.add - (i32.and - (get_local $1) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (i64.const 32) - ) - (i64.and - (get_local $5) - (i64.const 4294967295) - ) - ) - ) - (f64.const 1) - ) - ) - (f64.add - (f64.const 2) - (get_local $2) - ) - ) - ) - (get_local $7) - ) - ) - (get_local $8) - ) - ) - (set_local $9 - (f64.mul - (tee_local $11 - (f64.convert_s/i32 - (get_local $4) - ) - ) - (f64.const 0.30102999566361177) - ) - ) - (f64.add - (f64.add - (tee_local $2 - (f64.add - (f64.add - (f64.mul - (get_local $11) - (f64.const 3.694239077158931e-13) - ) - (f64.mul - (f64.add - (tee_local $0 - (f64.add - (f64.sub - (f64.sub - (get_local $2) - (tee_local $6 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (f64.sub - (get_local $2) - (tee_local $10 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $2) - ) - (get_local $2) - ) - ) - ) - ) - (i64.const -4294967296) - ) - ) - ) - ) - (get_local $10) - ) - (f64.mul - (get_local $7) - (f64.add - (get_local $10) - (f64.add - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $0) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $0) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (get_local $6) - ) - (f64.const 2.5082946711645275e-11) - ) - ) - (f64.mul - (get_local $0) - (f64.const 0.4342944818781689) - ) - ) - ) - (f64.add - (f64.sub - (get_local $9) - (tee_local $0 - (f64.add - (get_local $9) - (tee_local $6 - (f64.mul - (get_local $6) - (f64.const 0.4342944818781689) - ) - ) - ) - ) - ) - (get_local $6) - ) - ) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $5 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 1048576 + i32.lt_u + tee_local $3 + i32.eqz + if + get_local $1 + i32.const 31 + i32.shr_u + set_local $3 + end + get_local $3 + if + get_local $5 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + i32.const -54 + set_local $4 + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + tee_local $5 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + else + get_local $1 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1072693248 + i32.eq + tee_local $3 + if + get_local $5 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + set_local $3 + end + get_local $3 + if + f64.const 0 + return + end + end + end + get_local $4 + get_local $1 + i32.const 614242 + i32.add + tee_local $1 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + i32.add + set_local $4 + get_local $1 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $5 + i64.const 4294967295 + i64.and + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub + tee_local $2 + f64.const 2 + get_local $2 + f64.add + f64.div + tee_local $7 + get_local $7 + f64.mul + tee_local $8 + get_local $8 + f64.mul + set_local $0 + get_local $4 + f64.convert_s/i32 + tee_local $11 + f64.const 0.30102999566361177 + f64.mul + set_local $9 + get_local $11 + f64.const 3.694239077158931e-13 + f64.mul + get_local $2 + get_local $2 + f64.const 0.5 + get_local $2 + f64.mul + get_local $2 + f64.mul + tee_local $10 + f64.sub + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $6 + f64.sub + get_local $10 + f64.sub + get_local $7 + get_local $10 + get_local $8 + f64.const 0.6666666666666735 + get_local $0 + f64.const 0.2857142874366239 + get_local $0 + f64.const 0.1818357216161805 + get_local $0 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $0 + f64.const 0.3999999999940942 + get_local $0 + f64.const 0.22222198432149784 + get_local $0 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + f64.mul + f64.add + tee_local $0 + get_local $6 + f64.add + f64.const 2.5082946711645275e-11 + f64.mul + f64.add + get_local $0 + f64.const 0.4342944818781689 + f64.mul + f64.add + tee_local $2 + get_local $9 + get_local $9 + get_local $6 + f64.const 0.4342944818781689 + f64.mul + tee_local $6 + f64.add + tee_local $0 + f64.sub + get_local $6 + f64.add + f64.add + get_local $0 + f64.add ) - (func $std/math/test_log10 (; 109 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log10 (; 109 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.log10 - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/log10 - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.log10 + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/log10 + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.log10 (; 110 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 110 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -7356,280 +5157,195 @@ (local $7 f32) (local $8 f32) (local $9 f32) - (if - (i32.eqz - (tee_local $4 - (i32.lt_u - (tee_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 8388608) - ) - ) - ) - (set_local $4 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - ) - (if - (get_local $4) - (block - (if - (i32.eqz - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (return - (f32.div - (f32.const -1) - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f32.div - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.const 0) - ) - ) - ) - (set_local $2 - (i32.const -25) - ) - (set_local $1 - (i32.reinterpret/f32 - (f32.mul - (get_local $0) - (f32.const 33554432) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2139095040) - ) - (return - (get_local $0) - ) - (if - (i32.eq - (get_local $1) - (i32.const 1065353216) - ) - (return - (f32.const 0) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.shr_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 4913933) - ) - ) - (i32.const 23) - ) - (i32.const 127) - ) - ) - ) - (set_local $3 - (f32.mul - (tee_local $6 - (f32.mul - (tee_local $5 - (f32.div - (tee_local $0 - (f32.sub - (f32.reinterpret/i32 - (i32.add - (i32.and - (get_local $1) - (i32.const 8388607) - ) - (i32.const 1060439283) - ) - ) - (f32.const 1) - ) - ) - (f32.add - (f32.const 2) - (get_local $0) - ) - ) - ) - (get_local $5) - ) - ) - (get_local $6) - ) - ) - (f32.add - (f32.add - (f32.add - (f32.add - (f32.mul - (tee_local $9 - (f32.convert_s/i32 - (get_local $2) - ) - ) - (f32.const 7.903415166765626e-07) - ) - (f32.mul - (f32.add - (tee_local $0 - (f32.add - (f32.sub - (f32.sub - (get_local $0) - (tee_local $8 - (f32.reinterpret/i32 - (i32.and - (i32.reinterpret/f32 - (f32.sub - (get_local $0) - (tee_local $7 - (f32.mul - (f32.mul - (f32.const 0.5) - (get_local $0) - ) - (get_local $0) - ) - ) - ) - ) - (i32.const -4096) - ) - ) - ) - ) - (get_local $7) - ) - (f32.mul - (get_local $5) - (f32.add - (get_local $7) - (f32.add - (f32.mul - (get_local $6) - (f32.add - (f32.const 0.6666666269302368) - (f32.mul - (get_local $3) - (f32.const 0.2849878668785095) - ) - ) - ) - (f32.mul - (get_local $3) - (f32.add - (f32.const 0.40000972151756287) - (f32.mul - (get_local $3) - (f32.const 0.24279078841209412) - ) - ) - ) - ) - ) - ) - ) - ) - (get_local $8) - ) - (f32.const -3.168997136526741e-05) - ) - ) - (f32.mul - (get_local $0) - (f32.const 0.434326171875) - ) - ) - (f32.mul - (get_local $8) - (f32.const 0.434326171875) - ) - ) - (f32.mul - (get_local $9) - (f32.const 0.3010292053222656) - ) - ) + get_local $0 + i32.reinterpret/f32 + tee_local $1 + i32.const 8388608 + i32.lt_u + tee_local $4 + i32.eqz + if + get_local $1 + i32.const 31 + i32.shr_u + set_local $4 + end + get_local $4 + if + get_local $1 + i32.const 1 + i32.shl + i32.eqz + if + f32.const -1 + get_local $0 + get_local $0 + f32.mul + f32.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f32.sub + f32.const 0 + f32.div + return + end + i32.const -25 + set_local $2 + get_local $0 + f32.const 33554432 + f32.mul + i32.reinterpret/f32 + set_local $1 + else + get_local $1 + i32.const 2139095040 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1065353216 + i32.eq + if + f32.const 0 + return + end + end + end + get_local $2 + get_local $1 + i32.const 4913933 + i32.add + tee_local $1 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + i32.add + set_local $2 + get_local $1 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + f32.reinterpret/i32 + f32.const 1 + f32.sub + tee_local $0 + f32.const 2 + get_local $0 + f32.add + f32.div + tee_local $5 + get_local $5 + f32.mul + tee_local $6 + get_local $6 + f32.mul + set_local $3 + get_local $2 + f32.convert_s/i32 + tee_local $9 + f32.const 7.903415166765626e-07 + f32.mul + get_local $0 + get_local $0 + f32.const 0.5 + get_local $0 + f32.mul + get_local $0 + f32.mul + tee_local $7 + f32.sub + i32.reinterpret/f32 + i32.const -4096 + i32.and + f32.reinterpret/i32 + tee_local $8 + f32.sub + get_local $7 + f32.sub + get_local $5 + get_local $7 + get_local $6 + f32.const 0.6666666269302368 + get_local $3 + f32.const 0.2849878668785095 + f32.mul + f32.add + f32.mul + get_local $3 + f32.const 0.40000972151756287 + get_local $3 + f32.const 0.24279078841209412 + f32.mul + f32.add + f32.mul + f32.add + f32.add + f32.mul + f32.add + tee_local $0 + get_local $8 + f32.add + f32.const -3.168997136526741e-05 + f32.mul + f32.add + get_local $0 + f32.const 0.434326171875 + f32.mul + f32.add + get_local $8 + f32.const 0.434326171875 + f32.mul + f32.add + get_local $9 + f32.const 0.3010292053222656 + f32.mul + f32.add ) - (func $std/math/test_log10f (; 111 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.log10 - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_log10f (; 111 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.log10 + get_local $1 + get_local $2 + call $std/math/check ) - (func $std/math/test_log1p (; 112 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log1p (; 112 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.log1p - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/log1p - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.log1p + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/log1p + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $std/math/test_log1pf (; 113 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.log1p - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_log1pf (; 113 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.log1p + get_local $1 + get_local $2 + call $std/math/check ) - (func $~lib/math/NativeMath.log2 (; 114 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 114 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -7639,334 +5355,226 @@ (local $7 f64) (local $8 f64) (local $9 f64) - (if - (i32.eqz - (tee_local $3 - (i32.lt_u - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $6 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (i32.const 1048576) - ) - ) - ) - (set_local $3 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - ) - (if - (get_local $3) - (block - (if - (i64.eq - (i64.shl - (get_local $6) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $5 - (i32.const -54) - ) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (tee_local $6 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (block - (if - (tee_local $3 - (i32.eq - (get_local $1) - (i32.const 1072693248) - ) - ) - (set_local $3 - (i64.eq - (i64.shl - (get_local $6) - (i64.const 32) - ) - (i64.const 0) - ) - ) - ) - (if - (get_local $3) - (return - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.sub - (i32.shr_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 614242) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $0 - (f64.mul - (tee_local $7 - (f64.mul - (tee_local $4 - (f64.div - (tee_local $2 - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.shl - (i64.extend_u/i32 - (i32.add - (i32.and - (get_local $1) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (i64.const 32) - ) - (i64.and - (get_local $6) - (i64.const 4294967295) - ) - ) - ) - (f64.const 1) - ) - ) - (f64.add - (f64.const 2) - (get_local $2) - ) - ) - ) - (get_local $4) - ) - ) - (get_local $7) - ) - ) - (set_local $4 - (f64.add - (f64.mul - (f64.add - (tee_local $0 - (f64.add - (f64.sub - (f64.sub - (get_local $2) - (tee_local $9 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (f64.sub - (get_local $2) - (tee_local $8 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $2) - ) - (get_local $2) - ) - ) - ) - ) - (i64.const -4294967296) - ) - ) - ) - ) - (get_local $8) - ) - (f64.mul - (get_local $4) - (f64.add - (get_local $8) - (f64.add - (f64.mul - (get_local $7) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $0) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $0) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (get_local $9) - ) - (f64.const 1.6751713164886512e-10) - ) - (f64.mul - (get_local $0) - (f64.const 1.4426950407214463) - ) - ) - ) - (set_local $0 - (f64.add - (tee_local $7 - (f64.convert_s/i32 - (get_local $5) - ) - ) - (tee_local $2 - (f64.mul - (get_local $9) - (f64.const 1.4426950407214463) - ) - ) - ) - ) - (f64.add - (tee_local $4 - (f64.add - (get_local $4) - (f64.add - (f64.sub - (get_local $7) - (get_local $0) - ) - (get_local $2) - ) - ) - ) - (tee_local $2 - (get_local $0) - ) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $6 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 1048576 + i32.lt_u + tee_local $3 + i32.eqz + if + get_local $1 + i32.const 31 + i32.shr_u + set_local $3 + end + get_local $3 + if + get_local $6 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + i32.const -54 + set_local $5 + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + tee_local $6 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + else + get_local $1 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1072693248 + i32.eq + tee_local $3 + if + get_local $6 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + set_local $3 + end + get_local $3 + if + f64.const 0 + return + end + end + end + get_local $5 + get_local $1 + i32.const 614242 + i32.add + tee_local $1 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + i32.add + set_local $5 + get_local $1 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $6 + i64.const 4294967295 + i64.and + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub + tee_local $2 + f64.const 2 + get_local $2 + f64.add + f64.div + tee_local $4 + get_local $4 + f64.mul + tee_local $7 + get_local $7 + f64.mul + set_local $0 + get_local $2 + get_local $2 + f64.const 0.5 + get_local $2 + f64.mul + get_local $2 + f64.mul + tee_local $8 + f64.sub + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $9 + f64.sub + get_local $8 + f64.sub + get_local $4 + get_local $8 + get_local $7 + f64.const 0.6666666666666735 + get_local $0 + f64.const 0.2857142874366239 + get_local $0 + f64.const 0.1818357216161805 + get_local $0 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + get_local $0 + f64.const 0.3999999999940942 + get_local $0 + f64.const 0.22222198432149784 + get_local $0 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + f64.mul + f64.add + tee_local $0 + get_local $9 + f64.add + f64.const 1.6751713164886512e-10 + f64.mul + get_local $0 + f64.const 1.4426950407214463 + f64.mul + f64.add + set_local $4 + get_local $5 + f64.convert_s/i32 + tee_local $7 + get_local $9 + f64.const 1.4426950407214463 + f64.mul + tee_local $2 + f64.add + set_local $0 + get_local $4 + get_local $7 + get_local $0 + f64.sub + get_local $2 + f64.add + f64.add + tee_local $4 + get_local $0 + tee_local $2 + f64.add ) - (func $std/math/test_log2 (; 115 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log2 (; 115 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.log2 - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/log2 - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.log2 + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/log2 + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.log2 (; 116 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 116 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -7975,310 +5583,219 @@ (local $6 f32) (local $7 f32) (local $8 f32) - (if - (i32.eqz - (tee_local $4 - (i32.lt_u - (tee_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 8388608) - ) - ) - ) - (set_local $4 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - ) - (if - (get_local $4) - (block - (if - (i32.eqz - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (return - (f32.div - (f32.const -1) - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f32.div - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.const 0) - ) - ) - ) - (set_local $2 - (i32.const -25) - ) - (set_local $1 - (i32.reinterpret/f32 - (f32.mul - (get_local $0) - (f32.const 33554432) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2139095040) - ) - (return - (get_local $0) - ) - (if - (i32.eq - (get_local $1) - (i32.const 1065353216) - ) - (return - (f32.const 0) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.shr_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 4913933) - ) - ) - (i32.const 23) - ) - (i32.const 127) - ) - ) - ) - (set_local $3 - (f32.mul - (tee_local $6 - (f32.mul - (tee_local $5 - (f32.div - (tee_local $0 - (f32.sub - (f32.reinterpret/i32 - (i32.add - (i32.and - (get_local $1) - (i32.const 8388607) - ) - (i32.const 1060439283) - ) - ) - (f32.const 1) - ) - ) - (f32.add - (f32.const 2) - (get_local $0) - ) - ) - ) - (get_local $5) - ) - ) - (get_local $6) - ) - ) - (f32.add - (f32.add - (f32.add - (f32.mul - (f32.add - (tee_local $0 - (f32.add - (f32.sub - (f32.sub - (get_local $0) - (tee_local $8 - (f32.reinterpret/i32 - (i32.and - (i32.reinterpret/f32 - (f32.sub - (get_local $0) - (tee_local $7 - (f32.mul - (f32.mul - (f32.const 0.5) - (get_local $0) - ) - (get_local $0) - ) - ) - ) - ) - (i32.const -4096) - ) - ) - ) - ) - (get_local $7) - ) - (f32.mul - (get_local $5) - (f32.add - (get_local $7) - (f32.add - (f32.mul - (get_local $6) - (f32.add - (f32.const 0.6666666269302368) - (f32.mul - (get_local $3) - (f32.const 0.2849878668785095) - ) - ) - ) - (f32.mul - (get_local $3) - (f32.add - (f32.const 0.40000972151756287) - (f32.mul - (get_local $3) - (f32.const 0.24279078841209412) - ) - ) - ) - ) - ) - ) - ) - ) - (get_local $8) - ) - (f32.const -1.7605285393074155e-04) - ) - (f32.mul - (get_local $0) - (f32.const 1.44287109375) - ) - ) - (f32.mul - (get_local $8) - (f32.const 1.44287109375) - ) - ) - (f32.convert_s/i32 - (get_local $2) - ) - ) + get_local $0 + i32.reinterpret/f32 + tee_local $1 + i32.const 8388608 + i32.lt_u + tee_local $4 + i32.eqz + if + get_local $1 + i32.const 31 + i32.shr_u + set_local $4 + end + get_local $4 + if + get_local $1 + i32.const 1 + i32.shl + i32.eqz + if + f32.const -1 + get_local $0 + get_local $0 + f32.mul + f32.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f32.sub + f32.const 0 + f32.div + return + end + i32.const -25 + set_local $2 + get_local $0 + f32.const 33554432 + f32.mul + i32.reinterpret/f32 + set_local $1 + else + get_local $1 + i32.const 2139095040 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1065353216 + i32.eq + if + f32.const 0 + return + end + end + end + get_local $2 + get_local $1 + i32.const 4913933 + i32.add + tee_local $1 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + i32.add + set_local $2 + get_local $1 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + f32.reinterpret/i32 + f32.const 1 + f32.sub + tee_local $0 + f32.const 2 + get_local $0 + f32.add + f32.div + tee_local $5 + get_local $5 + f32.mul + tee_local $6 + get_local $6 + f32.mul + set_local $3 + get_local $0 + get_local $0 + f32.const 0.5 + get_local $0 + f32.mul + get_local $0 + f32.mul + tee_local $7 + f32.sub + i32.reinterpret/f32 + i32.const -4096 + i32.and + f32.reinterpret/i32 + tee_local $8 + f32.sub + get_local $7 + f32.sub + get_local $5 + get_local $7 + get_local $6 + f32.const 0.6666666269302368 + get_local $3 + f32.const 0.2849878668785095 + f32.mul + f32.add + f32.mul + get_local $3 + f32.const 0.40000972151756287 + get_local $3 + f32.const 0.24279078841209412 + f32.mul + f32.add + f32.mul + f32.add + f32.add + f32.mul + f32.add + tee_local $0 + get_local $8 + f32.add + f32.const -1.7605285393074155e-04 + f32.mul + get_local $0 + f32.const 1.44287109375 + f32.mul + f32.add + get_local $8 + f32.const 1.44287109375 + f32.mul + f32.add + get_local $2 + f32.convert_s/i32 + f32.add ) - (func $std/math/test_log2f (; 117 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.log2 - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_log2f (; 117 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.log2 + get_local $1 + get_local $2 + call $std/math/check ) - (func $std/math/test_max (; 118 ;) (; has Stack IR ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_max (; 118 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 i32) - (if - (tee_local $3 - (call $std/math/check - (f64.max - (get_local $0) - (get_local $1) - ) - (get_local $2) - (f64.const 0) - ) - ) - (set_local $3 - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/max - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (f64.const 0) - ) - ) - ) - (get_local $3) + get_local $0 + get_local $1 + f64.max + get_local $2 + f64.const 0 + call $std/math/check + tee_local $3 + if + get_local $0 + get_local $1 + call $~lib/bindings/Math/max + tee_local $0 + get_local $2 + f64.const 0 + call $std/math/check + set_local $3 + end + get_local $3 ) - (func $std/math/test_maxf (; 119 ;) (; has Stack IR ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (call $std/math/check - (f32.max - (get_local $0) - (get_local $1) - ) - (get_local $2) - (f32.const 0) - ) + (func $std/math/test_maxf (; 119 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + get_local $0 + get_local $1 + f32.max + get_local $2 + f32.const 0 + call $std/math/check ) - (func $std/math/test_min (; 120 ;) (; has Stack IR ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_min (; 120 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 i32) - (if - (tee_local $3 - (call $std/math/check - (f64.min - (get_local $0) - (get_local $1) - ) - (get_local $2) - (f64.const 0) - ) - ) - (set_local $3 - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/min - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (f64.const 0) - ) - ) - ) - (get_local $3) + get_local $0 + get_local $1 + f64.min + get_local $2 + f64.const 0 + call $std/math/check + tee_local $3 + if + get_local $0 + get_local $1 + call $~lib/bindings/Math/min + tee_local $0 + get_local $2 + f64.const 0 + call $std/math/check + set_local $3 + end + get_local $3 ) - (func $std/math/test_minf (; 121 ;) (; has Stack IR ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (call $std/math/check - (f32.min - (get_local $0) - (get_local $1) - ) - (get_local $2) - (f32.const 0) - ) + (func $std/math/test_minf (; 121 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + get_local $0 + get_local $1 + f32.min + get_local $2 + f32.const 0 + call $std/math/check ) - (func $~lib/math/NativeMath.mod (; 122 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 122 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -8287,328 +5804,227 @@ (local $7 i64) (local $8 i64) (local $9 i64) - (block $folding-inner0 - (set_local $4 - (i64.and - (i64.shr_u - (tee_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $5 - (i64.and - (i64.shr_u - (tee_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $8 - (i64.shr_u - (get_local $2) - (i64.const 63) - ) - ) - (if - (i32.eqz - (tee_local $6 - (i64.eq - (tee_local $7 - (i64.shl - (get_local $3) - (i64.const 1) - ) - ) - (i64.const 0) - ) - ) - ) - (set_local $6 - (i64.eq - (get_local $4) - (i64.const 2047) - ) - ) - ) - (if - (i32.eqz - (get_local $6) - ) - (set_local $6 - (f64.ne - (get_local $1) - (get_local $1) - ) - ) - ) - (if - (get_local $6) - (return - (f64.div - (tee_local $0 - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - (get_local $0) - ) - ) - ) - (if - (i64.le_u - (tee_local $9 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (get_local $7) - ) - (block - (br_if $folding-inner0 - (i64.eq - (get_local $9) - (get_local $7) - ) - ) - (return - (get_local $0) - ) - ) - ) - (set_local $2 - (if (result i64) - (i64.eqz - (get_local $4) - ) - (i64.shl - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (tee_local $4 - (i64.sub - (get_local $4) - (i64.clz - (i64.shl - (get_local $2) - (i64.const 12) - ) - ) - ) - ) - ) - (i64.const 1) - ) - ) - (i64.or - (i64.and - (get_local $2) - (i64.const 4503599627370495) - ) - (i64.const 4503599627370496) - ) - ) - ) - (set_local $3 - (if (result i64) - (i64.eqz - (get_local $5) - ) - (i64.shl - (get_local $3) - (i64.add - (i64.sub - (i64.const 0) - (tee_local $5 - (i64.sub - (get_local $5) - (i64.clz - (i64.shl - (get_local $3) - (i64.const 12) - ) - ) - ) - ) - ) - (i64.const 1) - ) - ) - (i64.or - (i64.and - (get_local $3) - (i64.const 4503599627370495) - ) - (i64.const 4503599627370496) - ) - ) - ) - (loop $continue|0 - (if - (i64.gt_s - (get_local $4) - (get_local $5) - ) - (block - (if - (i64.ge_u - (get_local $2) - (get_local $3) - ) - (block - (br_if $folding-inner0 - (i64.eq - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (set_local $4 - (i64.sub - (get_local $4) - (i64.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (get_local $3) - ) - (block - (br_if $folding-inner0 - (i64.eq - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (tee_local $3 - (i64.clz - (i64.shl - (get_local $2) - (i64.const 11) - ) - ) - ) - ) - ) - (return - (f64.reinterpret/i64 - (i64.or - (tee_local $2 - (if (result i64) - (i64.gt_s - (tee_local $4 - (i64.sub - (get_local $4) - (get_local $3) - ) - ) - (i64.const 0) - ) - (i64.or - (i64.sub - (get_local $2) - (i64.const 4503599627370496) - ) - (i64.shl - (get_local $4) - (i64.const 52) - ) - ) - (i64.shr_u - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (get_local $4) - ) - (i64.const 1) - ) - ) - ) - ) - (i64.shl - (get_local $8) - (i64.const 63) - ) - ) - ) - ) - ) - (f64.mul - (f64.const 0) - (get_local $0) - ) + block $folding-inner0 + get_local $0 + i64.reinterpret/f64 + tee_local $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $4 + get_local $1 + i64.reinterpret/f64 + tee_local $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $5 + get_local $2 + i64.const 63 + i64.shr_u + set_local $8 + get_local $3 + i64.const 1 + i64.shl + tee_local $7 + i64.const 0 + i64.eq + tee_local $6 + i32.eqz + if + get_local $4 + i64.const 2047 + i64.eq + set_local $6 + end + get_local $6 + i32.eqz + if + get_local $1 + get_local $1 + f64.ne + set_local $6 + end + get_local $6 + if + get_local $0 + get_local $1 + f64.mul + tee_local $0 + get_local $0 + f64.div + return + end + get_local $2 + i64.const 1 + i64.shl + tee_local $9 + get_local $7 + i64.le_u + if + get_local $9 + get_local $7 + i64.eq + br_if $folding-inner0 + get_local $0 + return + end + get_local $4 + i64.eqz + if (result i64) + get_local $2 + i64.const 0 + get_local $4 + get_local $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + tee_local $4 + i64.sub + i64.const 1 + i64.add + i64.shl + else + get_local $2 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + set_local $2 + get_local $5 + i64.eqz + if (result i64) + get_local $3 + i64.const 0 + get_local $5 + get_local $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + tee_local $5 + i64.sub + i64.const 1 + i64.add + i64.shl + else + get_local $3 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + set_local $3 + loop $continue|0 + get_local $4 + get_local $5 + i64.gt_s + if + get_local $2 + get_local $3 + i64.ge_u + if + get_local $2 + get_local $3 + i64.eq + br_if $folding-inner0 + get_local $2 + get_local $3 + i64.sub + set_local $2 + end + get_local $2 + i64.const 1 + i64.shl + set_local $2 + get_local $4 + i64.const 1 + i64.sub + set_local $4 + br $continue|0 + end + end + get_local $2 + get_local $3 + i64.ge_u + if + get_local $2 + get_local $3 + i64.eq + br_if $folding-inner0 + get_local $2 + get_local $3 + i64.sub + set_local $2 + end + get_local $2 + get_local $2 + i64.const 11 + i64.shl + i64.clz + tee_local $3 + i64.shl + set_local $2 + get_local $4 + get_local $3 + i64.sub + tee_local $4 + i64.const 0 + i64.gt_s + if (result i64) + get_local $2 + i64.const 4503599627370496 + i64.sub + get_local $4 + i64.const 52 + i64.shl + i64.or + else + get_local $2 + i64.const 0 + get_local $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + end + tee_local $2 + get_local $8 + i64.const 63 + i64.shl + i64.or + f64.reinterpret/i64 + return + end + f64.const 0 + get_local $0 + f64.mul ) - (func $std/math/test_mod (; 123 ;) (; has Stack IR ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) - (if - (tee_local $3 - (call $std/math/check - (call $~lib/math/NativeMath.mod - (get_local $0) - (get_local $1) - ) - (get_local $2) - (f64.const 0) - ) - ) - (set_local $3 - (call $std/math/check - (tee_local $0 - (call $std/math/mod - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (f64.const 0) - ) - ) - ) - (get_local $3) + (func $std/math/test_mod (; 123 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.mod + get_local $2 + f64.const 0 + call $std/math/check + tee_local $3 + if + get_local $0 + get_local $1 + call $std/math/mod + tee_local $0 + get_local $2 + f64.const 0 + call $std/math/check + set_local $3 + end + get_local $3 ) - (func $~lib/math/NativeMathf.mod (; 124 ;) (; has Stack IR ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 124 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8616,297 +6032,206 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (block $folding-inner0 - (set_local $3 - (i32.and - (i32.shr_u - (tee_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $6 - (i32.and - (i32.shr_u - (tee_local $4 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $8 - (i32.and - (get_local $2) - (i32.const -2147483648) - ) - ) - (if - (i32.eqz - (tee_local $5 - (i32.eqz - (tee_local $7 - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $5 - (i32.eq - (get_local $3) - (i32.const 255) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (set_local $5 - (f32.ne - (get_local $1) - (get_local $1) - ) - ) - ) - (if - (i32.and - (get_local $5) - (i32.const 1) - ) - (return - (f32.div - (tee_local $0 - (f32.mul - (get_local $0) - (get_local $1) - ) - ) - (get_local $0) - ) - ) - ) - (if - (i32.le_u - (tee_local $5 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (get_local $7) - ) - (block - (br_if $folding-inner0 - (i32.eq - (get_local $5) - (get_local $7) - ) - ) - (return - (get_local $0) - ) - ) - ) - (set_local $2 - (if (result i32) - (get_local $3) - (i32.or - (i32.and - (get_local $2) - (i32.const 8388607) - ) - (i32.const 8388608) - ) - (i32.shl - (get_local $2) - (i32.sub - (i32.const 1) - (tee_local $3 - (i32.sub - (get_local $3) - (i32.clz - (i32.shl - (get_local $2) - (i32.const 9) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $4 - (if (result i32) - (get_local $6) - (i32.or - (i32.and - (get_local $4) - (i32.const 8388607) - ) - (i32.const 8388608) - ) - (i32.shl - (get_local $4) - (i32.sub - (i32.const 1) - (tee_local $6 - (i32.sub - (get_local $6) - (i32.clz - (i32.shl - (get_local $4) - (i32.const 9) - ) - ) - ) - ) - ) - ) - ) - ) - (loop $continue|0 - (if - (i32.gt_s - (get_local $3) - (get_local $6) - ) - (block - (if - (i32.ge_u - (get_local $2) - (get_local $4) - ) - (block - (br_if $folding-inner0 - (i32.eq - (get_local $2) - (get_local $4) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $4) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (get_local $4) - ) - (block - (br_if $folding-inner0 - (i32.eq - (get_local $2) - (get_local $4) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $4) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (tee_local $5 - (i32.clz - (i32.shl - (get_local $2) - (i32.const 8) - ) - ) - ) - ) - ) - (return - (f32.reinterpret/i32 - (i32.or - (tee_local $2 - (if (result i32) - (i32.gt_s - (tee_local $3 - (i32.sub - (get_local $3) - (get_local $5) - ) - ) - (i32.const 0) - ) - (i32.or - (i32.sub - (get_local $2) - (i32.const 8388608) - ) - (i32.shl - (get_local $3) - (i32.const 23) - ) - ) - (i32.shr_u - (get_local $2) - (i32.sub - (i32.const 1) - (get_local $3) - ) - ) - ) - ) - (get_local $8) - ) - ) - ) - ) - (f32.mul - (f32.const 0) - (get_local $0) - ) + block $folding-inner0 + get_local $0 + i32.reinterpret/f32 + tee_local $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $3 + get_local $1 + i32.reinterpret/f32 + tee_local $4 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $6 + get_local $2 + i32.const -2147483648 + i32.and + set_local $8 + get_local $4 + i32.const 1 + i32.shl + tee_local $7 + i32.eqz + tee_local $5 + i32.eqz + if + get_local $3 + i32.const 255 + i32.eq + set_local $5 + end + get_local $5 + i32.eqz + if + get_local $1 + get_local $1 + f32.ne + set_local $5 + end + get_local $5 + i32.const 1 + i32.and + if + get_local $0 + get_local $1 + f32.mul + tee_local $0 + get_local $0 + f32.div + return + end + get_local $2 + i32.const 1 + i32.shl + tee_local $5 + get_local $7 + i32.le_u + if + get_local $5 + get_local $7 + i32.eq + br_if $folding-inner0 + get_local $0 + return + end + get_local $3 + if (result i32) + get_local $2 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + get_local $2 + i32.const 1 + get_local $3 + get_local $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + tee_local $3 + i32.sub + i32.shl + end + set_local $2 + get_local $6 + if (result i32) + get_local $4 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + get_local $4 + i32.const 1 + get_local $6 + get_local $4 + i32.const 9 + i32.shl + i32.clz + i32.sub + tee_local $6 + i32.sub + i32.shl + end + set_local $4 + loop $continue|0 + get_local $3 + get_local $6 + i32.gt_s + if + get_local $2 + get_local $4 + i32.ge_u + if + get_local $2 + get_local $4 + i32.eq + br_if $folding-inner0 + get_local $2 + get_local $4 + i32.sub + set_local $2 + end + get_local $2 + i32.const 1 + i32.shl + set_local $2 + get_local $3 + i32.const 1 + i32.sub + set_local $3 + br $continue|0 + end + end + get_local $2 + get_local $4 + i32.ge_u + if + get_local $2 + get_local $4 + i32.eq + br_if $folding-inner0 + get_local $2 + get_local $4 + i32.sub + set_local $2 + end + get_local $2 + get_local $2 + i32.const 8 + i32.shl + i32.clz + tee_local $5 + i32.shl + set_local $2 + get_local $3 + get_local $5 + i32.sub + tee_local $3 + i32.const 0 + i32.gt_s + if (result i32) + get_local $2 + i32.const 8388608 + i32.sub + get_local $3 + i32.const 23 + i32.shl + i32.or + else + get_local $2 + i32.const 1 + get_local $3 + i32.sub + i32.shr_u + end + tee_local $2 + get_local $8 + i32.or + f32.reinterpret/i32 + return + end + f32.const 0 + get_local $0 + f32.mul ) - (func $std/math/test_modf (; 125 ;) (; has Stack IR ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.mod - (get_local $0) - (get_local $1) - ) - (get_local $2) - (f32.const 0) - ) + (func $std/math/test_modf (; 125 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.mod + get_local $2 + f32.const 0 + call $std/math/check ) - (func $~lib/math/NativeMath.pow (; 126 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 126 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -8926,1422 +6251,970 @@ (local $18 i32) (local $19 f64) (local $20 i32) - (block $folding-inner1 - (block $folding-inner0 - (set_local $18 - (i32.wrap/i64 - (i64.shr_u - (tee_local $17 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $20 - (i32.wrap/i64 - (get_local $17) - ) - ) - (set_local $4 - (i32.and - (get_local $18) - (i32.const 2147483647) - ) - ) - (if - (i32.eqz - (i32.or - (tee_local $12 - (i32.and - (tee_local $11 - (i32.wrap/i64 - (i64.shr_u - (tee_local $17 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.const 32) - ) - ) - ) - (i32.const 2147483647) - ) - ) - (tee_local $7 - (i32.wrap/i64 - (get_local $17) - ) - ) - ) - ) - (return - (f64.const 1) - ) - ) - (if - (i32.eqz - (tee_local $8 - (i32.gt_s - (get_local $4) - (i32.const 2146435072) - ) - ) - ) - (if - (tee_local $8 - (i32.eq - (get_local $4) - (i32.const 2146435072) - ) - ) - (set_local $8 - (i32.ne - (get_local $20) - (i32.const 0) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $8) - ) - (set_local $8 - (i32.gt_s - (get_local $12) - (i32.const 2146435072) - ) - ) - ) - (if - (i32.eqz - (get_local $8) - ) - (if - (tee_local $8 - (i32.eq - (get_local $12) - (i32.const 2146435072) - ) - ) - (set_local $8 - (i32.ne - (get_local $7) - (i32.const 0) - ) - ) - ) - ) - (if - (get_local $8) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (if - (i32.lt_s - (get_local $18) - (i32.const 0) - ) - (if - (i32.ge_s - (get_local $12) - (i32.const 1128267776) - ) - (set_local $16 - (i32.const 2) - ) - (if - (i32.ge_s - (get_local $12) - (i32.const 1072693248) - ) - (block - (set_local $8 - (i32.sub - (select - (i32.const 52) - (i32.const 20) - (tee_local $5 - (i32.gt_s - (tee_local $10 - (i32.sub - (i32.shr_s - (get_local $12) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (i32.const 20) - ) - ) - ) - (get_local $10) - ) - ) - (if - (i32.eq - (i32.shl - (tee_local $5 - (i32.shr_s - (tee_local $10 - (select - (get_local $7) - (get_local $12) - (get_local $5) - ) - ) - (get_local $8) - ) - ) - (get_local $8) - ) - (get_local $10) - ) - (set_local $16 - (i32.sub - (i32.const 2) - (i32.and - (get_local $5) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $7) - ) - (block - (if - (i32.eq - (get_local $12) - (i32.const 2146435072) - ) - (if - (i32.or - (i32.sub - (get_local $4) - (i32.const 1072693248) - ) - (get_local $20) - ) - (if - (i32.ge_s - (get_local $4) - (i32.const 1072693248) - ) - (block - (if - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (set_local $1 - (f64.const 0) - ) - ) - (return - (get_local $1) - ) - ) - (return - (tee_local $0 - (if (result f64) - (i32.ge_s - (get_local $11) - (i32.const 0) - ) - (f64.const 0) - (f64.neg - (get_local $1) - ) - ) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 1072693248) - ) - (block - (if - (i32.ge_s - (get_local $11) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 1073741824) - ) - (return - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 1071644672) - ) - (if - (i32.ge_s - (get_local $18) - (i32.const 0) - ) - (return - (f64.sqrt - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f64.abs - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $20) - ) - (block - (if - (i32.eqz - (tee_local $5 - (i32.eq - (get_local $4) - (i32.const 2146435072) - ) - ) - ) - (set_local $5 - (i32.eqz - (get_local $4) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (set_local $5 - (i32.eq - (get_local $4) - (i32.const 1072693248) - ) - ) - ) - (if - (get_local $5) - (block - (if - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (set_local $2 - (f64.div - (f64.const 1) - (get_local $2) - ) - ) - ) - (if - (i32.lt_s - (get_local $18) - (i32.const 0) - ) - (if - (i32.or - (i32.sub - (get_local $4) - (i32.const 1072693248) - ) - (get_local $16) - ) - (if - (i32.eq - (get_local $16) - (i32.const 1) - ) - (set_local $2 - (f64.neg - (get_local $2) - ) - ) - ) - (set_local $2 - (f64.div - (tee_local $0 - (f64.sub - (get_local $2) - (get_local $2) - ) - ) - (get_local $0) - ) - ) - ) - ) - (return - (get_local $2) - ) - ) - ) - ) - ) - (set_local $13 - (f64.const 1) - ) - (if - (i32.lt_s - (get_local $18) - (i32.const 0) - ) - (block - (if - (i32.eqz - (get_local $16) - ) - (return - (f64.div - (tee_local $0 - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $16) - (i32.const 1) - ) - (set_local $13 - (f64.const -1) - ) - ) - ) - ) - (set_local $2 - (if (result f64) - (i32.gt_s - (get_local $12) - (i32.const 1105199104) - ) - (block (result f64) - (if - (i32.gt_s - (get_local $12) - (i32.const 1139802112) - ) - (block - (if - (i32.le_s - (get_local $4) - (i32.const 1072693247) - ) - (return - (tee_local $0 - (if (result f64) - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (f64.const inf) - (f64.const 0) - ) - ) - ) - ) - (if - (i32.ge_s - (get_local $4) - (i32.const 1072693248) - ) - (return - (tee_local $0 - (if (result f64) - (i32.gt_s - (get_local $11) - (i32.const 0) - ) - (f64.const inf) - (f64.const 0) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 1072693247) - ) - (return - (tee_local $0 - (if (result f64) - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 1072693248) - ) - (return - (tee_local $0 - (if (result f64) - (i32.gt_s - (get_local $11) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - ) - (set_local $0 - (f64.mul - (f64.mul - (tee_local $3 - (f64.sub - (get_local $2) - (f64.const 1) - ) - ) - (get_local $3) - ) - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $3) - (f64.sub - (f64.const 0.3333333333333333) - (f64.mul - (get_local $3) - (f64.const 0.25) - ) - ) - ) - ) - ) - ) - (set_local $9 - (f64.add - (tee_local $15 - (f64.mul - (f64.const 1.4426950216293335) - (get_local $3) - ) - ) - (tee_local $6 - (f64.sub - (f64.mul - (get_local $3) - (f64.const 1.9259629911266175e-08) - ) - (f64.mul - (get_local $0) - (f64.const 1.4426950408889634) - ) - ) - ) - ) - ) - (f64.sub - (get_local $6) - (f64.sub - (tee_local $9 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $9) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $15) - ) - ) - ) - (block (result f64) - (set_local $7 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 1048576) - ) - (block - (set_local $7 - (i32.const -53) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (tee_local $2 - (f64.mul - (get_local $2) - (f64.const 9007199254740992) - ) - ) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.sub - (i32.shr_s - (get_local $4) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $4 - (i32.or - (tee_local $5 - (i32.and - (get_local $4) - (i32.const 1048575) - ) - ) - (i32.const 1072693248) - ) - ) - (set_local $10 - (if (result i32) - (i32.le_s - (get_local $5) - (i32.const 235662) - ) - (i32.const 0) - (if (result i32) - (i32.lt_s - (get_local $5) - (i32.const 767610) - ) - (i32.const 1) - (block (result i32) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const -1048576) - ) - ) - (i32.const 0) - ) - ) - ) - ) - (set_local $9 - (f64.mul - (tee_local $15 - (f64.sub - (tee_local $2 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $2) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - ) - (tee_local $0 - (select - (f64.const 1.5) - (f64.const 1) - (get_local $10) - ) - ) - ) - ) - (tee_local $6 - (f64.div - (f64.const 1) - (f64.add - (get_local $2) - (get_local $0) - ) - ) - ) - ) - ) - (set_local $2 - (f64.sub - (get_local $2) - (f64.sub - (tee_local $3 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.add - (i32.add - (i32.or - (i32.shr_s - (get_local $4) - (i32.const 1) - ) - (i32.const 536870912) - ) - (i32.const 524288) - ) - (i32.shl - (get_local $10) - (i32.const 18) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (get_local $0) - ) - ) - ) - (set_local $19 - (f64.mul - (f64.mul - (tee_local $14 - (f64.mul - (get_local $9) - (get_local $9) - ) - ) - (get_local $14) - ) - (f64.add - (f64.const 0.5999999999999946) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.4285714285785502) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.33333332981837743) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.272728123808534) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.23066074577556175) - (f64.mul - (get_local $14) - (f64.const 0.20697501780033842) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $0 - (f64.mul - (get_local $6) - (f64.sub - (f64.sub - (get_local $15) - (f64.mul - (tee_local $6 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $9) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $3) - ) - ) - (f64.mul - (get_local $6) - (get_local $2) - ) - ) - ) - ) - (set_local $3 - (f64.add - (f64.add - (f64.const 3) - (tee_local $14 - (f64.mul - (get_local $6) - (get_local $6) - ) - ) - ) - (tee_local $19 - (f64.add - (get_local $19) - (f64.mul - (get_local $0) - (f64.add - (get_local $6) - (get_local $9) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f64.sub - (get_local $19) - (f64.sub - (f64.sub - (tee_local $3 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $3) - ) - (i64.const -4294967296) - ) - ) - ) - (f64.const 3) - ) - (get_local $14) - ) - ) - ) - (set_local $0 - (f64.add - (tee_local $15 - (f64.mul - (get_local $6) - (get_local $3) - ) - ) - (tee_local $6 - (f64.add - (f64.mul - (get_local $0) - (get_local $3) - ) - (f64.mul - (get_local $2) - (get_local $9) - ) - ) - ) - ) - ) - (set_local $6 - (f64.sub - (get_local $6) - (f64.sub - (tee_local $0 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $15) - ) - ) - ) - (set_local $9 - (f64.add - (f64.add - (f64.add - (tee_local $19 - (f64.mul - (f64.const 0.9617967009544373) - (get_local $0) - ) - ) - (tee_local $2 - (f64.add - (f64.add - (f64.mul - (f64.const -7.028461650952758e-09) - (get_local $0) - ) - (f64.mul - (get_local $6) - (f64.const 0.9617966939259756) - ) - ) - (select - (f64.const 1.350039202129749e-08) - (f64.const 0) - (get_local $10) - ) - ) - ) - ) - (tee_local $0 - (select - (f64.const 0.5849624872207642) - (f64.const 0) - (get_local $10) - ) - ) - ) - (tee_local $3 - (f64.convert_s/i32 - (get_local $7) - ) - ) - ) - ) - (f64.sub - (get_local $2) - (f64.sub - (f64.sub - (f64.sub - (tee_local $9 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $9) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $3) - ) - (get_local $0) - ) - (get_local $19) - ) - ) - ) - ) - ) - (set_local $8 - (i32.wrap/i64 - (tee_local $17 - (i64.reinterpret/f64 - (tee_local $2 - (f64.add - (tee_local $6 - (f64.add - (f64.mul - (f64.sub - (get_local $1) - (tee_local $0 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $1) - ) - (i64.const -4294967296) - ) - ) - ) - ) - (get_local $9) - ) - (f64.mul - (get_local $1) - (get_local $2) - ) - ) - ) - (tee_local $0 - (f64.mul - (get_local $0) - (get_local $9) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.ge_s - (tee_local $5 - (i32.wrap/i64 - (i64.shr_u - (get_local $17) - (i64.const 32) - ) - ) - ) - (i32.const 1083179008) - ) - (block - (br_if $folding-inner1 - (i32.or - (i32.sub - (get_local $5) - (i32.const 1083179008) - ) - (get_local $8) - ) - ) - (br_if $folding-inner1 - (f64.gt - (f64.add - (get_local $6) - (f64.const 8.008566259537294e-17) - ) - (f64.sub - (get_local $2) - (get_local $0) - ) - ) - ) - ) - (if - (i32.ge_s - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - (i32.const 1083231232) - ) - (block - (br_if $folding-inner0 - (i32.or - (i32.sub - (get_local $5) - (i32.const -1064252416) - ) - (get_local $8) - ) - ) - (br_if $folding-inner0 - (f64.le - (get_local $6) - (f64.sub - (get_local $2) - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $10 - (i32.sub - (i32.shr_s - (tee_local $8 - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $7 - (i32.const 0) - ) - (if - (i32.gt_s - (get_local $8) - (i32.const 1071644672) - ) - (block - (set_local $10 - (i32.sub - (i32.shr_s - (i32.and - (tee_local $7 - (i32.add - (get_local $5) - (i32.shr_s - (i32.const 1048576) - (i32.add - (get_local $10) - (i32.const 1) - ) - ) - ) - ) - (i32.const 2147483647) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $3 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.and - (get_local $7) - (i32.xor - (i32.shr_s - (i32.const 1048575) - (get_local $10) - ) - (i32.const -1) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $7 - (i32.shr_s - (i32.or - (i32.and - (get_local $7) - (i32.const 1048575) - ) - (i32.const 1048576) - ) - (i32.sub - (i32.const 20) - (get_local $10) - ) - ) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (set_local $7 - (i32.sub - (i32.const 0) - (get_local $7) - ) - ) - ) - (set_local $0 - (f64.sub - (get_local $0) - (get_local $3) - ) - ) - ) - ) - (set_local $3 - (f64.mul - (tee_local $2 - (f64.add - (tee_local $15 - (f64.mul - (tee_local $3 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (f64.add - (get_local $6) - (get_local $0) - ) - ) - (i64.const -4294967296) - ) - ) - ) - (f64.const 0.6931471824645996) - ) - ) - (tee_local $6 - (f64.add - (f64.mul - (f64.sub - (get_local $6) - (f64.sub - (get_local $3) - (get_local $0) - ) - ) - (f64.const 0.6931471805599453) - ) - (f64.mul - (get_local $3) - (f64.const -1.904654299957768e-09) - ) - ) - ) - ) - ) - (get_local $2) - ) - ) - (set_local $2 - (if (result f64) - (i32.le_s - (i32.shr_s - (tee_local $5 - (i32.add - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (tee_local $2 - (f64.sub - (f64.const 1) - (f64.sub - (f64.sub - (f64.div - (f64.mul - (get_local $2) - (tee_local $9 - (f64.sub - (get_local $2) - (f64.mul - (get_local $3) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $3) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $3) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $3) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $3) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.sub - (get_local $9) - (f64.const 2) - ) - ) - (f64.add - (tee_local $0 - (f64.sub - (get_local $6) - (f64.sub - (get_local $2) - (get_local $15) - ) - ) - ) - (f64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (get_local $2) - ) - ) - ) - ) - (i64.const 32) - ) - ) - (i32.shl - (get_local $7) - (i32.const 20) - ) - ) - ) - (i32.const 20) - ) - (i32.const 0) - ) - (call $~lib/math/NativeMath.scalbn - (get_local $2) - (get_local $7) - ) - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $2) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $5) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (return - (f64.mul - (get_local $13) - (get_local $2) - ) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) + block $folding-inner1 + block $folding-inner0 + get_local $0 + i64.reinterpret/f64 + tee_local $17 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $18 + get_local $17 + i32.wrap/i64 + set_local $20 + get_local $18 + i32.const 2147483647 + i32.and + set_local $4 + get_local $1 + i64.reinterpret/f64 + tee_local $17 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $11 + i32.const 2147483647 + i32.and + tee_local $12 + get_local $17 + i32.wrap/i64 + tee_local $7 + i32.or + i32.eqz + if + f64.const 1 + return + end + get_local $4 + i32.const 2146435072 + i32.gt_s + tee_local $8 + i32.eqz + if + get_local $4 + i32.const 2146435072 + i32.eq + tee_local $8 + if + get_local $20 + i32.const 0 + i32.ne + set_local $8 + end + end + get_local $8 + i32.eqz + if + get_local $12 + i32.const 2146435072 + i32.gt_s + set_local $8 + end + get_local $8 + i32.eqz + if + get_local $12 + i32.const 2146435072 + i32.eq + tee_local $8 + if + get_local $7 + i32.const 0 + i32.ne + set_local $8 + end + end + get_local $8 + if + get_local $0 + get_local $1 + f64.add + return + end + get_local $18 + i32.const 0 + i32.lt_s + if + get_local $12 + i32.const 1128267776 + i32.ge_s + if + i32.const 2 + set_local $16 + else + get_local $12 + i32.const 1072693248 + i32.ge_s + if + i32.const 52 + i32.const 20 + get_local $12 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + tee_local $10 + i32.const 20 + i32.gt_s + tee_local $5 + select + get_local $10 + i32.sub + set_local $8 + get_local $7 + get_local $12 + get_local $5 + select + tee_local $10 + get_local $8 + i32.shr_s + tee_local $5 + get_local $8 + i32.shl + get_local $10 + i32.eq + if + i32.const 2 + get_local $5 + i32.const 1 + i32.and + i32.sub + set_local $16 + end + end + end + end + get_local $7 + i32.eqz + if + get_local $12 + i32.const 2146435072 + i32.eq + if + get_local $4 + i32.const 1072693248 + i32.sub + get_local $20 + i32.or + if + get_local $4 + i32.const 1072693248 + i32.ge_s + if + get_local $11 + i32.const 0 + i32.lt_s + if + f64.const 0 + set_local $1 + end + get_local $1 + return + else + get_local $11 + i32.const 0 + i32.ge_s + if (result f64) + f64.const 0 + else + get_local $1 + f64.neg + end + tee_local $0 + return + end + unreachable + else + f64.const nan:0x8000000000000 + return + end + unreachable + end + get_local $12 + i32.const 1072693248 + i32.eq + if + get_local $11 + i32.const 0 + i32.ge_s + if + get_local $0 + return + end + f64.const 1 + get_local $0 + f64.div + return + end + get_local $11 + i32.const 1073741824 + i32.eq + if + get_local $0 + get_local $0 + f64.mul + return + end + get_local $11 + i32.const 1071644672 + i32.eq + if + get_local $18 + i32.const 0 + i32.ge_s + if + get_local $0 + f64.sqrt + return + end + end + end + get_local $0 + f64.abs + set_local $2 + get_local $20 + i32.eqz + if + get_local $4 + i32.const 2146435072 + i32.eq + tee_local $5 + i32.eqz + if + get_local $4 + i32.eqz + set_local $5 + end + get_local $5 + i32.eqz + if + get_local $4 + i32.const 1072693248 + i32.eq + set_local $5 + end + get_local $5 + if + get_local $11 + i32.const 0 + i32.lt_s + if + f64.const 1 + get_local $2 + f64.div + set_local $2 + end + get_local $18 + i32.const 0 + i32.lt_s + if + get_local $4 + i32.const 1072693248 + i32.sub + get_local $16 + i32.or + if + get_local $16 + i32.const 1 + i32.eq + if + get_local $2 + f64.neg + set_local $2 + end + else + get_local $2 + get_local $2 + f64.sub + tee_local $0 + get_local $0 + f64.div + set_local $2 + end + end + get_local $2 + return + end + end + f64.const 1 + set_local $13 + get_local $18 + i32.const 0 + i32.lt_s + if + get_local $16 + i32.eqz + if + get_local $0 + get_local $0 + f64.sub + tee_local $0 + get_local $0 + f64.div + return + end + get_local $16 + i32.const 1 + i32.eq + if + f64.const -1 + set_local $13 + end + end + get_local $12 + i32.const 1105199104 + i32.gt_s + if (result f64) + get_local $12 + i32.const 1139802112 + i32.gt_s + if + get_local $4 + i32.const 1072693247 + i32.le_s + if + get_local $11 + i32.const 0 + i32.lt_s + if (result f64) + f64.const inf + else + f64.const 0 + end + tee_local $0 + return + end + get_local $4 + i32.const 1072693248 + i32.ge_s + if + get_local $11 + i32.const 0 + i32.gt_s + if (result f64) + f64.const inf + else + f64.const 0 + end + tee_local $0 + return + end + end + get_local $4 + i32.const 1072693247 + i32.lt_s + if + get_local $11 + i32.const 0 + i32.lt_s + if (result f64) + get_local $13 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $13 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + tee_local $0 + return + end + get_local $4 + i32.const 1072693248 + i32.gt_s + if + get_local $11 + i32.const 0 + i32.gt_s + if (result f64) + get_local $13 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $13 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + tee_local $0 + return + end + get_local $2 + f64.const 1 + f64.sub + tee_local $3 + get_local $3 + f64.mul + f64.const 0.5 + get_local $3 + f64.const 0.3333333333333333 + get_local $3 + f64.const 0.25 + f64.mul + f64.sub + f64.mul + f64.sub + f64.mul + set_local $0 + f64.const 1.4426950216293335 + get_local $3 + f64.mul + tee_local $15 + get_local $3 + f64.const 1.9259629911266175e-08 + f64.mul + get_local $0 + f64.const 1.4426950408889634 + f64.mul + f64.sub + tee_local $6 + f64.add + set_local $9 + get_local $6 + get_local $9 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $9 + get_local $15 + f64.sub + f64.sub + else + i32.const 0 + set_local $7 + get_local $4 + i32.const 1048576 + i32.lt_s + if + i32.const -53 + set_local $7 + get_local $2 + f64.const 9007199254740992 + f64.mul + tee_local $2 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $4 + end + get_local $7 + get_local $4 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $7 + get_local $4 + i32.const 1048575 + i32.and + tee_local $5 + i32.const 1072693248 + i32.or + set_local $4 + get_local $5 + i32.const 235662 + i32.le_s + if (result i32) + i32.const 0 + else + get_local $5 + i32.const 767610 + i32.lt_s + if (result i32) + i32.const 1 + else + get_local $7 + i32.const 1 + i32.add + set_local $7 + get_local $4 + i32.const -1048576 + i32.add + set_local $4 + i32.const 0 + end + end + set_local $10 + get_local $2 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $4 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + tee_local $2 + f64.const 1.5 + f64.const 1 + get_local $10 + select + tee_local $0 + f64.sub + tee_local $15 + f64.const 1 + get_local $2 + get_local $0 + f64.add + f64.div + tee_local $6 + f64.mul + set_local $9 + get_local $2 + get_local $4 + i32.const 1 + i32.shr_s + i32.const 536870912 + i32.or + i32.const 524288 + i32.add + get_local $10 + i32.const 18 + i32.shl + i32.add + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + tee_local $3 + get_local $0 + f64.sub + f64.sub + set_local $2 + get_local $9 + get_local $9 + f64.mul + tee_local $14 + get_local $14 + f64.mul + f64.const 0.5999999999999946 + get_local $14 + f64.const 0.4285714285785502 + get_local $14 + f64.const 0.33333332981837743 + get_local $14 + f64.const 0.272728123808534 + get_local $14 + f64.const 0.23066074577556175 + get_local $14 + f64.const 0.20697501780033842 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $19 + get_local $6 + get_local $15 + get_local $9 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $6 + get_local $3 + f64.mul + f64.sub + get_local $6 + get_local $2 + f64.mul + f64.sub + f64.mul + set_local $0 + f64.const 3 + get_local $6 + get_local $6 + f64.mul + tee_local $14 + f64.add + get_local $19 + get_local $0 + get_local $6 + get_local $9 + f64.add + f64.mul + f64.add + tee_local $19 + f64.add + set_local $3 + get_local $19 + get_local $3 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $3 + f64.const 3 + f64.sub + get_local $14 + f64.sub + f64.sub + set_local $2 + get_local $6 + get_local $3 + f64.mul + tee_local $15 + get_local $0 + get_local $3 + f64.mul + get_local $2 + get_local $9 + f64.mul + f64.add + tee_local $6 + f64.add + set_local $0 + get_local $6 + get_local $0 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $0 + get_local $15 + f64.sub + f64.sub + set_local $6 + f64.const 0.9617967009544373 + get_local $0 + f64.mul + tee_local $19 + f64.const -7.028461650952758e-09 + get_local $0 + f64.mul + get_local $6 + f64.const 0.9617966939259756 + f64.mul + f64.add + f64.const 1.350039202129749e-08 + f64.const 0 + get_local $10 + select + f64.add + tee_local $2 + f64.add + f64.const 0.5849624872207642 + f64.const 0 + get_local $10 + select + tee_local $0 + f64.add + get_local $7 + f64.convert_s/i32 + tee_local $3 + f64.add + set_local $9 + get_local $2 + get_local $9 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $9 + get_local $3 + f64.sub + get_local $0 + f64.sub + get_local $19 + f64.sub + f64.sub + end + set_local $2 + get_local $1 + get_local $1 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $0 + f64.sub + get_local $9 + f64.mul + get_local $1 + get_local $2 + f64.mul + f64.add + tee_local $6 + get_local $0 + get_local $9 + f64.mul + tee_local $0 + f64.add + tee_local $2 + i64.reinterpret/f64 + tee_local $17 + i32.wrap/i64 + set_local $8 + get_local $17 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $5 + i32.const 1083179008 + i32.ge_s + if + get_local $5 + i32.const 1083179008 + i32.sub + get_local $8 + i32.or + br_if $folding-inner1 + get_local $6 + f64.const 8.008566259537294e-17 + f64.add + get_local $2 + get_local $0 + f64.sub + f64.gt + br_if $folding-inner1 + else + get_local $5 + i32.const 2147483647 + i32.and + i32.const 1083231232 + i32.ge_s + if + get_local $5 + i32.const -1064252416 + i32.sub + get_local $8 + i32.or + br_if $folding-inner0 + get_local $6 + get_local $2 + get_local $0 + f64.sub + f64.le + br_if $folding-inner0 + end + end + get_local $5 + i32.const 2147483647 + i32.and + tee_local $8 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $10 + i32.const 0 + set_local $7 + get_local $8 + i32.const 1071644672 + i32.gt_s + if + get_local $5 + i32.const 1048576 + get_local $10 + i32.const 1 + i32.add + i32.shr_s + i32.add + tee_local $7 + i32.const 2147483647 + i32.and + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $10 + get_local $7 + i32.const 1048575 + get_local $10 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $3 + get_local $7 + i32.const 1048575 + i32.and + i32.const 1048576 + i32.or + i32.const 20 + get_local $10 + i32.sub + i32.shr_s + set_local $7 + get_local $5 + i32.const 0 + i32.lt_s + if + i32.const 0 + get_local $7 + i32.sub + set_local $7 + end + get_local $0 + get_local $3 + f64.sub + set_local $0 + end + get_local $6 + get_local $0 + f64.add + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $3 + f64.const 0.6931471824645996 + f64.mul + tee_local $15 + get_local $6 + get_local $3 + get_local $0 + f64.sub + f64.sub + f64.const 0.6931471805599453 + f64.mul + get_local $3 + f64.const -1.904654299957768e-09 + f64.mul + f64.add + tee_local $6 + f64.add + tee_local $2 + get_local $2 + f64.mul + set_local $3 + f64.const 1 + get_local $2 + get_local $2 + get_local $3 + f64.const 0.16666666666666602 + get_local $3 + f64.const -2.7777777777015593e-03 + get_local $3 + f64.const 6.613756321437934e-05 + get_local $3 + f64.const -1.6533902205465252e-06 + get_local $3 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + tee_local $9 + f64.mul + get_local $9 + f64.const 2 + f64.sub + f64.div + get_local $6 + get_local $2 + get_local $15 + f64.sub + f64.sub + tee_local $0 + get_local $2 + get_local $0 + f64.mul + f64.add + f64.sub + get_local $2 + f64.sub + f64.sub + tee_local $2 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + get_local $7 + i32.const 20 + i32.shl + i32.add + tee_local $5 + i32.const 20 + i32.shr_s + i32.const 0 + i32.le_s + if (result f64) + get_local $2 + get_local $7 + call $~lib/math/NativeMath.scalbn + else + get_local $2 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $5 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + end + set_local $2 + get_local $13 + get_local $2 + f64.mul + return + end + get_local $13 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + get_local $13 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul ) - (func $std/math/test_pow (; 127 ;) (; has Stack IR ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_pow (; 127 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) - (tee_local $4 - (if (result i32) - (tee_local $5 - (call $std/math/check - (call $~lib/math/NativeMath.pow - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/pow - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (get_local $3) - ) - (get_local $5) - ) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.pow + get_local $2 + get_local $3 + call $std/math/check + tee_local $5 + if (result i32) + get_local $0 + get_local $1 + call $~lib/bindings/Math/pow + tee_local $0 + get_local $2 + get_local $3 + call $std/math/check + else + get_local $5 + end + tee_local $4 ) - (func $~lib/math/NativeMathf.pow (; 128 ;) (; has Stack IR ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 128 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) (local $4 i32) @@ -10358,1541 +7231,1068 @@ (local $15 f32) (local $16 f32) (local $17 f32) - (block $folding-inner1 - (block $folding-inner0 - (set_local $6 - (i32.and - (tee_local $7 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 2147483647) - ) - ) - (if - (i32.eqz - (tee_local $12 - (i32.and - (tee_local $13 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (i32.const 2147483647) - ) - ) - ) - (return - (f32.const 1) - ) - ) - (if - (i32.eqz - (tee_local $5 - (i32.gt_s - (get_local $6) - (i32.const 2139095040) - ) - ) - ) - (set_local $5 - (i32.gt_s - (get_local $12) - (i32.const 2139095040) - ) - ) - ) - (if - (get_local $5) - (return - (f32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 0) - ) - (if - (i32.ge_s - (get_local $12) - (i32.const 1266679808) - ) - (set_local $4 - (i32.const 2) - ) - (if - (i32.ge_s - (get_local $12) - (i32.const 1065353216) - ) - (if - (i32.eq - (i32.shl - (tee_local $8 - (i32.shr_s - (get_local $12) - (tee_local $5 - (i32.sub - (i32.const 150) - (i32.shr_s - (get_local $12) - (i32.const 23) - ) - ) - ) - ) - ) - (get_local $5) - ) - (get_local $12) - ) - (set_local $4 - (i32.sub - (i32.const 2) - (i32.and - (get_local $8) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 2139095040) - ) - (if - (i32.eq - (get_local $6) - (i32.const 1065353216) - ) - (return - (f32.const nan:0x400000) - ) - (if - (i32.gt_s - (get_local $6) - (i32.const 1065353216) - ) - (block - (if - (i32.lt_s - (get_local $13) - (i32.const 0) - ) - (set_local $1 - (f32.const 0) - ) - ) - (return - (get_local $1) - ) - ) - (return - (tee_local $0 - (if (result f32) - (i32.ge_s - (get_local $13) - (i32.const 0) - ) - (f32.const 0) - (f32.neg - (get_local $1) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 1065353216) - ) - (block - (if - (i32.lt_s - (get_local $13) - (i32.const 0) - ) - (set_local $0 - (f32.div - (f32.const 1) - (get_local $0) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $13) - (i32.const 1073741824) - ) - (return - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $13) - (i32.const 1056964608) - ) - (if - (i32.ge_s - (get_local $7) - (i32.const 0) - ) - (return - (f32.sqrt - (get_local $0) - ) - ) - ) - ) - (set_local $2 - (f32.abs - (get_local $0) - ) - ) - (if - (i32.eqz - (tee_local $5 - (i32.eq - (get_local $6) - (i32.const 2139095040) - ) - ) - ) - (set_local $5 - (i32.eqz - (get_local $6) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (set_local $5 - (i32.eq - (get_local $6) - (i32.const 1065353216) - ) - ) - ) - (if - (get_local $5) - (block - (if - (i32.lt_s - (get_local $13) - (i32.const 0) - ) - (set_local $2 - (f32.div - (f32.const 1) - (get_local $2) - ) - ) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 0) - ) - (if - (i32.or - (i32.sub - (get_local $6) - (i32.const 1065353216) - ) - (get_local $4) - ) - (if - (i32.eq - (get_local $4) - (i32.const 1) - ) - (set_local $2 - (f32.neg - (get_local $2) - ) - ) - ) - (set_local $2 - (f32.div - (tee_local $0 - (f32.sub - (get_local $2) - (get_local $2) - ) - ) - (get_local $0) - ) - ) - ) - ) - (return - (get_local $2) - ) - ) - ) - (set_local $10 - (f32.const 1) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 0) - ) - (block - (if - (i32.eqz - (get_local $4) - ) - (return - (f32.div - (tee_local $0 - (f32.sub - (get_local $0) - (get_local $0) - ) - ) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 1) - ) - (set_local $10 - (f32.const -1) - ) - ) - ) - ) - (set_local $2 - (if (result f32) - (i32.gt_s - (get_local $12) - (i32.const 1291845632) - ) - (block (result f32) - (if - (i32.lt_s - (get_local $6) - (i32.const 1065353208) - ) - (return - (tee_local $0 - (if (result f32) - (i32.lt_s - (get_local $13) - (i32.const 0) - ) - (f32.mul - (f32.mul - (get_local $10) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - (f32.mul - (f32.mul - (get_local $10) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $6) - (i32.const 1065353223) - ) - (return - (tee_local $0 - (if (result f32) - (i32.gt_s - (get_local $13) - (i32.const 0) - ) - (f32.mul - (f32.mul - (get_local $10) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - (f32.mul - (f32.mul - (get_local $10) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) - ) - ) - ) - ) - (set_local $0 - (f32.mul - (f32.mul - (tee_local $3 - (f32.sub - (get_local $2) - (f32.const 1) - ) - ) - (get_local $3) - ) - (f32.sub - (f32.const 0.5) - (f32.mul - (get_local $3) - (f32.sub - (f32.const 0.3333333432674408) - (f32.mul - (get_local $3) - (f32.const 0.25) - ) - ) - ) - ) - ) - ) - (set_local $5 - (i32.reinterpret/f32 - (f32.add - (tee_local $15 - (f32.mul - (f32.const 1.44268798828125) - (get_local $3) - ) - ) - (tee_local $16 - (f32.sub - (f32.mul - (get_local $3) - (f32.const 7.052607543300837e-06) - ) - (f32.mul - (get_local $0) - (f32.const 1.4426950216293335) - ) - ) - ) - ) - ) - ) - (f32.sub - (get_local $16) - (f32.sub - (tee_local $11 - (f32.reinterpret/i32 - (i32.and - (get_local $5) - (i32.const -4096) - ) - ) - ) - (get_local $15) - ) - ) - ) - (block (result f32) - (set_local $4 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $6) - (i32.const 8388608) - ) - (block - (set_local $4 - (i32.const -24) - ) - (set_local $6 - (i32.reinterpret/f32 - (f32.mul - (get_local $2) - (f32.const 16777216) - ) - ) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.sub - (i32.shr_s - (get_local $6) - (i32.const 23) - ) - (i32.const 127) - ) - ) - ) - (set_local $6 - (i32.or - (tee_local $8 - (i32.and - (get_local $6) - (i32.const 8388607) - ) - ) - (i32.const 1065353216) - ) - ) - (set_local $7 - (if (result i32) - (i32.le_s - (get_local $8) - (i32.const 1885297) - ) - (i32.const 0) - (if (result i32) - (i32.lt_s - (get_local $8) - (i32.const 6140887) - ) - (i32.const 1) - (block (result i32) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 8388608) - ) - ) - (i32.const 0) - ) - ) - ) - ) - (set_local $3 - (f32.reinterpret/i32 - (i32.and - (i32.reinterpret/f32 - (tee_local $9 - (f32.mul - (tee_local $15 - (f32.sub - (tee_local $2 - (f32.reinterpret/i32 - (get_local $6) - ) - ) - (tee_local $0 - (select - (f32.const 1.5) - (f32.const 1) - (get_local $7) - ) - ) - ) - ) - (tee_local $16 - (f32.div - (f32.const 1) - (f32.add - (get_local $2) - (get_local $0) - ) - ) - ) - ) - ) - ) - (i32.const -4096) - ) - ) - ) - (set_local $2 - (f32.sub - (get_local $2) - (f32.sub - (tee_local $11 - (f32.reinterpret/i32 - (i32.add - (i32.add - (i32.or - (i32.and - (i32.shr_s - (get_local $6) - (i32.const 1) - ) - (i32.const -4096) - ) - (i32.const 536870912) - ) - (i32.const 4194304) - ) - (i32.shl - (get_local $7) - (i32.const 21) - ) - ) - ) - ) - (get_local $0) - ) - ) - ) - (set_local $17 - (f32.mul - (f32.mul - (tee_local $14 - (f32.mul - (get_local $9) - (get_local $9) - ) - ) - (get_local $14) - ) - (f32.add - (f32.const 0.6000000238418579) - (f32.mul - (get_local $14) - (f32.add - (f32.const 0.4285714328289032) - (f32.mul - (get_local $14) - (f32.add - (f32.const 0.3333333432674408) - (f32.mul - (get_local $14) - (f32.add - (f32.const 0.2727281153202057) - (f32.mul - (get_local $14) - (f32.add - (f32.const 0.23066075146198273) - (f32.mul - (get_local $14) - (f32.const 0.20697501301765442) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $5 - (i32.reinterpret/f32 - (f32.add - (f32.add - (f32.const 3) - (tee_local $14 - (f32.mul - (get_local $3) - (get_local $3) - ) - ) - ) - (tee_local $17 - (f32.add - (get_local $17) - (f32.mul - (tee_local $0 - (f32.mul - (get_local $16) - (f32.sub - (f32.sub - (get_local $15) - (f32.mul - (get_local $3) - (get_local $11) - ) - ) - (f32.mul - (get_local $3) - (get_local $2) - ) - ) - ) - ) - (f32.add - (get_local $3) - (get_local $9) - ) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f32.sub - (get_local $17) - (f32.sub - (f32.sub - (tee_local $11 - (f32.reinterpret/i32 - (i32.and - (get_local $5) - (i32.const -4096) - ) - ) - ) - (f32.const 3) - ) - (get_local $14) - ) - ) - ) - (set_local $5 - (i32.reinterpret/f32 - (f32.add - (tee_local $15 - (f32.mul - (get_local $3) - (get_local $11) - ) - ) - (tee_local $16 - (f32.add - (f32.mul - (get_local $0) - (get_local $11) - ) - (f32.mul - (get_local $2) - (get_local $9) - ) - ) - ) - ) - ) - ) - (set_local $9 - (f32.sub - (get_local $16) - (f32.sub - (tee_local $0 - (f32.reinterpret/i32 - (i32.and - (get_local $5) - (i32.const -4096) - ) - ) - ) - (get_local $15) - ) - ) - ) - (set_local $5 - (i32.reinterpret/f32 - (f32.add - (f32.add - (f32.add - (tee_local $17 - (f32.mul - (f32.const 0.9619140625) - (get_local $0) - ) - ) - (tee_local $2 - (f32.add - (f32.add - (f32.mul - (f32.const -1.1736857413779944e-04) - (get_local $0) - ) - (f32.mul - (get_local $9) - (f32.const 0.9617967009544373) - ) - ) - (select - (f32.const 1.5632208487659227e-06) - (f32.const 0) - (get_local $7) - ) - ) - ) - ) - (tee_local $0 - (select - (f32.const 0.5849609375) - (f32.const 0) - (get_local $7) - ) - ) - ) - (tee_local $3 - (f32.convert_s/i32 - (get_local $4) - ) - ) - ) - ) - ) - (f32.sub - (get_local $2) - (f32.sub - (f32.sub - (f32.sub - (tee_local $11 - (f32.reinterpret/i32 - (i32.and - (get_local $5) - (i32.const -4096) - ) - ) - ) - (get_local $3) - ) - (get_local $0) - ) - (get_local $17) - ) - ) - ) - ) - ) - (br_if $folding-inner0 - (i32.gt_s - (tee_local $8 - (i32.reinterpret/f32 - (tee_local $2 - (f32.add - (tee_local $9 - (f32.add - (f32.mul - (f32.sub - (get_local $1) - (tee_local $0 - (f32.reinterpret/i32 - (i32.and - (i32.reinterpret/f32 - (get_local $1) - ) - (i32.const -4096) - ) - ) - ) - ) - (get_local $11) - ) - (f32.mul - (get_local $1) - (get_local $2) - ) - ) - ) - (tee_local $0 - (f32.mul - (get_local $0) - (get_local $11) - ) - ) - ) - ) - ) - ) - (i32.const 1124073472) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 1124073472) - ) - (br_if $folding-inner0 - (f32.gt - (f32.add - (get_local $9) - (f32.const 4.299566569443414e-08) - ) - (f32.sub - (get_local $2) - (get_local $0) - ) - ) - ) - (if - (i32.gt_s - (i32.and - (get_local $8) - (i32.const 2147483647) - ) - (i32.const 1125515264) - ) - (br $folding-inner1) - (if - (i32.eq - (get_local $8) - (i32.const -1021968384) - ) - (br_if $folding-inner1 - (f32.le - (get_local $9) - (f32.sub - (get_local $2) - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $7 - (i32.sub - (i32.shr_s - (tee_local $5 - (i32.and - (get_local $8) - (i32.const 2147483647) - ) - ) - (i32.const 23) - ) - (i32.const 127) - ) - ) - (set_local $4 - (i32.const 0) - ) - (if - (i32.gt_s - (get_local $5) - (i32.const 1056964608) - ) - (block - (set_local $7 - (i32.sub - (i32.shr_s - (i32.and - (tee_local $4 - (i32.add - (get_local $8) - (i32.shr_s - (i32.const 8388608) - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - ) - (i32.const 2147483647) - ) - (i32.const 23) - ) - (i32.const 127) - ) - ) - (set_local $3 - (f32.reinterpret/i32 - (i32.and - (get_local $4) - (i32.xor - (i32.shr_s - (i32.const 8388607) - (get_local $7) - ) - (i32.const -1) - ) - ) - ) - ) - (set_local $4 - (i32.shr_s - (i32.or - (i32.and - (get_local $4) - (i32.const 8388607) - ) - (i32.const 8388608) - ) - (i32.sub - (i32.const 23) - (get_local $7) - ) - ) - ) - (if - (i32.lt_s - (get_local $8) - (i32.const 0) - ) - (set_local $4 - (i32.sub - (i32.const 0) - (get_local $4) - ) - ) - ) - (set_local $0 - (f32.sub - (get_local $0) - (get_local $3) - ) - ) - ) - ) - (set_local $3 - (f32.mul - (tee_local $2 - (f32.add - (tee_local $15 - (f32.mul - (tee_local $3 - (f32.reinterpret/i32 - (i32.and - (i32.reinterpret/f32 - (f32.add - (get_local $9) - (get_local $0) - ) - ) - (i32.const -32768) - ) - ) - ) - (f32.const 0.693145751953125) - ) - ) - (tee_local $16 - (f32.add - (f32.mul - (f32.sub - (get_local $9) - (f32.sub - (get_local $3) - (get_local $0) - ) - ) - (f32.const 0.6931471824645996) - ) - (f32.mul - (get_local $3) - (f32.const 1.4286065379565116e-06) - ) - ) - ) - ) - ) - (get_local $2) - ) - ) - (set_local $2 - (if (result f32) - (i32.le_s - (i32.shr_s - (tee_local $8 - (i32.add - (i32.reinterpret/f32 - (tee_local $2 - (f32.sub - (f32.const 1) - (f32.sub - (f32.sub - (f32.div - (f32.mul - (get_local $2) - (tee_local $11 - (f32.sub - (get_local $2) - (f32.mul - (get_local $3) - (f32.add - (f32.const 0.1666666716337204) - (f32.mul - (get_local $3) - (f32.add - (f32.const -2.7777778450399637e-03) - (f32.mul - (get_local $3) - (f32.add - (f32.const 6.61375597701408e-05) - (f32.mul - (get_local $3) - (f32.add - (f32.const -1.6533901998627698e-06) - (f32.mul - (get_local $3) - (f32.const 4.138136944220605e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f32.sub - (get_local $11) - (f32.const 2) - ) - ) - (f32.add - (tee_local $0 - (f32.sub - (get_local $16) - (f32.sub - (get_local $2) - (get_local $15) - ) - ) - ) - (f32.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (get_local $2) - ) - ) - ) - ) - (i32.shl - (get_local $4) - (i32.const 23) - ) - ) - ) - (i32.const 23) - ) - (i32.const 0) - ) - (call $~lib/math/NativeMathf.scalbn - (get_local $2) - (get_local $4) - ) - (f32.reinterpret/i32 - (get_local $8) - ) - ) - ) - (return - (f32.mul - (get_local $10) - (get_local $2) - ) - ) - ) - (return - (f32.mul - (f32.mul - (get_local $10) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - ) - ) - (f32.mul - (f32.mul - (get_local $10) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) + block $folding-inner1 + block $folding-inner0 + get_local $0 + i32.reinterpret/f32 + tee_local $7 + i32.const 2147483647 + i32.and + set_local $6 + get_local $1 + i32.reinterpret/f32 + tee_local $13 + i32.const 2147483647 + i32.and + tee_local $12 + i32.eqz + if + f32.const 1 + return + end + get_local $6 + i32.const 2139095040 + i32.gt_s + tee_local $5 + i32.eqz + if + get_local $12 + i32.const 2139095040 + i32.gt_s + set_local $5 + end + get_local $5 + if + get_local $0 + get_local $1 + f32.add + return + end + get_local $7 + i32.const 0 + i32.lt_s + if + get_local $12 + i32.const 1266679808 + i32.ge_s + if + i32.const 2 + set_local $4 + else + get_local $12 + i32.const 1065353216 + i32.ge_s + if + get_local $12 + i32.const 150 + get_local $12 + i32.const 23 + i32.shr_s + i32.sub + tee_local $5 + i32.shr_s + tee_local $8 + get_local $5 + i32.shl + get_local $12 + i32.eq + if + i32.const 2 + get_local $8 + i32.const 1 + i32.and + i32.sub + set_local $4 + end + end + end + end + get_local $12 + i32.const 2139095040 + i32.eq + if + get_local $6 + i32.const 1065353216 + i32.eq + if + f32.const nan:0x400000 + return + else + get_local $6 + i32.const 1065353216 + i32.gt_s + if + get_local $13 + i32.const 0 + i32.lt_s + if + f32.const 0 + set_local $1 + end + get_local $1 + return + else + get_local $13 + i32.const 0 + i32.ge_s + if (result f32) + f32.const 0 + else + get_local $1 + f32.neg + end + tee_local $0 + return + end + unreachable + end + unreachable + end + get_local $12 + i32.const 1065353216 + i32.eq + if + get_local $13 + i32.const 0 + i32.lt_s + if + f32.const 1 + get_local $0 + f32.div + set_local $0 + end + get_local $0 + return + end + get_local $13 + i32.const 1073741824 + i32.eq + if + get_local $0 + get_local $0 + f32.mul + return + end + get_local $13 + i32.const 1056964608 + i32.eq + if + get_local $7 + i32.const 0 + i32.ge_s + if + get_local $0 + f32.sqrt + return + end + end + get_local $0 + f32.abs + set_local $2 + get_local $6 + i32.const 2139095040 + i32.eq + tee_local $5 + i32.eqz + if + get_local $6 + i32.eqz + set_local $5 + end + get_local $5 + i32.eqz + if + get_local $6 + i32.const 1065353216 + i32.eq + set_local $5 + end + get_local $5 + if + get_local $13 + i32.const 0 + i32.lt_s + if + f32.const 1 + get_local $2 + f32.div + set_local $2 + end + get_local $7 + i32.const 0 + i32.lt_s + if + get_local $6 + i32.const 1065353216 + i32.sub + get_local $4 + i32.or + if + get_local $4 + i32.const 1 + i32.eq + if + get_local $2 + f32.neg + set_local $2 + end + else + get_local $2 + get_local $2 + f32.sub + tee_local $0 + get_local $0 + f32.div + set_local $2 + end + end + get_local $2 + return + end + f32.const 1 + set_local $10 + get_local $7 + i32.const 0 + i32.lt_s + if + get_local $4 + i32.eqz + if + get_local $0 + get_local $0 + f32.sub + tee_local $0 + get_local $0 + f32.div + return + end + get_local $4 + i32.const 1 + i32.eq + if + f32.const -1 + set_local $10 + end + end + get_local $12 + i32.const 1291845632 + i32.gt_s + if (result f32) + get_local $6 + i32.const 1065353208 + i32.lt_s + if + get_local $13 + i32.const 0 + i32.lt_s + if (result f32) + get_local $10 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + else + get_local $10 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul + end + tee_local $0 + return + end + get_local $6 + i32.const 1065353223 + i32.gt_s + if + get_local $13 + i32.const 0 + i32.gt_s + if (result f32) + get_local $10 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + else + get_local $10 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul + end + tee_local $0 + return + end + get_local $2 + f32.const 1 + f32.sub + tee_local $3 + get_local $3 + f32.mul + f32.const 0.5 + get_local $3 + f32.const 0.3333333432674408 + get_local $3 + f32.const 0.25 + f32.mul + f32.sub + f32.mul + f32.sub + f32.mul + set_local $0 + f32.const 1.44268798828125 + get_local $3 + f32.mul + tee_local $15 + get_local $3 + f32.const 7.052607543300837e-06 + f32.mul + get_local $0 + f32.const 1.4426950216293335 + f32.mul + f32.sub + tee_local $16 + f32.add + i32.reinterpret/f32 + set_local $5 + get_local $16 + get_local $5 + i32.const -4096 + i32.and + f32.reinterpret/i32 + tee_local $11 + get_local $15 + f32.sub + f32.sub + else + i32.const 0 + set_local $4 + get_local $6 + i32.const 8388608 + i32.lt_s + if + i32.const -24 + set_local $4 + get_local $2 + f32.const 16777216 + f32.mul + i32.reinterpret/f32 + set_local $6 + end + get_local $4 + get_local $6 + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + i32.add + set_local $4 + get_local $6 + i32.const 8388607 + i32.and + tee_local $8 + i32.const 1065353216 + i32.or + set_local $6 + get_local $8 + i32.const 1885297 + i32.le_s + if (result i32) + i32.const 0 + else + get_local $8 + i32.const 6140887 + i32.lt_s + if (result i32) + i32.const 1 + else + get_local $4 + i32.const 1 + i32.add + set_local $4 + get_local $6 + i32.const 8388608 + i32.sub + set_local $6 + i32.const 0 + end + end + set_local $7 + get_local $6 + f32.reinterpret/i32 + tee_local $2 + f32.const 1.5 + f32.const 1 + get_local $7 + select + tee_local $0 + f32.sub + tee_local $15 + f32.const 1 + get_local $2 + get_local $0 + f32.add + f32.div + tee_local $16 + f32.mul + tee_local $9 + i32.reinterpret/f32 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $3 + get_local $2 + get_local $6 + i32.const 1 + i32.shr_s + i32.const -4096 + i32.and + i32.const 536870912 + i32.or + i32.const 4194304 + i32.add + get_local $7 + i32.const 21 + i32.shl + i32.add + f32.reinterpret/i32 + tee_local $11 + get_local $0 + f32.sub + f32.sub + set_local $2 + get_local $9 + get_local $9 + f32.mul + tee_local $14 + get_local $14 + f32.mul + f32.const 0.6000000238418579 + get_local $14 + f32.const 0.4285714328289032 + get_local $14 + f32.const 0.3333333432674408 + get_local $14 + f32.const 0.2727281153202057 + get_local $14 + f32.const 0.23066075146198273 + get_local $14 + f32.const 0.20697501301765442 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + set_local $17 + f32.const 3 + get_local $3 + get_local $3 + f32.mul + tee_local $14 + f32.add + get_local $17 + get_local $16 + get_local $15 + get_local $3 + get_local $11 + f32.mul + f32.sub + get_local $3 + get_local $2 + f32.mul + f32.sub + f32.mul + tee_local $0 + get_local $3 + get_local $9 + f32.add + f32.mul + f32.add + tee_local $17 + f32.add + i32.reinterpret/f32 + set_local $5 + get_local $17 + get_local $5 + i32.const -4096 + i32.and + f32.reinterpret/i32 + tee_local $11 + f32.const 3 + f32.sub + get_local $14 + f32.sub + f32.sub + set_local $2 + get_local $3 + get_local $11 + f32.mul + tee_local $15 + get_local $0 + get_local $11 + f32.mul + get_local $2 + get_local $9 + f32.mul + f32.add + tee_local $16 + f32.add + i32.reinterpret/f32 + set_local $5 + get_local $16 + get_local $5 + i32.const -4096 + i32.and + f32.reinterpret/i32 + tee_local $0 + get_local $15 + f32.sub + f32.sub + set_local $9 + f32.const 0.9619140625 + get_local $0 + f32.mul + tee_local $17 + f32.const -1.1736857413779944e-04 + get_local $0 + f32.mul + get_local $9 + f32.const 0.9617967009544373 + f32.mul + f32.add + f32.const 1.5632208487659227e-06 + f32.const 0 + get_local $7 + select + f32.add + tee_local $2 + f32.add + f32.const 0.5849609375 + f32.const 0 + get_local $7 + select + tee_local $0 + f32.add + get_local $4 + f32.convert_s/i32 + tee_local $3 + f32.add + i32.reinterpret/f32 + set_local $5 + get_local $2 + get_local $5 + i32.const -4096 + i32.and + f32.reinterpret/i32 + tee_local $11 + get_local $3 + f32.sub + get_local $0 + f32.sub + get_local $17 + f32.sub + f32.sub + end + set_local $2 + get_local $1 + get_local $1 + i32.reinterpret/f32 + i32.const -4096 + i32.and + f32.reinterpret/i32 + tee_local $0 + f32.sub + get_local $11 + f32.mul + get_local $1 + get_local $2 + f32.mul + f32.add + tee_local $9 + get_local $0 + get_local $11 + f32.mul + tee_local $0 + f32.add + tee_local $2 + i32.reinterpret/f32 + tee_local $8 + i32.const 1124073472 + i32.gt_s + br_if $folding-inner0 + get_local $8 + i32.const 1124073472 + i32.eq + if + get_local $9 + f32.const 4.299566569443414e-08 + f32.add + get_local $2 + get_local $0 + f32.sub + f32.gt + br_if $folding-inner0 + else + get_local $8 + i32.const 2147483647 + i32.and + i32.const 1125515264 + i32.gt_s + if + br $folding-inner1 + else + get_local $8 + i32.const -1021968384 + i32.eq + if + get_local $9 + get_local $2 + get_local $0 + f32.sub + f32.le + br_if $folding-inner1 + end + end + end + get_local $8 + i32.const 2147483647 + i32.and + tee_local $5 + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + set_local $7 + i32.const 0 + set_local $4 + get_local $5 + i32.const 1056964608 + i32.gt_s + if + get_local $8 + i32.const 8388608 + get_local $7 + i32.const 1 + i32.add + i32.shr_s + i32.add + tee_local $4 + i32.const 2147483647 + i32.and + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + set_local $7 + get_local $4 + i32.const 8388607 + get_local $7 + i32.shr_s + i32.const -1 + i32.xor + i32.and + f32.reinterpret/i32 + set_local $3 + get_local $4 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i32.const 23 + get_local $7 + i32.sub + i32.shr_s + set_local $4 + get_local $8 + i32.const 0 + i32.lt_s + if + i32.const 0 + get_local $4 + i32.sub + set_local $4 + end + get_local $0 + get_local $3 + f32.sub + set_local $0 + end + get_local $9 + get_local $0 + f32.add + i32.reinterpret/f32 + i32.const -32768 + i32.and + f32.reinterpret/i32 + tee_local $3 + f32.const 0.693145751953125 + f32.mul + tee_local $15 + get_local $9 + get_local $3 + get_local $0 + f32.sub + f32.sub + f32.const 0.6931471824645996 + f32.mul + get_local $3 + f32.const 1.4286065379565116e-06 + f32.mul + f32.add + tee_local $16 + f32.add + tee_local $2 + get_local $2 + f32.mul + set_local $3 + f32.const 1 + get_local $2 + get_local $2 + get_local $3 + f32.const 0.1666666716337204 + get_local $3 + f32.const -2.7777778450399637e-03 + get_local $3 + f32.const 6.61375597701408e-05 + get_local $3 + f32.const -1.6533901998627698e-06 + get_local $3 + f32.const 4.138136944220605e-08 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.sub + tee_local $11 + f32.mul + get_local $11 + f32.const 2 + f32.sub + f32.div + get_local $16 + get_local $2 + get_local $15 + f32.sub + f32.sub + tee_local $0 + get_local $2 + get_local $0 + f32.mul + f32.add + f32.sub + get_local $2 + f32.sub + f32.sub + tee_local $2 + i32.reinterpret/f32 + get_local $4 + i32.const 23 + i32.shl + i32.add + tee_local $8 + i32.const 23 + i32.shr_s + i32.const 0 + i32.le_s + if (result f32) + get_local $2 + get_local $4 + call $~lib/math/NativeMathf.scalbn + else + get_local $8 + f32.reinterpret/i32 + end + set_local $2 + get_local $10 + get_local $2 + f32.mul + return + end + get_local $10 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + return + end + get_local $10 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul ) - (func $std/math/test_powf (; 129 ;) (; has Stack IR ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.pow - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - ) + (func $std/math/test_powf (; 129 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.pow + get_local $2 + get_local $3 + call $std/math/check ) - (func $~lib/math/murmurHash3 (; 130 ;) (; has Stack IR ;) (type $II) (param $0 i64) (result i64) - (i64.xor - (tee_local $0 - (i64.mul - (i64.xor - (tee_local $0 - (i64.mul - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) - (i64.const -49064778989728563) - ) - ) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) - (i64.const -4265267296055464877) - ) - ) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) + (func $~lib/math/murmurHash3 (; 130 ;) (type $II) (param $0 i64) (result i64) + get_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + tee_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + tee_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor ) - (func $~lib/math/splitMix32 (; 131 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.xor - (tee_local $0 - (i32.xor - (tee_local $0 - (i32.mul - (i32.xor - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 1831565813) - ) - ) - (i32.shr_u - (get_local $0) - (i32.const 15) - ) - ) - (i32.or - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.add - (get_local $0) - (i32.mul - (i32.xor - (get_local $0) - (i32.shr_u - (get_local $0) - (i32.const 7) - ) - ) - (i32.or - (get_local $0) - (i32.const 61) - ) - ) - ) - ) - ) - (i32.shr_u - (get_local $0) - (i32.const 14) - ) - ) + (func $~lib/math/splitMix32 (; 131 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 1831565813 + i32.add + tee_local $0 + get_local $0 + i32.const 15 + i32.shr_u + i32.xor + get_local $0 + i32.const 1 + i32.or + i32.mul + tee_local $0 + get_local $0 + get_local $0 + get_local $0 + i32.const 7 + i32.shr_u + i32.xor + get_local $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + tee_local $0 + get_local $0 + i32.const 14 + i32.shr_u + i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 132 ;) (; has Stack IR ;) (type $Iv) (param $0 i64) - (if - (i64.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 955) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_global $~lib/math/random_seeded - (i32.const 1) - ) - (set_global $~lib/math/random_state0_64 - (call $~lib/math/murmurHash3 - (get_local $0) - ) - ) - (set_global $~lib/math/random_state1_64 - (call $~lib/math/murmurHash3 - (i64.xor - (get_global $~lib/math/random_state0_64) - (i64.const -1) - ) - ) - ) - (set_global $~lib/math/random_state0_32 - (call $~lib/math/splitMix32 - (i32.wrap/i64 - (get_local $0) - ) - ) - ) - (set_global $~lib/math/random_state1_32 - (call $~lib/math/splitMix32 - (get_global $~lib/math/random_state0_32) - ) - ) + (func $~lib/math/NativeMath.seedRandom (; 132 ;) (type $Iv) (param $0 i64) + get_local $0 + i64.eqz + if + i32.const 0 + i32.const 40 + i32.const 955 + i32.const 4 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~lib/math/random_seeded + get_local $0 + call $~lib/math/murmurHash3 + set_global $~lib/math/random_state0_64 + get_global $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + set_global $~lib/math/random_state1_64 + get_local $0 + i32.wrap/i64 + call $~lib/math/splitMix32 + set_global $~lib/math/random_state0_32 + get_global $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + set_global $~lib/math/random_state1_32 ) - (func $~lib/math/NativeMath.random (; 133 ;) (; has Stack IR ;) (type $F) (result f64) + (func $~lib/math/NativeMath.random (; 133 ;) (type $F) (result f64) (local $0 i64) (local $1 i64) - (if - (i32.eqz - (get_global $~lib/math/random_seeded) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 964) - (i32.const 24) - ) - (unreachable) - ) - ) - (set_local $0 - (get_global $~lib/math/random_state0_64) - ) - (set_global $~lib/math/random_state0_64 - (tee_local $1 - (get_global $~lib/math/random_state1_64) - ) - ) - (set_global $~lib/math/random_state1_64 - (tee_local $0 - (i64.xor - (i64.xor - (i64.xor - (tee_local $0 - (i64.xor - (get_local $0) - (i64.shl - (get_local $0) - (i64.const 23) - ) - ) - ) - (i64.shr_u - (get_local $0) - (i64.const 17) - ) - ) - (get_local $1) - ) - (i64.shr_u - (get_local $1) - (i64.const 26) - ) - ) - ) - ) - (f64.sub - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.add - (get_local $1) - (get_local $0) - ) - (i64.const 4503599627370495) - ) - (i64.const 4607182418800017408) - ) - ) - (f64.const 1) - ) + get_global $~lib/math/random_seeded + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 964 + i32.const 24 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/random_state0_64 + set_local $0 + get_global $~lib/math/random_state1_64 + tee_local $1 + set_global $~lib/math/random_state0_64 + get_local $0 + get_local $0 + i64.const 23 + i64.shl + i64.xor + tee_local $0 + get_local $0 + i64.const 17 + i64.shr_u + i64.xor + get_local $1 + i64.xor + get_local $1 + i64.const 26 + i64.shr_u + i64.xor + tee_local $0 + set_global $~lib/math/random_state1_64 + get_local $1 + get_local $0 + i64.add + i64.const 4503599627370495 + i64.and + i64.const 4607182418800017408 + i64.or + f64.reinterpret/i64 + f64.const 1 + f64.sub ) - (func $~lib/math/NativeMathf.random (; 134 ;) (; has Stack IR ;) (type $f) (result f32) + (func $~lib/math/NativeMathf.random (; 134 ;) (type $f) (result f32) (local $0 i32) (local $1 i32) - (if - (i32.eqz - (get_global $~lib/math/random_seeded) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 2018) - (i32.const 24) - ) - (unreachable) - ) - ) - (set_local $0 - (i32.xor - (get_global $~lib/math/random_state1_32) - (tee_local $1 - (get_global $~lib/math/random_state0_32) - ) - ) - ) - (set_global $~lib/math/random_state0_32 - (i32.xor - (i32.xor - (i32.rotl - (get_local $1) - (i32.const 26) - ) - (get_local $0) - ) - (i32.shl - (get_local $0) - (i32.const 9) - ) - ) - ) - (set_global $~lib/math/random_state1_32 - (i32.rotl - (get_local $0) - (i32.const 13) - ) - ) - (f32.sub - (f32.reinterpret/i32 - (i32.or - (i32.shr_u - (i32.mul - (i32.rotl - (i32.mul - (get_local $1) - (i32.const -1640531525) - ) - (i32.const 5) - ) - (i32.const 5) - ) - (i32.const 9) - ) - (i32.const 1065353216) - ) - ) - (f32.const 1) - ) + get_global $~lib/math/random_seeded + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 2018 + i32.const 24 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/random_state1_32 + get_global $~lib/math/random_state0_32 + tee_local $1 + i32.xor + set_local $0 + get_local $1 + i32.const 26 + i32.rotl + get_local $0 + i32.xor + get_local $0 + i32.const 9 + i32.shl + i32.xor + set_global $~lib/math/random_state0_32 + get_local $0 + i32.const 13 + i32.rotl + set_global $~lib/math/random_state1_32 + get_local $1 + i32.const -1640531525 + i32.mul + i32.const 5 + i32.rotl + i32.const 5 + i32.mul + i32.const 9 + i32.shr_u + i32.const 1065353216 + i32.or + f32.reinterpret/i32 + f32.const 1 + f32.sub ) - (func $std/math/test_round (; 135 ;) (; has Stack IR ;) (type $FUNCSIG$iddi) (param $0 f64) (param $1 f64) (param $2 i32) (result i32) - (call $std/math/check - (f64.copysign - (f64.floor - (f64.add - (get_local $0) - (f64.const 0.5) - ) - ) - (get_local $0) - ) - (get_local $1) - (f64.const 0) - ) + (func $std/math/test_round (; 135 ;) (type $FUNCSIG$iddi) (param $0 f64) (param $1 f64) (param $2 i32) (result i32) + get_local $0 + f64.const 0.5 + f64.add + f64.floor + get_local $0 + f64.copysign + get_local $1 + f64.const 0 + call $std/math/check ) - (func $std/math/test_roundf (; 136 ;) (; has Stack IR ;) (type $FUNCSIG$iffi) (param $0 f32) (param $1 f32) (param $2 i32) (result i32) - (call $std/math/check - (f32.copysign - (f32.floor - (f32.add - (get_local $0) - (f32.const 0.5) - ) - ) - (get_local $0) - ) - (get_local $1) - (f32.const 0) - ) + (func $std/math/test_roundf (; 136 ;) (type $FUNCSIG$iffi) (param $0 f32) (param $1 f32) (param $2 i32) (result i32) + get_local $0 + f32.const 0.5 + f32.add + f32.floor + get_local $0 + f32.copysign + get_local $1 + f32.const 0 + call $std/math/check ) - (func $std/math/test_sign (; 137 ;) (; has Stack IR ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_sign (; 137 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i32) - (if - (tee_local $2 - (call $std/math/check - (if (result f64) - (f64.gt - (get_local $0) - (f64.const 0) - ) - (f64.const 1) - (if (result f64) - (f64.lt - (get_local $0) - (f64.const 0) - ) - (f64.const -1) - (get_local $0) - ) - ) - (get_local $1) - (f64.const 0) - ) - ) - (set_local $2 - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/sign - (get_local $0) - ) - ) - (get_local $1) - (f64.const 0) - ) - ) - ) - (get_local $2) + get_local $0 + f64.const 0 + f64.gt + if (result f64) + f64.const 1 + else + get_local $0 + f64.const 0 + f64.lt + if (result f64) + f64.const -1 + else + get_local $0 + end + end + get_local $1 + f64.const 0 + call $std/math/check + tee_local $2 + if + get_local $0 + call $~lib/bindings/Math/sign + tee_local $0 + get_local $1 + f64.const 0 + call $std/math/check + set_local $2 + end + get_local $2 ) - (func $std/math/test_signf (; 138 ;) (; has Stack IR ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) - (if - (f32.gt - (get_local $0) - (f32.const 0) - ) - (set_local $0 - (f32.const 1) - ) - (if - (f32.lt - (get_local $0) - (f32.const 0) - ) - (set_local $0 - (f32.const -1) - ) - ) - ) - (call $std/math/check - (get_local $0) - (get_local $1) - (f32.const 0) - ) + (func $std/math/test_signf (; 138 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + get_local $0 + f32.const 0 + f32.gt + if + f32.const 1 + set_local $0 + else + get_local $0 + f32.const 0 + f32.lt + if + f32.const -1 + set_local $0 + end + end + get_local $0 + get_local $1 + f32.const 0 + call $std/math/check ) - (func $~lib/math/NativeMath.rem (; 139 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.rem (; 139 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -11901,401 +8301,280 @@ (local $7 i32) (local $8 f64) (local $9 i32) - (set_local $3 - (i64.and - (i64.shr_u - (tee_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $6 - (i64.and - (i64.shr_u - (tee_local $4 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $9 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 63) - ) - ) - ) - (if - (i32.eqz - (tee_local $5 - (i64.eq - (i64.shl - (get_local $4) - (i64.const 1) - ) - (i64.const 0) - ) - ) - ) - (set_local $5 - (i64.eq - (get_local $3) - (i64.const 2047) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (set_local $5 - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - ) - (if - (get_local $5) - (return - (f64.div - (tee_local $0 - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - (get_local $0) - ) - ) - ) - (if - (i64.eq - (i64.shl - (get_local $2) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (get_local $0) - ) - ) - (set_local $2 - (if (result i64) - (i64.eqz - (get_local $3) - ) - (i64.shl - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (tee_local $3 - (i64.sub - (get_local $3) - (i64.clz - (i64.shl - (get_local $2) - (i64.const 12) - ) - ) - ) - ) - ) - (i64.const 1) - ) - ) - (i64.or - (i64.and - (get_local $2) - (i64.const 4503599627370495) - ) - (i64.const 4503599627370496) - ) - ) - ) - (set_local $4 - (if (result i64) - (i64.eqz - (get_local $6) - ) - (i64.shl - (get_local $4) - (i64.add - (i64.sub - (i64.const 0) - (tee_local $6 - (i64.sub - (get_local $6) - (i64.clz - (i64.shl - (get_local $4) - (i64.const 12) - ) - ) - ) - ) - ) - (i64.const 1) - ) - ) - (i64.or - (i64.and - (get_local $4) - (i64.const 4503599627370495) - ) - (i64.const 4503599627370496) - ) - ) - ) - (block $break|0 - (if - (i64.lt_s - (get_local $3) - (get_local $6) - ) - (block - (br_if $break|0 - (i64.eq - (i64.add - (get_local $3) - (i64.const 1) - ) - (get_local $6) - ) - ) - (return - (get_local $0) - ) - ) - ) - (loop $continue|1 - (if - (i64.gt_s - (get_local $3) - (get_local $6) - ) - (block - (if - (i64.ge_u - (get_local $2) - (get_local $4) - ) - (block - (set_local $2 - (i64.sub - (get_local $2) - (get_local $4) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (set_local $7 - (i32.shl - (get_local $7) - (i32.const 1) - ) - ) - (set_local $3 - (i64.sub - (get_local $3) - (i64.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (get_local $4) - ) - (block - (set_local $2 - (i64.sub - (get_local $2) - (get_local $4) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - ) - (if - (i64.eq - (get_local $2) - (i64.const 0) - ) - (set_local $3 - (i64.const -60) - ) - (block - (set_local $3 - (i64.sub - (get_local $3) - (tee_local $4 - (i64.clz - (i64.shl - (get_local $2) - (i64.const 11) - ) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (get_local $4) - ) - ) - ) - ) - ) - (set_local $1 - (f64.abs - (get_local $1) - ) - ) - (set_local $8 - (f64.add - (tee_local $0 - (f64.reinterpret/i64 - (tee_local $2 - (if (result i64) - (i64.gt_s - (get_local $3) - (i64.const 0) - ) - (i64.or - (i64.sub - (get_local $2) - (i64.const 4503599627370496) - ) - (i64.shl - (get_local $3) - (i64.const 52) - ) - ) - (i64.shr_u - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (get_local $3) - ) - (i64.const 1) - ) - ) - ) - ) - ) - ) - (get_local $0) - ) - ) - (if - (i32.eqz - (tee_local $5 - (i64.eq - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (tee_local $5 - (i64.eq - (i64.add - (get_local $3) - (i64.const 1) - ) - (get_local $6) - ) - ) - (if - (i32.eqz - (tee_local $5 - (f64.gt - (get_local $8) - (get_local $1) - ) - ) - ) - (if - (tee_local $5 - (f64.eq - (get_local $8) - (get_local $1) - ) - ) - (set_local $5 - (i32.and - (get_local $7) - (i32.const 1) - ) - ) - ) - ) - ) - ) - (if - (get_local $5) - (set_local $0 - (f64.sub - (get_local $0) - (get_local $1) - ) - ) - ) - (if - (get_local $9) - (set_local $0 - (f64.neg - (get_local $0) - ) - ) - ) - (get_local $0) + get_local $0 + i64.reinterpret/f64 + tee_local $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $3 + get_local $1 + i64.reinterpret/f64 + tee_local $4 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $6 + get_local $2 + i64.const 63 + i64.shr_u + i32.wrap/i64 + set_local $9 + get_local $4 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + tee_local $5 + i32.eqz + if + get_local $3 + i64.const 2047 + i64.eq + set_local $5 + end + get_local $5 + i32.eqz + if + get_local $1 + call $~lib/builtins/isNaN + set_local $5 + end + get_local $5 + if + get_local $0 + get_local $1 + f64.mul + tee_local $0 + get_local $0 + f64.div + return + end + get_local $2 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + get_local $0 + return + end + get_local $3 + i64.eqz + if (result i64) + get_local $2 + i64.const 0 + get_local $3 + get_local $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + tee_local $3 + i64.sub + i64.const 1 + i64.add + i64.shl + else + get_local $2 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + set_local $2 + get_local $6 + i64.eqz + if (result i64) + get_local $4 + i64.const 0 + get_local $6 + get_local $4 + i64.const 12 + i64.shl + i64.clz + i64.sub + tee_local $6 + i64.sub + i64.const 1 + i64.add + i64.shl + else + get_local $4 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + set_local $4 + block $break|0 + get_local $3 + get_local $6 + i64.lt_s + if + get_local $3 + i64.const 1 + i64.add + get_local $6 + i64.eq + br_if $break|0 + get_local $0 + return + end + loop $continue|1 + get_local $3 + get_local $6 + i64.gt_s + if + get_local $2 + get_local $4 + i64.ge_u + if + get_local $2 + get_local $4 + i64.sub + set_local $2 + get_local $7 + i32.const 1 + i32.add + set_local $7 + end + get_local $2 + i64.const 1 + i64.shl + set_local $2 + get_local $7 + i32.const 1 + i32.shl + set_local $7 + get_local $3 + i64.const 1 + i64.sub + set_local $3 + br $continue|1 + end + end + get_local $2 + get_local $4 + i64.ge_u + if + get_local $2 + get_local $4 + i64.sub + set_local $2 + get_local $7 + i32.const 1 + i32.add + set_local $7 + end + get_local $2 + i64.const 0 + i64.eq + if + i64.const -60 + set_local $3 + else + get_local $3 + get_local $2 + i64.const 11 + i64.shl + i64.clz + tee_local $4 + i64.sub + set_local $3 + get_local $2 + get_local $4 + i64.shl + set_local $2 + end + end + get_local $1 + f64.abs + set_local $1 + get_local $3 + i64.const 0 + i64.gt_s + if (result i64) + get_local $2 + i64.const 4503599627370496 + i64.sub + get_local $3 + i64.const 52 + i64.shl + i64.or + else + get_local $2 + i64.const 0 + get_local $3 + i64.sub + i64.const 1 + i64.add + i64.shr_u + end + tee_local $2 + f64.reinterpret/i64 + tee_local $0 + get_local $0 + f64.add + set_local $8 + get_local $3 + get_local $6 + i64.eq + tee_local $5 + i32.eqz + if + get_local $3 + i64.const 1 + i64.add + get_local $6 + i64.eq + tee_local $5 + if + get_local $8 + get_local $1 + f64.gt + tee_local $5 + i32.eqz + if + get_local $8 + get_local $1 + f64.eq + tee_local $5 + if + get_local $7 + i32.const 1 + i32.and + set_local $5 + end + end + end + end + get_local $5 + if + get_local $0 + get_local $1 + f64.sub + set_local $0 + end + get_local $9 + if + get_local $0 + f64.neg + set_local $0 + end + get_local $0 ) - (func $std/math/test_rem (; 140 ;) (; has Stack IR ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMath.rem - (get_local $0) - (get_local $1) - ) - (get_local $2) - (f64.const 0) - ) + (func $std/math/test_rem (; 140 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.rem + get_local $2 + f64.const 0 + call $std/math/check ) - (func $~lib/math/NativeMathf.rem (; 141 ;) (; has Stack IR ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.rem (; 141 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12304,39711 +8583,29134 @@ (local $7 i32) (local $8 f32) (local $9 i32) - (set_local $3 - (i32.and - (i32.shr_u - (tee_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $6 - (i32.and - (i32.shr_u - (tee_local $5 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $9 - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (if - (i32.eqz - (tee_local $4 - (i32.eqz - (i32.shl - (get_local $5) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.eq - (get_local $3) - (i32.const 255) - ) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (set_local $4 - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - ) - (if - (get_local $4) - (return - (f32.div - (tee_local $0 - (f32.mul - (get_local $0) - (get_local $1) - ) - ) - (get_local $0) - ) - ) - ) - (if - (i32.eqz - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (return - (get_local $0) - ) - ) - (set_local $2 - (if (result i32) - (get_local $3) - (i32.or - (i32.and - (get_local $2) - (i32.const 8388607) - ) - (i32.const 8388608) - ) - (i32.shl - (get_local $2) - (i32.sub - (i32.const 1) - (tee_local $3 - (i32.sub - (get_local $3) - (i32.clz - (i32.shl - (get_local $2) - (i32.const 9) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $5 - (if (result i32) - (get_local $6) - (i32.or - (i32.and - (get_local $5) - (i32.const 8388607) - ) - (i32.const 8388608) - ) - (i32.shl - (get_local $5) - (i32.sub - (i32.const 1) - (tee_local $6 - (i32.sub - (get_local $6) - (i32.clz - (i32.shl - (get_local $5) - (i32.const 9) - ) - ) - ) - ) - ) - ) - ) - ) - (block $break|0 - (if - (i32.lt_s - (get_local $3) - (get_local $6) - ) - (block - (br_if $break|0 - (i32.eq - (i32.add - (get_local $3) - (i32.const 1) - ) - (get_local $6) - ) - ) - (return - (get_local $0) - ) - ) - ) - (loop $continue|1 - (if - (i32.gt_s - (get_local $3) - (get_local $6) - ) - (block - (if - (i32.ge_u - (get_local $2) - (get_local $5) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (get_local $5) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (set_local $7 - (i32.shl - (get_local $7) - (i32.const 1) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (get_local $5) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (get_local $5) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - ) - (if - (get_local $2) - (block - (set_local $3 - (i32.sub - (get_local $3) - (tee_local $4 - (i32.clz - (i32.shl - (get_local $2) - (i32.const 8) - ) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (get_local $4) - ) - ) - ) - (set_local $3 - (i32.const -30) - ) - ) - ) - (set_local $1 - (f32.abs - (get_local $1) - ) - ) - (set_local $8 - (f32.add - (tee_local $0 - (f32.reinterpret/i32 - (tee_local $2 - (if (result i32) - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - (i32.or - (i32.sub - (get_local $2) - (i32.const 8388608) - ) - (i32.shl - (get_local $3) - (i32.const 23) - ) - ) - (i32.shr_u - (get_local $2) - (i32.sub - (i32.const 1) - (get_local $3) - ) - ) - ) - ) - ) - ) - (get_local $0) - ) - ) - (if - (i32.eqz - (tee_local $4 - (i32.eq - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (tee_local $4 - (i32.eq - (i32.add - (get_local $3) - (i32.const 1) - ) - (get_local $6) - ) - ) - (if - (i32.eqz - (tee_local $4 - (f32.gt - (get_local $8) - (get_local $1) - ) - ) - ) - (if - (tee_local $4 - (f32.eq - (get_local $8) - (get_local $1) - ) - ) - (set_local $4 - (i32.and - (get_local $7) - (i32.const 1) - ) - ) - ) - ) - ) - ) - (if - (get_local $4) - (set_local $0 - (f32.sub - (get_local $0) - (get_local $1) - ) - ) - ) - (if - (get_local $9) - (set_local $0 - (f32.neg - (get_local $0) - ) - ) - ) - (get_local $0) + get_local $0 + i32.reinterpret/f32 + tee_local $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $3 + get_local $1 + i32.reinterpret/f32 + tee_local $5 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $6 + get_local $2 + i32.const 31 + i32.shr_u + set_local $9 + get_local $5 + i32.const 1 + i32.shl + i32.eqz + tee_local $4 + i32.eqz + if + get_local $3 + i32.const 255 + i32.eq + set_local $4 + end + get_local $4 + i32.eqz + if + get_local $1 + call $~lib/builtins/isNaN + set_local $4 + end + get_local $4 + if + get_local $0 + get_local $1 + f32.mul + tee_local $0 + get_local $0 + f32.div + return + end + get_local $2 + i32.const 1 + i32.shl + i32.eqz + if + get_local $0 + return + end + get_local $3 + if (result i32) + get_local $2 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + get_local $2 + i32.const 1 + get_local $3 + get_local $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + tee_local $3 + i32.sub + i32.shl + end + set_local $2 + get_local $6 + if (result i32) + get_local $5 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + get_local $5 + i32.const 1 + get_local $6 + get_local $5 + i32.const 9 + i32.shl + i32.clz + i32.sub + tee_local $6 + i32.sub + i32.shl + end + set_local $5 + block $break|0 + get_local $3 + get_local $6 + i32.lt_s + if + get_local $3 + i32.const 1 + i32.add + get_local $6 + i32.eq + br_if $break|0 + get_local $0 + return + end + loop $continue|1 + get_local $3 + get_local $6 + i32.gt_s + if + get_local $2 + get_local $5 + i32.ge_u + if + get_local $2 + get_local $5 + i32.sub + set_local $2 + get_local $7 + i32.const 1 + i32.add + set_local $7 + end + get_local $2 + i32.const 1 + i32.shl + set_local $2 + get_local $7 + i32.const 1 + i32.shl + set_local $7 + get_local $3 + i32.const 1 + i32.sub + set_local $3 + br $continue|1 + end + end + get_local $2 + get_local $5 + i32.ge_u + if + get_local $2 + get_local $5 + i32.sub + set_local $2 + get_local $7 + i32.const 1 + i32.add + set_local $7 + end + get_local $2 + if + get_local $3 + get_local $2 + i32.const 8 + i32.shl + i32.clz + tee_local $4 + i32.sub + set_local $3 + get_local $2 + get_local $4 + i32.shl + set_local $2 + else + i32.const -30 + set_local $3 + end + end + get_local $1 + f32.abs + set_local $1 + get_local $3 + i32.const 0 + i32.gt_s + if (result i32) + get_local $2 + i32.const 8388608 + i32.sub + get_local $3 + i32.const 23 + i32.shl + i32.or + else + get_local $2 + i32.const 1 + get_local $3 + i32.sub + i32.shr_u + end + tee_local $2 + f32.reinterpret/i32 + tee_local $0 + get_local $0 + f32.add + set_local $8 + get_local $3 + get_local $6 + i32.eq + tee_local $4 + i32.eqz + if + get_local $3 + i32.const 1 + i32.add + get_local $6 + i32.eq + tee_local $4 + if + get_local $8 + get_local $1 + f32.gt + tee_local $4 + i32.eqz + if + get_local $8 + get_local $1 + f32.eq + tee_local $4 + if + get_local $7 + i32.const 1 + i32.and + set_local $4 + end + end + end + end + get_local $4 + if + get_local $0 + get_local $1 + f32.sub + set_local $0 + end + get_local $9 + if + get_local $0 + f32.neg + set_local $0 + end + get_local $0 ) - (func $std/math/test_remf (; 142 ;) (; has Stack IR ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.rem - (get_local $0) - (get_local $1) - ) - (get_local $2) - (f32.const 0) - ) + (func $std/math/test_remf (; 142 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.rem + get_local $2 + f32.const 0 + call $std/math/check ) - (func $~lib/math/NativeMath.sinh (; 143 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 143 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) (local $4 i64) - (set_local $1 - (f64.reinterpret/i64 - (tee_local $4 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 9223372036854775807) - ) - ) - ) - ) - (set_local $2 - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - (if - (i32.lt_u - (tee_local $3 - (i32.wrap/i64 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) - (i32.const 1082535490) - ) - (block - (set_local $1 - (call $~lib/math/NativeMath.expm1 - (get_local $1) - ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 1072693248) - ) - (block - (if - (i32.lt_u - (get_local $3) - (i32.const 1045430272) - ) - (return - (get_local $0) - ) - ) - (return - (f64.mul - (get_local $2) - (f64.sub - (f64.mul - (f64.const 2) - (get_local $1) - ) - (f64.div - (f64.mul - (get_local $1) - (get_local $1) - ) - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - (return - (f64.mul - (get_local $2) - (f64.add - (get_local $1) - (f64.div - (get_local $1) - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - (set_local $0 - (f64.mul - (f64.const 2) - (get_local $2) - ) - ) - (set_local $1 - (f64.mul - (f64.mul - (call $~lib/math/NativeMath.exp - (f64.sub - (get_local $1) - (f64.const 1416.0996898839683) - ) - ) - (f64.const 2247116418577894884661631e283) - ) - (f64.const 2247116418577894884661631e283) - ) - ) - (f64.mul - (get_local $0) - (get_local $1) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + tee_local $4 + f64.reinterpret/i64 + set_local $1 + f64.const 0.5 + get_local $0 + f64.copysign + set_local $2 + get_local $4 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $3 + i32.const 1082535490 + i32.lt_u + if + get_local $1 + call $~lib/math/NativeMath.expm1 + set_local $1 + get_local $3 + i32.const 1072693248 + i32.lt_u + if + get_local $3 + i32.const 1045430272 + i32.lt_u + if + get_local $0 + return + end + get_local $2 + f64.const 2 + get_local $1 + f64.mul + get_local $1 + get_local $1 + f64.mul + get_local $1 + f64.const 1 + f64.add + f64.div + f64.sub + f64.mul + return + end + get_local $2 + get_local $1 + get_local $1 + get_local $1 + f64.const 1 + f64.add + f64.div + f64.add + f64.mul + return + end + f64.const 2 + get_local $2 + f64.mul + set_local $0 + get_local $1 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + f64.const 2247116418577894884661631e283 + f64.mul + f64.const 2247116418577894884661631e283 + f64.mul + set_local $1 + get_local $0 + get_local $1 + f64.mul ) - (func $std/math/test_sinh (; 144 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sinh (; 144 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.sinh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/sinh - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.sinh + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/sinh + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.sinh (; 145 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 145 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) - (set_local $1 - (f32.reinterpret/i32 - (tee_local $2 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - ) - ) - (set_local $3 - (f32.copysign - (f32.const 0.5) - (get_local $0) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1118925335) - ) - (block - (set_local $1 - (call $~lib/math/NativeMathf.expm1 - (get_local $1) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1065353216) - ) - (block - (if - (i32.lt_u - (get_local $2) - (i32.const 964689920) - ) - (return - (get_local $0) - ) - ) - (return - (f32.mul - (get_local $3) - (f32.sub - (f32.mul - (f32.const 2) - (get_local $1) - ) - (f32.div - (f32.mul - (get_local $1) - (get_local $1) - ) - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - ) - ) - ) - ) - ) - (return - (f32.mul - (get_local $3) - (f32.add - (get_local $1) - (f32.div - (get_local $1) - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - ) - ) - ) - ) - ) - (set_local $0 - (f32.mul - (f32.const 2) - (get_local $3) - ) - ) - (set_local $1 - (f32.mul - (f32.mul - (call $~lib/math/NativeMathf.exp - (f32.sub - (get_local $1) - (f32.const 162.88958740234375) - ) - ) - (f32.const 1661534994731144841129758e11) - ) - (f32.const 1661534994731144841129758e11) - ) - ) - (f32.mul - (get_local $0) - (get_local $1) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + tee_local $2 + f32.reinterpret/i32 + set_local $1 + f32.const 0.5 + get_local $0 + f32.copysign + set_local $3 + get_local $2 + i32.const 1118925335 + i32.lt_u + if + get_local $1 + call $~lib/math/NativeMathf.expm1 + set_local $1 + get_local $2 + i32.const 1065353216 + i32.lt_u + if + get_local $2 + i32.const 964689920 + i32.lt_u + if + get_local $0 + return + end + get_local $3 + f32.const 2 + get_local $1 + f32.mul + get_local $1 + get_local $1 + f32.mul + get_local $1 + f32.const 1 + f32.add + f32.div + f32.sub + f32.mul + return + end + get_local $3 + get_local $1 + get_local $1 + get_local $1 + f32.const 1 + f32.add + f32.div + f32.add + f32.mul + return + end + f32.const 2 + get_local $3 + f32.mul + set_local $0 + get_local $1 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + f32.const 1661534994731144841129758e11 + f32.mul + f32.const 1661534994731144841129758e11 + f32.mul + set_local $1 + get_local $0 + get_local $1 + f32.mul ) - (func $std/math/test_sinhf (; 146 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.sinh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_sinhf (; 146 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.sinh + get_local $1 + get_local $2 + call $std/math/check ) - (func $std/math/test_sqrt (; 147 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sqrt (; 147 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (f64.sqrt - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/sqrt - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + f64.sqrt + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/sqrt + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $std/math/test_sqrtf (; 148 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (f32.sqrt - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_sqrtf (; 148 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + f32.sqrt + get_local $1 + get_local $2 + call $std/math/check ) - (func $~lib/math/NativeMath.tanh (; 149 ;) (; has Stack IR ;) (type $FF) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 149 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) - (set_local $1 - (f64.reinterpret/i64 - (tee_local $3 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 9223372036854775807) - ) - ) - ) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.const 32) - ) - ) - ) - (i32.const 1071748074) - ) - (set_local $1 - (if (result f64) - (i32.gt_u - (get_local $2) - (i32.const 1077149696) - ) - (f64.sub - (f64.const 1) - (f64.div - (f64.const 0) - (get_local $1) - ) - ) - (f64.sub - (f64.const 1) - (f64.div - (f64.const 2) - (f64.add - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const 2) - (get_local $1) - ) - ) - (f64.const 2) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $2) - (i32.const 1070618798) - ) - (set_local $1 - (f64.div - (tee_local $1 - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const 2) - (get_local $1) - ) - ) - ) - (f64.add - (get_local $1) - (f64.const 2) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1048576) - ) - (set_local $1 - (f64.div - (f64.neg - (tee_local $1 - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const -2) - (get_local $1) - ) - ) - ) - ) - (f64.add - (get_local $1) - (f64.const 2) - ) - ) - ) - ) - ) - ) - (f64.copysign - (get_local $1) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + tee_local $3 + f64.reinterpret/i64 + set_local $1 + get_local $3 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $2 + i32.const 1071748074 + i32.gt_u + if + get_local $2 + i32.const 1077149696 + i32.gt_u + if (result f64) + f64.const 1 + f64.const 0 + get_local $1 + f64.div + f64.sub + else + f64.const 1 + f64.const 2 + f64.const 2 + get_local $1 + f64.mul + call $~lib/math/NativeMath.expm1 + f64.const 2 + f64.add + f64.div + f64.sub + end + set_local $1 + else + get_local $2 + i32.const 1070618798 + i32.gt_u + if + f64.const 2 + get_local $1 + f64.mul + call $~lib/math/NativeMath.expm1 + tee_local $1 + get_local $1 + f64.const 2 + f64.add + f64.div + set_local $1 + else + get_local $2 + i32.const 1048576 + i32.ge_u + if + f64.const -2 + get_local $1 + f64.mul + call $~lib/math/NativeMath.expm1 + tee_local $1 + f64.neg + get_local $1 + f64.const 2 + f64.add + f64.div + set_local $1 + end + end + end + get_local $1 + get_local $0 + f64.copysign ) - (func $std/math/test_tanh (; 150 ;) (; has Stack IR ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_tanh (; 150 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (tee_local $3 - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.tanh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) - ) - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/tanh - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - ) - (get_local $4) - ) - ) + get_local $0 + call $~lib/math/NativeMath.tanh + get_local $1 + get_local $2 + call $std/math/check + tee_local $4 + if (result i32) + get_local $0 + call $~lib/bindings/Math/tanh + tee_local $0 + get_local $1 + get_local $2 + call $std/math/check + else + get_local $4 + end + tee_local $3 ) - (func $~lib/math/NativeMathf.tanh (; 151 ;) (; has Stack IR ;) (type $ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 151 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) - (set_local $1 - (f32.reinterpret/i32 - (tee_local $2 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $2) - (i32.const 1057791828) - ) - (set_local $1 - (if (result f32) - (i32.gt_u - (get_local $2) - (i32.const 1092616192) - ) - (f32.add - (f32.const 1) - (f32.div - (f32.const 0) - (get_local $1) - ) - ) - (f32.sub - (f32.const 1) - (f32.div - (f32.const 2) - (f32.add - (call $~lib/math/NativeMathf.expm1 - (f32.mul - (f32.const 2) - (get_local $1) - ) - ) - (f32.const 2) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $2) - (i32.const 1048757624) - ) - (set_local $1 - (f32.div - (tee_local $1 - (call $~lib/math/NativeMathf.expm1 - (f32.mul - (f32.const 2) - (get_local $1) - ) - ) - ) - (f32.add - (get_local $1) - (f32.const 2) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 8388608) - ) - (set_local $1 - (f32.div - (f32.neg - (tee_local $1 - (call $~lib/math/NativeMathf.expm1 - (f32.mul - (f32.const -2) - (get_local $1) - ) - ) - ) - ) - (f32.add - (get_local $1) - (f32.const 2) - ) - ) - ) - ) - ) - ) - (f32.copysign - (get_local $1) - (get_local $0) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + tee_local $2 + f32.reinterpret/i32 + set_local $1 + get_local $2 + i32.const 1057791828 + i32.gt_u + if + get_local $2 + i32.const 1092616192 + i32.gt_u + if (result f32) + f32.const 1 + f32.const 0 + get_local $1 + f32.div + f32.add + else + f32.const 1 + f32.const 2 + f32.const 2 + get_local $1 + f32.mul + call $~lib/math/NativeMathf.expm1 + f32.const 2 + f32.add + f32.div + f32.sub + end + set_local $1 + else + get_local $2 + i32.const 1048757624 + i32.gt_u + if + f32.const 2 + get_local $1 + f32.mul + call $~lib/math/NativeMathf.expm1 + tee_local $1 + get_local $1 + f32.const 2 + f32.add + f32.div + set_local $1 + else + get_local $2 + i32.const 8388608 + i32.ge_u + if + f32.const -2 + get_local $1 + f32.mul + call $~lib/math/NativeMathf.expm1 + tee_local $1 + f32.neg + get_local $1 + f32.const 2 + f32.add + f32.div + set_local $1 + end + end + end + get_local $1 + get_local $0 + f32.copysign ) - (func $std/math/test_tanhf (; 152 ;) (; has Stack IR ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.tanh - (get_local $0) - ) - (get_local $1) - (get_local $2) - ) + (func $std/math/test_tanhf (; 152 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + get_local $0 + call $~lib/math/NativeMathf.tanh + get_local $1 + get_local $2 + call $std/math/check ) - (func $std/math/test_trunc (; 153 ;) (; has Stack IR ;) (type $FUNCSIG$iddi) (param $0 f64) (param $1 f64) (param $2 i32) (result i32) - (if - (tee_local $2 - (call $std/math/check - (f64.trunc - (get_local $0) - ) - (get_local $1) - (f64.const 0) - ) - ) - (set_local $2 - (call $std/math/check - (tee_local $0 - (call $~lib/bindings/Math/trunc - (get_local $0) - ) - ) - (get_local $1) - (f64.const 0) - ) - ) - ) - (get_local $2) + (func $std/math/test_trunc (; 153 ;) (type $FUNCSIG$iddi) (param $0 f64) (param $1 f64) (param $2 i32) (result i32) + get_local $0 + f64.trunc + get_local $1 + f64.const 0 + call $std/math/check + tee_local $2 + if + get_local $0 + call $~lib/bindings/Math/trunc + tee_local $0 + get_local $1 + f64.const 0 + call $std/math/check + set_local $2 + end + get_local $2 ) - (func $std/math/test_truncf (; 154 ;) (; has Stack IR ;) (type $FUNCSIG$iffi) (param $0 f32) (param $1 f32) (param $2 i32) (result i32) - (call $std/math/check - (f32.trunc - (get_local $0) - ) - (get_local $1) - (f32.const 0) - ) + (func $std/math/test_truncf (; 154 ;) (type $FUNCSIG$iffi) (param $0 f32) (param $1 f32) (param $2 i32) (result i32) + get_local $0 + f32.trunc + get_local $1 + f32.const 0 + call $std/math/check ) - (func $~lib/math/ipow64 (; 155 ;) (; has Stack IR ;) (type $IiI) (param $0 i64) (param $1 i32) (result i64) + (func $~lib/math/ipow64 (; 155 ;) (type $IiI) (param $0 i64) (param $1 i32) (result i64) (local $2 i64) (local $3 i32) - (set_local $2 - (i64.const 1) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (return - (i64.const 0) - ) - ) - (block $break|0 - (block $case2|0 - (block $case1|0 - (if - (get_local $1) - (block - (br_if $case1|0 - (i32.eq - (get_local $1) - (i32.const 1) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $1) - (i32.const 2) - ) - ) - (br $break|0) - ) - ) - (return - (i64.const 1) - ) - ) - (return - (get_local $0) - ) - ) - (return - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.le_s - (tee_local $3 - (i32.sub - (i32.const 32) - (i32.clz - (get_local $1) - ) - ) - ) - (i32.const 6) - ) - (block - (block $break|1 - (block $case5|1 - (block $case4|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (if - (i32.ne - (get_local $3) - (i32.const 6) - ) - (block - (br_if $case1|1 - (i32.eq - (get_local $3) - (i32.const 5) - ) - ) - (block $tablify|0 - (br_table $case5|1 $case4|1 $case3|1 $case2|1 $tablify|0 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (br $break|1) - ) - ) - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (get_local $0) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - ) - (return - (get_local $2) - ) - ) - ) - (loop $continue|2 - (if - (i32.gt_s - (get_local $1) - (i32.const 0) - ) - (block - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - (br $continue|2) - ) - ) - ) - (get_local $2) + i64.const 1 + set_local $2 + get_local $1 + i32.const 0 + i32.lt_s + if + i64.const 0 + return + end + block $break|0 + block $case2|0 + block $case1|0 + get_local $1 + if + get_local $1 + i32.const 1 + i32.eq + br_if $case1|0 + get_local $1 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i64.const 1 + return + end + get_local $0 + return + end + get_local $0 + get_local $0 + i64.mul + return + end + i32.const 32 + get_local $1 + i32.clz + i32.sub + tee_local $3 + i32.const 6 + i32.le_s + if + block $break|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + get_local $3 + i32.const 6 + i32.ne + if + get_local $3 + i32.const 5 + i32.eq + br_if $case1|1 + block $tablify|0 + get_local $3 + i32.const 1 + i32.sub + br_table $case5|1 $case4|1 $case3|1 $case2|1 $tablify|0 + end + br $break|1 + end + get_local $1 + i32.const 1 + i32.and + if + get_local $0 + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + end + get_local $2 + return + end + loop $continue|2 + get_local $1 + i32.const 0 + i32.gt_s + if + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + br $continue|2 + end + end + get_local $2 ) - (func $start (; 156 ;) (; has Stack IR ;) (type $v) + (func $start (; 156 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 f64) (local $3 f32) (local $4 i64) (local $5 i64) - (if - (i32.eqz - (call $std/math/check - (f64.const 2.718281828459045) - (get_global $~lib/bindings/Math/E) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f64.const 0.6931471805599453) - (get_global $~lib/bindings/Math/LN2) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f64.const 2.302585092994046) - (get_global $~lib/bindings/Math/LN10) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 118) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f64.const 1.4426950408889634) - (get_global $~lib/bindings/Math/LOG2E) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 119) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f64.const 3.141592653589793) - (get_global $~lib/bindings/Math/PI) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 120) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f64.const 0.7071067811865476) - (get_global $~lib/bindings/Math/SQRT1_2) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 121) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f64.const 1.4142135623730951) - (get_global $~lib/bindings/Math/SQRT2) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f32.const 2.7182817459106445) - (f32.demote/f64 - (get_global $~lib/bindings/Math/E) - ) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f32.const 0.6931471824645996) - (f32.demote/f64 - (get_global $~lib/bindings/Math/LN2) - ) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 125) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f32.const 2.3025851249694824) - (f32.demote/f64 - (get_global $~lib/bindings/Math/LN10) - ) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f32.const 1.4426950216293335) - (f32.demote/f64 - (get_global $~lib/bindings/Math/LOG2E) - ) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f32.const 3.1415927410125732) - (f32.demote/f64 - (get_global $~lib/bindings/Math/PI) - ) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f32.const 0.7071067690849304) - (f32.demote/f64 - (get_global $~lib/bindings/Math/SQRT1_2) - ) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (f32.const 1.4142135381698608) - (f32.demote/f64 - (get_global $~lib/bindings/Math/SQRT2) - ) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -8.06684839057968) - (i32.const -2) - (f64.const -2.01671209764492) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 141) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 4.345239849338305) - (i32.const -1) - (f64.const 2.1726199246691524) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 142) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -8.38143342755525) - (i32.const 0) - (f64.const -8.38143342755525) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 143) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -6.531673581913484) - (i32.const 1) - (f64.const -13.063347163826968) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 144) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 9.267056966972586) - (i32.const 2) - (f64.const 37.06822786789034) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 145) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0.6619858980995045) - (i32.const 3) - (f64.const 5.295887184796036) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 146) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -0.4066039223853553) - (i32.const 4) - (f64.const -6.505662758165685) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 147) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0.5617597462207241) - (i32.const 5) - (f64.const 17.97631187906317) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 148) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0.7741522965913037) - (i32.const 6) - (f64.const 49.545746981843436) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 149) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -0.6787637026394024) - (i32.const 7) - (f64.const -86.88175393784351) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 150) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0) - (i32.const 2147483647) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 153) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0) - (i32.const -2147483647) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 154) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -0) - (i32.const 2147483647) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const nan:0x8000000000000) - (i32.const 0) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 156) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const inf) - (i32.const 0) - (f64.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 157) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -inf) - (i32.const 0) - (f64.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 158) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 1) - (i32.const 0) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 1) - (i32.const 1) - (f64.const 2) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 160) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 1) - (i32.const -1) - (f64.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 161) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 1) - (i32.const 2147483647) - (f64.const inf) - (i32.const 17) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 162) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const nan:0x8000000000000) - (i32.const 1) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 163) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const inf) - (i32.const 2147483647) - (f64.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 164) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const inf) - (i32.const -2147483647) - (f64.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -inf) - (i32.const 2147483647) - (f64.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 166) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 8988465674311579538646525e283) - (i32.const -2097) - (f64.const 5e-324) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 167) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 5e-324) - (i32.const 2097) - (f64.const 8988465674311579538646525e283) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 168) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 1.000244140625) - (i32.const -1074) - (f64.const 5e-324) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 169) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0.7499999999999999) - (i32.const -1073) - (f64.const 5e-324) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 170) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0.5000000000000012) - (i32.const -1024) - (f64.const 2.781342323134007e-309) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 171) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -8.066848754882812) - (i32.const -2) - (f32.const -2.016712188720703) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 180) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 4.345239639282227) - (i32.const -1) - (f32.const 2.1726198196411133) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 181) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -8.381433486938477) - (i32.const 0) - (f32.const -8.381433486938477) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 182) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -6.531673431396484) - (i32.const 1) - (f32.const -13.063346862792969) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 183) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 9.267057418823242) - (i32.const 2) - (f32.const 37.06822967529297) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 184) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0.6619858741760254) - (i32.const 3) - (f32.const 5.295886993408203) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 185) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -0.40660393238067627) - (i32.const 4) - (f32.const -6.50566291809082) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 186) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0.5617597699165344) - (i32.const 5) - (f32.const 17.9763126373291) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 187) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0.7741522789001465) - (i32.const 6) - (f32.const 49.545745849609375) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 188) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -0.6787636876106262) - (i32.const 7) - (f32.const -86.88175201416016) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 189) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0) - (i32.const 2147483647) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 192) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0) - (i32.const -2147483647) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 193) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -0) - (i32.const 2147483647) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 194) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const nan:0x400000) - (i32.const 0) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 195) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const inf) - (i32.const 0) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 196) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -inf) - (i32.const 0) - (f32.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 197) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1) - (i32.const 0) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 198) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1) - (i32.const 1) - (f32.const 2) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 199) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1) - (i32.const -1) - (f32.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 200) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1) - (i32.const 2147483647) - (f32.const inf) - (i32.const 17) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 201) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const nan:0x400000) - (i32.const 1) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 202) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const inf) - (i32.const 2147483647) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 203) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const inf) - (i32.const -2147483647) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 204) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -inf) - (i32.const 2147483647) - (f32.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 205) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1701411834604692317316873e14) - (i32.const -276) - (f32.const 1.401298464324817e-45) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 206) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1.401298464324817e-45) - (i32.const 276) - (f32.const 1701411834604692317316873e14) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 207) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1.000244140625) - (i32.const -149) - (f32.const 1.401298464324817e-45) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 208) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0.7499999403953552) - (i32.const -148) - (f32.const 1.401298464324817e-45) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 209) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0.5000006556510925) - (i32.const -128) - (f32.const 1.4693693398263237e-39) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 210) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -8.06684839057968) - (f64.const 8.06684839057968) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 222) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 4.345239849338305) - (f64.const 4.345239849338305) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 223) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -8.38143342755525) - (f64.const 8.38143342755525) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 224) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -6.531673581913484) - (f64.const 6.531673581913484) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 225) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 9.267056966972586) - (f64.const 9.267056966972586) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 226) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 0.6619858980995045) - (f64.const 0.6619858980995045) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 227) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -0.4066039223853553) - (f64.const 0.4066039223853553) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 228) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 0.5617597462207241) - (f64.const 0.5617597462207241) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 229) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 0.7741522965913037) - (f64.const 0.7741522965913037) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 230) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -0.6787637026394024) - (f64.const 0.6787637026394024) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 231) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 234) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 235) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 236) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 237) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const inf) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 238) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -inf) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 239) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 240) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -8.066848754882812) - (f32.const 8.066848754882812) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 249) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 4.345239639282227) - (f32.const 4.345239639282227) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 250) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -8.381433486938477) - (f32.const 8.381433486938477) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 251) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -6.531673431396484) - (f32.const 6.531673431396484) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 252) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 9.267057418823242) - (f32.const 9.267057418823242) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 253) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 0.6619858741760254) - (f32.const 0.6619858741760254) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 254) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -0.40660393238067627) - (f32.const 0.40660393238067627) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 255) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 0.5617597699165344) - (f32.const 0.5617597699165344) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 256) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 0.7741522789001465) - (f32.const 0.7741522789001465) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 257) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -0.6787636876106262) - (f32.const 0.6787636876106262) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 258) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 261) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 262) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 263) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 264) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const inf) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 265) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -inf) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 266) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 267) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 279) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 4.345239849338305) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 280) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 281) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 282) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 9.267056966972586) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 283) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 0.6619858980995045) - (f64.const 0.8473310828433507) - (f64.const -0.41553276777267456) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 284) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -0.4066039223853553) - (f64.const 1.989530071088669) - (f64.const 0.4973946213722229) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 285) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 0.5617597462207241) - (f64.const 0.9742849645674904) - (f64.const -0.4428897500038147) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 286) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 0.7741522965913037) - (f64.const 0.6854215158636222) - (f64.const -0.12589527666568756) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 287) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -0.6787637026394024) - (f64.const 2.316874138205964) - (f64.const -0.17284949123859406) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 288) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 0) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 291) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -1) - (f64.const 3.141592653589793) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 292) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 293) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 1.0000000000000002) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 294) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -1.0000000000000002) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 295) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 296) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 297) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 298) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -0.5309227209592985) - (f64.const 2.1304853799705463) - (f64.const 0.1391008496284485) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 299) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 0.4939556746399746) - (f64.const 1.0541629875851946) - (f64.const 0.22054767608642578) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 300) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 309) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 4.345239639282227) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 310) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 311) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 312) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 9.267057418823242) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 313) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 0.6619858741760254) - (f32.const 0.8473311066627502) - (f32.const -0.13588131964206696) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 314) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -0.40660393238067627) - (f32.const 1.989530086517334) - (f32.const 0.03764917701482773) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 315) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 0.5617597699165344) - (f32.const 0.9742849469184875) - (f32.const 0.18443739414215088) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 316) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 0.7741522789001465) - (f32.const 0.6854215264320374) - (f32.const -0.29158344864845276) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 317) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -0.6787636876106262) - (f32.const 2.3168740272521973) - (f32.const -0.3795364499092102) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 318) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 0) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 321) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -1) - (f32.const 3.1415927410125732) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 322) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 323) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 1.0000001192092896) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 324) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -1.0000001192092896) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 325) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 326) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 327) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 328) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 0.49965065717697144) - (f32.const 1.0476008653640747) - (f32.const -0.21161814033985138) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 329) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -0.5051405429840088) - (f32.const 2.1003410816192627) - (f32.const -0.20852705836296082) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 330) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -0.5189794898033142) - (f32.const 2.116452932357788) - (f32.const -0.14600826799869537) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 331) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 343) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 4.345239849338305) - (f64.const 2.1487163980597503) - (f64.const -0.291634738445282) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 344) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 345) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 346) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 9.267056966972586) - (f64.const 2.91668914109908) - (f64.const -0.24191908538341522) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 347) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 0.6619858980995045) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 348) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -0.4066039223853553) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 349) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 0.5617597462207241) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 350) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 0.7741522965913037) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 351) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -0.6787637026394024) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 352) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 355) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 356) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 357) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 0.9999923706054688) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 359) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 360) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 361) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 1.1060831199926429) - (f64.const 0.4566373404384803) - (f64.const -0.29381608963012695) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 377) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 1.1089809557628658) - (f64.const 0.4627246859959428) - (f64.const -0.3990095555782318) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 379) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 1.1169429159875521) - (f64.const 0.47902433134075284) - (f64.const -0.321674108505249) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 380) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 389) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 4.345239639282227) - (f32.const 2.148716449737549) - (f32.const 0.4251045286655426) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 390) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 391) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 392) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 9.267057418823242) - (f32.const 2.916689157485962) - (f32.const -0.1369788944721222) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 393) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 0.6619858741760254) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 394) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -0.40660393238067627) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 395) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 0.5617597699165344) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 396) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 0.7741522789001465) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 397) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -0.6787636876106262) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 398) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 401) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 402) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 403) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 0.9999923706054688) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 404) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 405) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 406) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 407) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -1125899906842624) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 408) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 420) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 4.345239849338305) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 421) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 422) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 423) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 9.267056966972586) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 424) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 0.6619858980995045) - (f64.const 0.7234652439515459) - (f64.const -0.13599912822246552) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 425) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -0.4066039223853553) - (f64.const -0.41873374429377225) - (f64.const -0.09264230728149414) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 426) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 0.5617597462207241) - (f64.const 0.5965113622274062) - (f64.const -0.10864213854074478) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 427) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 0.7741522965913037) - (f64.const 0.8853748109312743) - (f64.const -0.4256366193294525) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 428) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -0.6787637026394024) - (f64.const -0.7460778114110673) - (f64.const 0.13986606895923615) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 429) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 1) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 432) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -1) - (f64.const -1.5707963267948966) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 433) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 434) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 435) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 1.0000000000000002) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 436) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -1.0000000000000002) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 437) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 438) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 439) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 440) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 0.5073043929119148) - (f64.const 0.5320538997772349) - (f64.const -0.16157317161560059) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 441) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 450) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 4.345239639282227) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 451) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 452) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 453) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 9.267057418823242) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 454) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 0.6619858741760254) - (f32.const 0.7234652042388916) - (f32.const -0.1307632476091385) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 455) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -0.40660393238067627) - (f32.const -0.41873374581336975) - (f32.const 0.3161141574382782) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 456) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 0.5617597699165344) - (f32.const 0.5965113639831543) - (f32.const -0.4510819613933563) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 457) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 0.7741522789001465) - (f32.const 0.8853747844696045) - (f32.const 0.02493886835873127) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 458) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -0.6787636876106262) - (f32.const -0.7460777759552002) - (f32.const 0.2515012323856354) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 459) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 1) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 462) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -1) - (f32.const -1.5707963705062866) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 463) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 464) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 465) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 1.0000001192092896) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 466) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -1.0000001192092896) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 467) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 468) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 469) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 470) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 0.5004770159721375) - (f32.const 0.5241496562957764) - (f32.const -0.29427099227905273) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 471) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -8.06684839057968) - (f64.const -2.784729878387861) - (f64.const -0.4762189984321594) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 483) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 4.345239849338305) - (f64.const 2.175213389013164) - (f64.const -0.02728751301765442) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 484) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -8.38143342755525) - (f64.const -2.822706083697696) - (f64.const 0.20985257625579834) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 485) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -6.531673581913484) - (f64.const -2.575619446591922) - (f64.const 0.3113134205341339) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 486) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 9.267056966972586) - (f64.const 2.9225114951048674) - (f64.const 0.4991756081581116) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 487) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 0.6619858980995045) - (f64.const 0.6212462762707166) - (f64.const -0.4697347581386566) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 488) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -0.4066039223853553) - (f64.const -0.39615990393192035) - (f64.const -0.40814438462257385) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 489) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 0.5617597462207241) - (f64.const 0.5357588870255474) - (f64.const 0.3520713150501251) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 490) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 0.7741522965913037) - (f64.const 0.7123571263197349) - (f64.const 0.13371451199054718) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 491) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -0.6787637026394024) - (f64.const -0.635182348903198) - (f64.const 0.04749670997262001) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 492) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 495) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 496) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -inf) - (f64.const -inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 497) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 498) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 499) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -8.066848754882812) - (f32.const -2.7847299575805664) - (f32.const -0.14418013393878937) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 528) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 4.345239639282227) - (f32.const 2.17521333694458) - (f32.const -0.020796965807676315) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 529) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -8.381433486938477) - (f32.const -2.8227059841156006) - (f32.const 0.44718533754348755) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 530) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -6.531673431396484) - (f32.const -2.5756194591522217) - (f32.const -0.14822272956371307) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 531) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 9.267057418823242) - (f32.const 2.922511577606201) - (f32.const 0.14270681142807007) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 532) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 0.6619858741760254) - (f32.const 0.6212462782859802) - (f32.const 0.3684912919998169) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 533) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -0.40660393238067627) - (f32.const -0.39615991711616516) - (f32.const -0.13170306384563446) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 534) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 0.5617597699165344) - (f32.const 0.535758912563324) - (f32.const 0.08184859901666641) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 535) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 0.7741522789001465) - (f32.const 0.7123571038246155) - (f32.const -0.14270737767219543) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 536) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -0.6787636876106262) - (f32.const -0.6351823210716248) - (f32.const 0.2583143711090088) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 537) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 540) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 541) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -inf) - (f32.const -inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 542) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 543) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 544) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -8.06684839057968) - (f64.const -1.4474613762633468) - (f64.const 0.14857111871242523) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 556) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 4.345239849338305) - (f64.const 1.344597927114538) - (f64.const -0.08170335739850998) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 557) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -8.38143342755525) - (f64.const -1.4520463463295539) - (f64.const -0.07505480200052261) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 558) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -6.531673581913484) - (f64.const -1.4188758658752532) - (f64.const -0.057633496820926666) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 559) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 9.267056966972586) - (f64.const 1.463303145448706) - (f64.const 0.1606956422328949) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 560) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 0.6619858980995045) - (f64.const 0.5847550670238325) - (f64.const 0.4582556486129761) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 561) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -0.4066039223853553) - (f64.const -0.3861864177552131) - (f64.const -0.2574281692504883) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 562) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 0.5617597462207241) - (f64.const 0.5118269531628881) - (f64.const -0.11444277316331863) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 563) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 0.7741522965913037) - (f64.const 0.6587802431653822) - (f64.const -0.11286488175392151) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 564) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -0.6787637026394024) - (f64.const -0.5963307826973472) - (f64.const -0.2182842344045639) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 565) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 568) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 569) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 1) - (f64.const 0.7853981633974483) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 570) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -1) - (f64.const -0.7853981633974483) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 571) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const inf) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 572) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -inf) - (f64.const -1.5707963267948966) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 573) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 574) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 0.6929821535674624) - (f64.const 0.6060004555152562) - (f64.const -0.17075790464878082) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 575) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -8.066848754882812) - (f32.const -1.4474613666534424) - (f32.const 0.12686480581760406) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 584) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 4.345239639282227) - (f32.const 1.3445979356765747) - (f32.const 0.16045434772968292) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 585) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -8.381433486938477) - (f32.const -1.4520463943481445) - (f32.const -0.39581751823425293) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 586) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -6.531673431396484) - (f32.const -1.418875813484192) - (f32.const 0.410570353269577) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 587) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 9.267057418823242) - (f32.const 1.4633032083511353) - (f32.const 0.48403501510620117) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 588) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 0.6619858741760254) - (f32.const 0.5847550630569458) - (f32.const 0.2125193476676941) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 589) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -0.40660393238067627) - (f32.const -0.386186420917511) - (f32.const 0.18169628083705902) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 590) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 0.5617597699165344) - (f32.const 0.5118269920349121) - (f32.const 0.3499770760536194) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 591) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 0.7741522789001465) - (f32.const 0.6587802171707153) - (f32.const -0.2505330741405487) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 592) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -0.6787636876106262) - (f32.const -0.5963307619094849) - (f32.const 0.17614826560020447) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 593) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 596) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 597) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 1) - (f32.const 0.7853981852531433) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 598) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -1) - (f32.const -0.7853981852531433) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 599) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const inf) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 600) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -inf) - (f32.const -1.5707963705062866) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 601) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 602) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 614) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 4.345239849338305) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 615) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 616) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 617) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 9.267056966972586) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 618) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 0.6619858980995045) - (f64.const 0.7963404371347943) - (f64.const 0.21338365972042084) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 619) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -0.4066039223853553) - (f64.const -0.43153570730602897) - (f64.const -0.4325666129589081) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 620) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 0.5617597462207241) - (f64.const 0.6354006111644578) - (f64.const -0.06527865678071976) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 621) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 0.7741522965913037) - (f64.const 1.0306085575277995) - (f64.const 0.14632052183151245) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 622) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -0.6787637026394024) - (f64.const -0.8268179645205255) - (f64.const 0.1397128701210022) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 623) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 626) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 627) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 628) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 629) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 630) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 1) - (f64.const inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 631) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -1) - (f64.const -inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 632) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 1.0000152587890625) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 633) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -1.0000152587890625) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 634) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 1.3552527156068805e-20) - (f64.const 1.3552527156068805e-20) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 635) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 9.332636185032189e-302) - (f64.const 9.332636185032189e-302) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 636) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 5.562684646268003e-309) - (f64.const 5.562684646268003e-309) - (f64.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 637) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -5.562684646268003e-309) - (f64.const -5.562684646268003e-309) - (f64.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 638) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 8988465674311579538646525e283) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 639) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 648) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 4.345239639282227) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 649) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 650) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 651) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 9.267057418823242) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 652) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 0.6619858741760254) - (f32.const 0.7963404059410095) - (f32.const 0.19112196564674377) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 653) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -0.40660393238067627) - (f32.const -0.4315357208251953) - (f32.const -0.05180925130844116) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 654) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 0.5617597699165344) - (f32.const 0.635400652885437) - (f32.const 0.11911056190729141) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 655) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 0.7741522789001465) - (f32.const 1.0306085348129272) - (f32.const 0.1798270344734192) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 656) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -0.6787636876106262) - (f32.const -0.8268179297447205) - (f32.const 0.11588983237743378) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 657) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 660) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 661) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 662) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 663) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 664) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 1) - (f32.const inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 665) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -1) - (f32.const -inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 666) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 1.0000152587890625) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 667) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -1.0000152587890625) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 668) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 1.3552527156068805e-20) - (f32.const 1.3552527156068805e-20) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 669) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 7.888609052210118e-31) - (f32.const 7.888609052210118e-31) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 670) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 2.938735877055719e-39) - (f32.const 2.938735877055719e-39) - (f32.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 671) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -2.938735877055719e-39) - (f32.const -2.938735877055719e-39) - (f32.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 672) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 1701411834604692317316873e14) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 673) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const -1.0585895402489023) - (f64.const 0.09766263514757156) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 685) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 2.6868734126013067) - (f64.const 0.35833948850631714) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 686) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const -1.889300091849528) - (f64.const -0.46235957741737366) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 687) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const -0.9605469021111489) - (f64.const -0.21524477005004883) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 688) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 1.0919123946142109) - (f64.const 0.3894443213939667) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 689) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const -1.468508500616424) - (f64.const -0.448591411113739) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 690) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 1.5641600512601268) - (f64.const 0.3784842789173126) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 691) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const -0.10281658910678508) - (f64.const -0.13993260264396667) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 692) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 0.29697974004493516) - (f64.const 0.44753071665763855) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 693) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const -1.5131612053303916) - (f64.const 0.39708876609802246) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 694) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 697) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const -0) - (f64.const 3.141592653589793) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 698) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const -1) - (f64.const 3.141592653589793) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 699) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const -inf) - (f64.const 3.141592653589793) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 700) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 701) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 702) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const 0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 703) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const -0) - (f64.const -3.141592653589793) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 704) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const -1) - (f64.const -3.141592653589793) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 705) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const -inf) - (f64.const -3.141592653589793) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 706) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 707) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const inf) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 708) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -1) - (f64.const 0) - (f64.const -1.5707963267948966) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 709) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -1) - (f64.const -0) - (f64.const -1.5707963267948966) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 710) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1) - (f64.const 0) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 711) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1) - (f64.const -0) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 712) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -1) - (f64.const inf) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 713) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 714) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -1) - (f64.const -inf) - (f64.const -3.141592653589793) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 715) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1) - (f64.const -inf) - (f64.const 3.141592653589793) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 716) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const inf) - (f64.const 0) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 717) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -inf) - (f64.const 0) - (f64.const -1.5707963267948966) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 718) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const inf) - (f64.const inf) - (f64.const 0.7853981633974483) - (f64.const -0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 719) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const inf) - (f64.const -inf) - (f64.const 2.356194490192345) - (f64.const -0.20682445168495178) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 720) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -inf) - (f64.const inf) - (f64.const -0.7853981633974483) - (f64.const 0.27576595544815063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 721) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -inf) - (f64.const -inf) - (f64.const -2.356194490192345) - (f64.const 0.20682445168495178) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 722) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1.1125369292536007e-308) - (f64.const 1) - (f64.const 1.1125369292536007e-308) - (f64.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 723) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1) - (f64.const 8988465674311579538646525e283) - (f64.const 1.1125369292536007e-308) - (f64.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 724) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1.5) - (f64.const 8988465674311579538646525e283) - (f64.const 1.668805393880401e-308) - (f64.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 725) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1.5) - (f64.const -8988465674311579538646525e283) - (f64.const 3.141592653589793) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 726) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const -1.0585895776748657) - (f32.const -0.22352588176727295) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 735) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 2.686873435974121) - (f32.const 0.09464472532272339) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 736) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const -1.8893001079559326) - (f32.const -0.21941901743412018) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 737) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const -0.9605468511581421) - (f32.const 0.46015575528144836) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 738) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 1.0919123888015747) - (f32.const -0.05708503723144531) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 739) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const -1.4685084819793701) - (f32.const 0.19611206650733948) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 740) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 1.5641601085662842) - (f32.const 0.48143187165260315) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 741) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const -0.10281659662723541) - (f32.const -0.4216274917125702) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 742) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 0.29697975516319275) - (f32.const 0.2322007566690445) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 743) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const -1.5131611824035645) - (f32.const 0.16620726883411407) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 744) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 747) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const -0) - (f32.const 3.1415927410125732) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 748) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const -1) - (f32.const 3.1415927410125732) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 749) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const -inf) - (f32.const 3.1415927410125732) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 750) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 751) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 752) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const 0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 753) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const -0) - (f32.const -3.1415927410125732) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 754) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const -1) - (f32.const -3.1415927410125732) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 755) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const -inf) - (f32.const -3.1415927410125732) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 756) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 757) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const inf) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 758) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -1) - (f32.const 0) - (f32.const -1.5707963705062866) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 759) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -1) - (f32.const -0) - (f32.const -1.5707963705062866) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 760) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 1) - (f32.const 0) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 761) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 1) - (f32.const -0) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 762) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -1) - (f32.const inf) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 763) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 1) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 764) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -1) - (f32.const -inf) - (f32.const -3.1415927410125732) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 765) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 1) - (f32.const -inf) - (f32.const 3.1415927410125732) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 766) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const inf) - (f32.const 0) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 767) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -inf) - (f32.const 0) - (f32.const -1.5707963705062866) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 768) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const inf) - (f32.const inf) - (f32.const 0.7853981852531433) - (f32.const 0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 769) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const inf) - (f32.const -inf) - (f32.const 2.356194496154785) - (f32.const 0.02500828728079796) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 770) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -inf) - (f32.const inf) - (f32.const -0.7853981852531433) - (f32.const -0.3666777014732361) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 771) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -inf) - (f32.const -inf) - (f32.const -2.356194496154785) - (f32.const -0.02500828728079796) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 772) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 5.877471754111438e-39) - (f32.const 1) - (f32.const 5.877471754111438e-39) - (f32.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 773) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 1) - (f32.const 1701411834604692317316873e14) - (f32.const 5.877471754111438e-39) - (f32.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 774) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -8.06684839057968) - (f64.const -2.0055552545020245) - (f64.const 0.46667951345443726) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 786) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 4.345239849338305) - (f64.const 1.6318162410515635) - (f64.const -0.08160271495580673) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 787) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -8.38143342755525) - (f64.const -2.031293910673361) - (f64.const -0.048101816326379776) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 788) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -6.531673581913484) - (f64.const -1.8692820012204925) - (f64.const 0.08624018728733063) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 789) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 9.267056966972586) - (f64.const 2.100457720859702) - (f64.const -0.2722989022731781) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 790) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 0.6619858980995045) - (f64.const 0.8715311470455973) - (f64.const 0.4414918124675751) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 791) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -0.4066039223853553) - (f64.const -0.740839030300223) - (f64.const 0.016453813761472702) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 792) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 0.5617597462207241) - (f64.const 0.8251195400559286) - (f64.const 0.30680638551712036) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 793) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 0.7741522965913037) - (f64.const 0.9182102478959914) - (f64.const 0.06543998420238495) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 794) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -0.6787637026394024) - (f64.const -0.8788326906580094) - (f64.const -0.2016713172197342) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 795) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 798) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 799) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -inf) - (f64.const -inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 800) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 801) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 802) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 9.313225746154785e-10) - (f64.const 0.0009765625) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 803) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -9.313225746154785e-10) - (f64.const -0.0009765625) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 804) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 805) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 806) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 8) - (f64.const 2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 807) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -8.066848754882812) - (f32.const -2.0055553913116455) - (f32.const -0.44719240069389343) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 816) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 4.345239639282227) - (f32.const 1.6318162679672241) - (f32.const 0.44636252522468567) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 817) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -8.381433486938477) - (f32.const -2.0312938690185547) - (f32.const 0.19483426213264465) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 818) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -6.531673431396484) - (f32.const -1.8692820072174072) - (f32.const -0.17075514793395996) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 819) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 9.267057418823242) - (f32.const 2.1004576683044434) - (f32.const -0.36362043023109436) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 820) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 0.6619858741760254) - (f32.const 0.8715311288833618) - (f32.const -0.12857209146022797) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 821) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -0.40660393238067627) - (f32.const -0.7408390641212463) - (f32.const -0.4655757546424866) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 822) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 0.5617597699165344) - (f32.const 0.8251195549964905) - (f32.const 0.05601907894015312) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 823) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 0.7741522789001465) - (f32.const 0.9182102680206299) - (f32.const 0.45498204231262207) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 824) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -0.6787636876106262) - (f32.const -0.8788326978683472) - (f32.const -0.22978967428207397) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 825) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 828) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 829) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -inf) - (f32.const -inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 830) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 831) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 832) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 9.313225746154785e-10) - (f32.const 0.0009765625) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 833) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -9.313225746154785e-10) - (f32.const -0.0009765625) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 834) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 835) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 836) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 8) - (f32.const 2) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 837) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -8.06684839057968) - (f64.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 849) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 4.345239849338305) - (f64.const 5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 850) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -8.38143342755525) - (f64.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 851) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -6.531673581913484) - (f64.const -6) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 852) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 9.267056966972586) - (f64.const 10) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 853) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.6619858980995045) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 854) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.4066039223853553) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 855) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.5617597462207241) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 856) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.7741522965913037) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 857) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.6787637026394024) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 858) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 861) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const inf) - (f64.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 862) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -inf) - (f64.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 863) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 864) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 865) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 866) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1) - (f64.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 867) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.5) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 868) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.5) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 869) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1.0000152587890625) - (f64.const 2) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 870) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1.0000152587890625) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 871) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.9999923706054688) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 872) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.9999923706054688) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 873) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 7.888609052210118e-31) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 874) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -7.888609052210118e-31) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 875) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 876) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const inf) - (f64.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 877) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -inf) - (f64.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 878) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 879) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 880) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 881) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1) - (f64.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 882) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.5) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 883) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.5) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 884) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1.0000152587890625) - (f64.const 2) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 885) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1.0000152587890625) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 886) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.9999923706054688) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 887) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.9999923706054688) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 888) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 7.888609052210118e-31) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 889) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -7.888609052210118e-31) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 890) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 891) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const inf) - (f64.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 892) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -inf) - (f64.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 893) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 894) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 895) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 896) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1) - (f64.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 897) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.5) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 898) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.5) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 899) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1.0000152587890625) - (f64.const 2) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 900) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1.0000152587890625) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 901) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.9999923706054688) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 902) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.9999923706054688) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 903) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 7.888609052210118e-31) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 904) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -7.888609052210118e-31) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 905) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -8.066848754882812) - (f32.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 914) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 4.345239639282227) - (f32.const 5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 915) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -8.381433486938477) - (f32.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 916) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -6.531673431396484) - (f32.const -6) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 917) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 9.267057418823242) - (f32.const 10) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 918) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.6619858741760254) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 919) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.40660393238067627) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 920) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.5617597699165344) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 921) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.7741522789001465) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 922) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.6787636876106262) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 923) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 926) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const inf) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 927) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -inf) - (f32.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 928) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 929) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 930) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 931) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1) - (f32.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 932) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.5) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 933) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.5) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 934) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1.0000152587890625) - (f32.const 2) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 935) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1.0000152587890625) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 936) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.9999923706054688) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 937) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.9999923706054688) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 938) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 7.888609052210118e-31) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 939) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -7.888609052210118e-31) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 940) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 941) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const inf) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 942) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -inf) - (f32.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 943) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 944) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 945) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 946) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1) - (f32.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 947) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.5) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 948) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.5) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 949) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1.0000152587890625) - (f32.const 2) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 950) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1.0000152587890625) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 951) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.9999923706054688) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 952) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.9999923706054688) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 953) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 7.888609052210118e-31) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 954) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -7.888609052210118e-31) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 955) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 956) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const inf) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 957) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -inf) - (f32.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 958) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 959) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 960) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 961) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1) - (f32.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 962) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.5) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 963) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.5) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 964) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1.0000152587890625) - (f32.const 2) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 965) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1.0000152587890625) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 966) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.9999923706054688) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 967) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.9999923706054688) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 968) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 7.888609052210118e-31) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 969) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -7.888609052210118e-31) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 970) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -8.06684839057968) - (f64.const 1593.5209938862329) - (f64.const -0.38098856806755066) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 4.345239849338305) - (f64.const 38.56174928426729) - (f64.const -0.2712278366088867) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1108) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -8.38143342755525) - (f64.const 2182.630979595893) - (f64.const 0.0817827582359314) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -6.531673581913484) - (f64.const 343.273849250879) - (f64.const -0.429940402507782) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 9.267056966972586) - (f64.const 5291.779170005587) - (f64.const -0.1592995822429657) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 0.6619858980995045) - (f64.const 1.2272321957342842) - (f64.const 0.23280741274356842) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1112) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -0.4066039223853553) - (f64.const 1.083808541871197) - (f64.const -0.3960916996002197) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1113) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 0.5617597462207241) - (f64.const 1.1619803583175077) - (f64.const 0.37748390436172485) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 0.7741522965913037) - (f64.const 1.3149236876276706) - (f64.const 0.43587008118629456) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -0.6787637026394024) - (f64.const 1.2393413245934533) - (f64.const 0.10201606154441833) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1119) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1120) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1121) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1123) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -8.066848754882812) - (f32.const 1593.5216064453125) - (f32.const 0.26242581009864807) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 4.345239639282227) - (f32.const 38.56174087524414) - (f32.const -0.08168885856866837) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -8.381433486938477) - (f32.const 2182.631103515625) - (f32.const -0.02331414446234703) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1134) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -6.531673431396484) - (f32.const 343.2738037109375) - (f32.const 0.20081493258476257) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1135) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 9.267057418823242) - (f32.const 5291.78173828125) - (f32.const 0.36286723613739014) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1136) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 0.6619858741760254) - (f32.const 1.2272322177886963) - (f32.const 0.32777416706085205) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1137) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -0.40660393238067627) - (f32.const 1.0838085412979126) - (f32.const -0.039848703891038895) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1138) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 0.5617597699165344) - (f32.const 1.161980390548706) - (f32.const 0.15274477005004883) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1139) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 0.7741522789001465) - (f32.const 1.314923644065857) - (f32.const -0.2387111485004425) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1140) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -0.6787636876106262) - (f32.const 1.2393412590026855) - (f32.const -0.45791932940483093) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1141) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1144) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1145) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1146) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1147) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1148) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -8.06684839057968) - (f64.const 3.137706068161745e-04) - (f64.const -0.2599197328090668) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1160) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 4.345239849338305) - (f64.const 77.11053017112141) - (f64.const -0.02792675793170929) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1161) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -8.38143342755525) - (f64.const 2.290813384916323e-04) - (f64.const -0.24974334239959717) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1162) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -6.531673581913484) - (f64.const 1.4565661260931588e-03) - (f64.const -0.4816822409629822) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1163) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 9.267056966972586) - (f64.const 10583.558245524993) - (f64.const 0.17696762084960938) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1164) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 0.6619858980995045) - (f64.const 1.9386384525571998) - (f64.const -0.4964246451854706) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1165) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -0.4066039223853553) - (f64.const 0.6659078892838025) - (f64.const -0.10608318448066711) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1166) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 0.5617597462207241) - (f64.const 1.7537559518626311) - (f64.const -0.39162111282348633) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1167) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 0.7741522965913037) - (f64.const 2.1687528885129246) - (f64.const -0.2996125817298889) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1168) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -0.6787637026394024) - (f64.const 0.5072437089402843) - (f64.const 0.47261738777160645) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1169) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1172) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1173) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 1) - (f64.const 2.718281828459045) - (f64.const -0.3255307376384735) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1174) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -1) - (f64.const 0.36787944117144233) - (f64.const 0.22389651834964752) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1175) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1176) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1177) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1178) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 1.0397214889526365) - (f64.const 2.828429155876411) - (f64.const 0.18803080916404724) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1179) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -1.0397214889526365) - (f64.const 0.35355313670217847) - (f64.const 0.2527272403240204) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1180) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 1.0397210121154785) - (f64.const 2.8284278071766122) - (f64.const -0.4184139370918274) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1181) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 1.0397214889526367) - (f64.const 2.8284291558764116) - (f64.const -0.22618377208709717) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1182) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -8.066848754882812) - (f32.const 3.1377049162983894e-04) - (f32.const -0.030193336308002472) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1191) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 4.345239639282227) - (f32.const 77.11051177978516) - (f32.const -0.2875460684299469) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1192) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -8.381433486938477) - (f32.const 2.2908132814336568e-04) - (f32.const 0.2237040400505066) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1193) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -6.531673431396484) - (f32.const 1.4565663877874613e-03) - (f32.const 0.36469703912734985) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1194) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 9.267057418823242) - (f32.const 10583.5634765625) - (f32.const 0.45962104201316833) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1195) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.6619858741760254) - (f32.const 1.93863844871521) - (f32.const 0.3568260967731476) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1196) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -0.40660393238067627) - (f32.const 0.6659078598022461) - (f32.const -0.38294991850852966) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1197) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.5617597699165344) - (f32.const 1.753756046295166) - (f32.const 0.44355490803718567) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1198) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.7741522789001465) - (f32.const 2.168752908706665) - (f32.const 0.24562469124794006) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1199) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -0.6787636876106262) - (f32.const 0.5072436928749084) - (f32.const -0.3974292278289795) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1200) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1203) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1204) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 1) - (f32.const 2.7182817459106445) - (f32.const -0.3462330996990204) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1205) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -1) - (f32.const 0.3678794503211975) - (f32.const 0.3070148527622223) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1206) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1207) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1208) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1209) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 88.72283172607422) - (f32.const 340279851902147610656242e15) - (f32.const -0.09067153930664062) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1210) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 88.72283935546875) - (f32.const inf) - (f32.const 0) - (i32.const 17) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1211) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -103.97207641601562) - (f32.const 1.401298464324817e-45) - (f32.const 0.49999967217445374) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1212) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -103.97208404541016) - (f32.const 0) - (f32.const -0.49999651312828064) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1213) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.3465735614299774) - (f32.const 1.4142135381698608) - (f32.const 0.13922421634197235) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1214) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.3465735912322998) - (f32.const 1.4142135381698608) - (f32.const -0.21432916820049286) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1215) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.3465736210346222) - (f32.const 1.4142136573791504) - (f32.const 0.43211743235588074) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1216) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -8.06684839057968) - (f64.const -0.9996862293931839) - (f64.const -0.2760058343410492) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1228) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 4.345239849338305) - (f64.const 76.11053017112141) - (f64.const -0.02792675793170929) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1229) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -8.38143342755525) - (f64.const -0.9997709186615084) - (f64.const 0.10052496194839478) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1230) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -6.531673581913484) - (f64.const -0.9985434338739069) - (f64.const -0.27437829971313477) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1231) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 9.267056966972586) - (f64.const 10582.558245524993) - (f64.const 0.17696762084960938) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1232) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 0.6619858980995045) - (f64.const 0.9386384525571999) - (f64.const 0.007150684483349323) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1233) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -0.4066039223853553) - (f64.const -0.3340921107161975) - (f64.const -0.21216636896133423) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1234) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 0.5617597462207241) - (f64.const 0.7537559518626312) - (f64.const 0.21675777435302734) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1235) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 0.7741522965913037) - (f64.const 1.1687528885129248) - (f64.const 0.4007748067378998) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1236) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -0.6787637026394024) - (f64.const -0.4927562910597158) - (f64.const -0.05476519837975502) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1237) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1240) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1241) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 1) - (f64.const 1.7182818284590453) - (f64.const 0.348938524723053) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1242) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -1) - (f64.const -0.6321205588285577) - (f64.const 0.11194825917482376) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1243) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1244) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -inf) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1245) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1246) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 2.225073858507201e-308) - (f64.const 2.225073858507201e-308) - (f64.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1247) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -2.225073858507201e-308) - (f64.const -2.225073858507201e-308) - (f64.const 0) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1248) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -8.066848754882812) - (f32.const -0.9996862411499023) - (f32.const -0.19532723724842072) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1257) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 4.345239639282227) - (f32.const 76.11051177978516) - (f32.const -0.2875460684299469) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1258) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -8.381433486938477) - (f32.const -0.9997709393501282) - (f32.const -0.34686920046806335) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1259) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -6.531673431396484) - (f32.const -0.9985434412956238) - (f32.const -0.1281939446926117) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1260) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 9.267057418823242) - (f32.const 10582.5634765625) - (f32.const 0.45962104201316833) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1261) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 0.6619858741760254) - (f32.const 0.9386383891105652) - (f32.const -0.28634780645370483) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1262) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -0.40660393238067627) - (f32.const -0.3340921103954315) - (f32.const 0.23410017788410187) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1263) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 0.5617597699165344) - (f32.const 0.7537559866905212) - (f32.const -0.11289017647504807) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1264) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 0.7741522789001465) - (f32.const 1.168752908706665) - (f32.const 0.4912493824958801) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1265) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -0.6787636876106262) - (f32.const -0.49275627732276917) - (f32.const 0.20514154434204102) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1266) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1269) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1270) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 1) - (f32.const 1.718281865119934) - (f32.const 0.3075338304042816) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1271) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -1) - (f32.const -0.6321205496788025) - (f32.const 0.15350742638111115) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1272) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1273) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -inf) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1274) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1275) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -8.06684839057968) - (f64.const -9) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1287) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 4.345239849338305) - (f64.const 4) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1288) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -8.38143342755525) - (f64.const -9) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1289) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -6.531673581913484) - (f64.const -7) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1290) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 9.267056966972586) - (f64.const 9) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1291) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0.6619858980995045) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1292) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -0.4066039223853553) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1293) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0.5617597462207241) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1294) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0.7741522965913037) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1295) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -0.6787637026394024) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1296) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1299) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const inf) - (f64.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1300) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -inf) - (f64.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1301) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1302) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -0) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1303) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 1) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1304) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -1) - (f64.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1305) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0.5) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1306) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -0.5) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1307) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 1.0000152587890625) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1308) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -1.0000152587890625) - (f64.const -2) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1309) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0.9999923706054688) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1310) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -0.9999923706054688) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1311) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 7.888609052210118e-31) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1312) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -7.888609052210118e-31) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1313) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -8.066848754882812) - (f32.const -9) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1322) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 4.345239639282227) - (f32.const 4) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1323) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -8.381433486938477) - (f32.const -9) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1324) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -6.531673431396484) - (f32.const -7) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1325) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 9.267057418823242) - (f32.const 9) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1326) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0.6619858741760254) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1327) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -0.40660393238067627) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1328) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0.5617597699165344) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1329) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0.7741522789001465) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1330) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -0.6787636876106262) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1331) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1334) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const inf) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1335) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -inf) - (f32.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1336) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1337) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -0) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1338) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 1) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1339) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -1) - (f32.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1340) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0.5) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1341) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -0.5) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1342) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 1.0000152587890625) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1343) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -1.0000152587890625) - (f32.const -2) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1344) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0.9999923706054688) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1345) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -0.9999923706054688) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1346) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 7.888609052210118e-31) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1347) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -7.888609052210118e-31) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1348) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const 9.25452742288464) - (f64.const -0.31188681721687317) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1360) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 9.893305808328252) - (f64.const 0.4593673348426819) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1361) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const 8.825301797432132) - (f64.const -0.1701754331588745) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1362) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const 7.970265885519092) - (f64.const -0.3176782727241516) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1363) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 10.441639651824575) - (f64.const -0.2693633437156677) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1364) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const 6.483936052542593) - (f64.const 0.35618898272514343) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1365) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 7.859063309581766) - (f64.const 0.08044655621051788) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1366) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const 7.717156764899584) - (f64.const 0.05178084969520569) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1367) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 2.104006123874314) - (f64.const -0.0918039008975029) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1368) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const 0.5596880129062913) - (f64.const 0.1383407711982727) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1369) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 3) - (f64.const 4) - (f64.const 5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1372) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -3) - (f64.const 4) - (f64.const 5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1373) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 4) - (f64.const 3) - (f64.const 5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1374) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 4) - (f64.const -3) - (f64.const 5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1375) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -3) - (f64.const -4) - (f64.const 5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1376) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 1797693134862315708145274e284) - (f64.const 0) - (f64.const 1797693134862315708145274e284) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1377) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 1797693134862315708145274e284) - (f64.const -0) - (f64.const 1797693134862315708145274e284) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1378) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 5e-324) - (f64.const 0) - (f64.const 5e-324) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1379) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 5e-324) - (f64.const -0) - (f64.const 5e-324) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1380) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const inf) - (f64.const 1) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1381) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 1) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1382) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1383) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const nan:0x8000000000000) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1384) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -inf) - (f64.const 1) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1385) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 1) - (f64.const -inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1386) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1387) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const nan:0x8000000000000) - (f64.const -inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1388) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1389) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1390) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const 9.254528045654297) - (f32.const 0.2735958993434906) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1399) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 9.893305778503418) - (f32.const 0.4530770778656006) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1400) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const 8.825302124023438) - (f32.const 0.30755728483200073) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1401) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const 7.970265865325928) - (f32.const 0.06785223633050919) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1402) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 10.44163990020752) - (f32.const -0.26776307821273804) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1403) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const 6.483936309814453) - (f32.const 0.48381292819976807) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1404) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 7.859063148498535) - (f32.const 0.07413065433502197) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1405) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const 7.717156887054443) - (f32.const 0.4940592646598816) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1406) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 2.104006052017212) - (f32.const -0.287089467048645) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1407) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const 0.5596880316734314) - (f32.const 0.4191940724849701) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1408) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 3) - (f32.const 4) - (f32.const 5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1411) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -3) - (f32.const 4) - (f32.const 5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1412) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 4) - (f32.const 3) - (f32.const 5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1413) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 4) - (f32.const -3) - (f32.const 5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1414) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -3) - (f32.const -4) - (f32.const 5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1415) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 3402823466385288598117041e14) - (f32.const 0) - (f32.const 3402823466385288598117041e14) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1416) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 3402823466385288598117041e14) - (f32.const -0) - (f32.const 3402823466385288598117041e14) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1417) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 1.401298464324817e-45) - (f32.const 0) - (f32.const 1.401298464324817e-45) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1418) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 1.401298464324817e-45) - (f32.const -0) - (f32.const 1.401298464324817e-45) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1419) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const inf) - (f32.const 1) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1420) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 1) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1421) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1422) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const nan:0x400000) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1423) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -inf) - (f32.const 1) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1424) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 1) - (f32.const -inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1425) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1426) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const nan:0x400000) - (f32.const -inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1427) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1428) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1429) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1441) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 4.345239849338305) - (f64.const 1.4690809584224322) - (f64.const -0.3412533402442932) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1442) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1443) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1444) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 9.267056966972586) - (f64.const 2.2264658498795615) - (f64.const 0.3638114035129547) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1445) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 0.6619858980995045) - (f64.const -0.4125110252365137) - (f64.const -0.29108747839927673) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1446) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -0.4066039223853553) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1447) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 0.5617597462207241) - (f64.const -0.5766810183195862) - (f64.const -0.10983199626207352) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1448) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 0.7741522965913037) - (f64.const -0.2559866591263865) - (f64.const -0.057990044355392456) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1449) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -0.6787637026394024) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1450) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 0) - (f64.const -inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1453) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -0) - (f64.const -inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1454) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -7.888609052210118e-31) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1455) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1456) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1457) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1458) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1459) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1460) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const 0) - (f32.const -inf) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1469) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -0) - (f32.const -inf) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1470) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -7.888609052210118e-31) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1471) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1472) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -1) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1473) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const inf) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1474) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -inf) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1475) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1476) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const 0) - (f32.const -inf) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1479) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -0) - (f32.const -inf) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1480) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -7.888609052210118e-31) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1481) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1482) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -1) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1483) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const inf) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1484) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -inf) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1485) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1486) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1498) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 4.345239849338305) - (f64.const 0.6380137537120029) - (f64.const -0.2088824063539505) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1499) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1500) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1501) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 9.267056966972586) - (f64.const 0.9669418327487274) - (f64.const -0.06120431795716286) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1502) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 0.6619858980995045) - (f64.const -0.17915126198447093) - (f64.const 0.39090874791145325) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1503) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -0.4066039223853553) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1504) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 0.5617597462207241) - (f64.const -0.25044938407454437) - (f64.const -0.3046841621398926) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1505) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 0.7741522965913037) - (f64.const -0.11117359349943837) - (f64.const -0.31503361463546753) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1506) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -0.6787637026394024) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1507) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 0) - (f64.const -inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1510) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -0) - (f64.const -inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1511) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -7.888609052210118e-31) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1512) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1513) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1514) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1515) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1516) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1517) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1526) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 4.345239639282227) - (f32.const 0.6380137205123901) - (f32.const -0.20476758480072021) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1527) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1528) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1529) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 9.267057418823242) - (f32.const 0.9669418334960938) - (f32.const -0.34273025393486023) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1530) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 0.6619858741760254) - (f32.const -0.1791512817144394) - (f32.const -0.27078554034233093) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1531) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -0.40660393238067627) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1532) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 0.5617597699165344) - (f32.const -0.25044935941696167) - (f32.const 0.2126826047897339) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1533) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 0.7741522789001465) - (f32.const -0.1111735999584198) - (f32.const 0.46515095233917236) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1534) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -0.6787636876106262) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1535) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 0) - (f32.const -inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1538) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -0) - (f32.const -inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1539) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -7.888609052210118e-31) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1540) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1541) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1542) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1543) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1544) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1545) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1557) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 4.345239849338305) - (f64.const 1.6762064170601734) - (f64.const 0.46188199520111084) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1558) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1559) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1560) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 9.267056966972586) - (f64.const 2.3289404168523826) - (f64.const -0.411114901304245) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1561) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 0.6619858980995045) - (f64.const 0.5080132114992477) - (f64.const -0.29306045174598694) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1562) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -0.4066039223853553) - (f64.const -0.5218931811663979) - (f64.const -0.25825726985931396) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1563) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 0.5617597462207241) - (f64.const 0.4458132279488102) - (f64.const -0.13274887204170227) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1564) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 0.7741522965913037) - (f64.const 0.5733227294648414) - (f64.const 0.02716583013534546) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1565) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -0.6787637026394024) - (f64.const -1.1355782978128564) - (f64.const 0.2713092863559723) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1566) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1569) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1570) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -7.888609052210118e-31) - (f64.const -7.888609052210118e-31) - (f64.const 1.7763568394002505e-15) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1571) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 1) - (f64.const 0.6931471805599453) - (f64.const -0.2088811695575714) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1572) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -1) - (f64.const -inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1573) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1574) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1575) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1576) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1585) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 4.345239639282227) - (f32.const 1.676206350326538) - (f32.const -0.23014859855175018) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1586) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1587) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1588) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 9.267057418823242) - (f32.const 2.3289403915405273) - (f32.const -0.29075589776039124) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1589) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 0.6619858741760254) - (f32.const 0.5080131888389587) - (f32.const -0.1386766880750656) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1590) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -0.40660393238067627) - (f32.const -0.5218932032585144) - (f32.const -0.08804433047771454) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1591) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 0.5617597699165344) - (f32.const 0.44581323862075806) - (f32.const -0.15101368725299835) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1592) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 0.7741522789001465) - (f32.const 0.5733227133750916) - (f32.const -0.10264533013105392) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1593) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -0.6787636876106262) - (f32.const -1.1355782747268677) - (f32.const -0.19879481196403503) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1594) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1597) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1598) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -7.888609052210118e-31) - (f32.const -7.888609052210118e-31) - (f32.const 3.308722450212111e-24) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1599) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 1) - (f32.const 0.6931471824645996) - (f32.const 0.031954795122146606) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1600) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -1) - (f32.const -inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1601) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1602) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1603) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1604) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -1.1754942106924411e-38) - (f32.const -1.1754942106924411e-38) - (f32.const 4.930380657631324e-32) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1605) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1617) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 4.345239849338305) - (f64.const 2.1194358133804485) - (f64.const -0.10164877772331238) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1618) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1619) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1620) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 9.267056966972586) - (f64.const 3.2121112403298744) - (f64.const -0.15739446878433228) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1621) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 0.6619858980995045) - (f64.const -0.5951276104207402) - (f64.const 0.3321485221385956) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1622) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -0.4066039223853553) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1623) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 0.5617597462207241) - (f64.const -0.8319748453044644) - (f64.const 0.057555437088012695) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1624) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 0.7741522965913037) - (f64.const -0.36931068365537134) - (f64.const -0.19838279485702515) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1625) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -0.6787637026394024) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1626) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 0) - (f64.const -inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1629) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -0) - (f64.const -inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1630) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -7.888609052210118e-31) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1631) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1632) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1633) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1634) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1635) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1636) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1645) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 4.345239639282227) - (f32.const 2.1194357872009277) - (f32.const 0.18271538615226746) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1646) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1647) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1648) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 9.267057418823242) - (f32.const 3.212111234664917) - (f32.const -0.3188050389289856) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1649) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 0.6619858741760254) - (f32.const -0.5951276421546936) - (f32.const 0.34231460094451904) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1650) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -0.40660393238067627) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1651) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 0.5617597699165344) - (f32.const -0.8319748044013977) - (f32.const -0.33473604917526245) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1652) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 0.7741522789001465) - (f32.const -0.3693107068538666) - (f32.const 0.3278401792049408) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1653) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -0.6787636876106262) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1654) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 0) - (f32.const -inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1657) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -0) - (f32.const -inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1658) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -7.888609052210118e-31) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1659) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1660) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1661) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1662) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1663) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1664) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const 4.535662560676869) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1676) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 4.345239849338305) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1677) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const -2.763607337379588) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1678) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const 4.567535276842744) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1679) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 9.267056966972586) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1680) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const 0.6620717923376739) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1681) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 7.858890253041697) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1682) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const 7.67640268511754) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1683) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 2.0119025790324803) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1684) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const 0.03223983060263804) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1685) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1688) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1689) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0.5) - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1690) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0.5) - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1691) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1692) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1693) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const 1) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1694) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -inf) - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1695) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1696) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const -1) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1697) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const -1) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1698) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0.5) - (f64.const -1) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1699) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0.5) - (f64.const -1) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1700) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const -1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1701) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const -1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1702) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const -1) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1703) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -inf) - (f64.const -1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1704) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1705) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const 0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1706) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const -0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1707) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const inf) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1708) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const -inf) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1709) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1710) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const 0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1711) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const -0) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1712) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const inf) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1713) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const -inf) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1714) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1715) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const 0) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1716) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const 0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1717) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const 0) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1718) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -inf) - (f64.const 0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1719) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1720) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const -0) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1721) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const -0) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1722) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -inf) - (f64.const -0) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1723) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1724) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const 2) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1725) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const -0.5) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1726) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1727) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -inf) - (f64.const 2) - (f64.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1728) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -inf) - (f64.const -0.5) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1729) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1730) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1731) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1732) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1733) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const inf) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1734) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const inf) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1735) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const inf) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1736) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -inf) - (f64.const inf) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1737) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const -inf) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1738) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const -inf) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1739) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const -inf) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1740) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -inf) - (f64.const -inf) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1741) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1.75) - (f64.const 0.5) - (f64.const 1.75) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1742) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1.75) - (f64.const 0.5) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1743) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1.75) - (f64.const -0.5) - (f64.const 1.75) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1744) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1.75) - (f64.const -0.5) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1745) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const 4.535662651062012) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1754) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 4.345239639282227) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1755) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const -2.7636072635650635) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1756) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const 4.567535400390625) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1757) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 9.267057418823242) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1758) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const 0.6620717644691467) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1759) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 7.858890056610107) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1760) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const 7.676402568817139) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1761) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 2.0119025707244873) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1762) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const 0.03223983198404312) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1763) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1766) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1767) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0.5) - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1768) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0.5) - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1769) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1770) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1771) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const 1) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1772) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -inf) - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1773) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1774) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const -1) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1775) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const -1) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1776) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0.5) - (f32.const -1) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1777) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0.5) - (f32.const -1) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1778) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const -1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1779) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const -1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1780) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const -1) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1781) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -inf) - (f32.const -1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1782) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1783) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const 0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1784) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const -0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1785) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const inf) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1786) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const -inf) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1787) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1788) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const 0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1789) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const -0) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1790) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const inf) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1791) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const -inf) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1792) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1793) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const 0) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1794) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const 0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1795) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const 0) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1796) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -inf) - (f32.const 0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1797) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1798) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const -0) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1799) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const -0) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1800) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -inf) - (f32.const -0) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1801) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1802) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const 2) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1803) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const -0.5) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1804) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1805) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -inf) - (f32.const 2) - (f32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1806) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -inf) - (f32.const -0.5) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1807) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1808) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1809) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1810) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1811) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const inf) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1812) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const inf) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1813) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const inf) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1814) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -inf) - (f32.const inf) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1815) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const -inf) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1816) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const -inf) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1817) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const -inf) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1818) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -inf) - (f32.const -inf) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1819) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1.75) - (f32.const 0.5) - (f32.const 1.75) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1820) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1.75) - (f32.const 0.5) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1821) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1.75) - (f32.const -0.5) - (f32.const 1.75) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1822) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1.75) - (f32.const -0.5) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1823) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const -8.06684839057968) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1835) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const -8.88799136300345) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1836) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const -8.38143342755525) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1837) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const -6.531673581913484) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1838) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 4.811392084359796) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1839) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const -6.450045556060236) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1840) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 0.05215452675006225) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1841) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const -0.792054511984896) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1842) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 0.615702673197924) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1843) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const -0.5587586823609152) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1844) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const 1) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1847) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const 1) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1848) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0.5) - (f64.const 1) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1849) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0.5) - (f64.const 1) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1850) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1851) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const 1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1852) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1853) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -inf) - (f64.const 1) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1854) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1855) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const -1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1856) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const -1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1857) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0.5) - (f64.const -1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1858) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0.5) - (f64.const -1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1859) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const -1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1860) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const -1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1861) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const -1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1862) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -inf) - (f64.const -1) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1863) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1864) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const 0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1865) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const -0) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1866) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const inf) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1867) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const -inf) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1868) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1869) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const 0) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1870) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const -0) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1871) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const inf) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1872) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const -inf) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1873) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1874) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const 0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1875) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const 0) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1876) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const 0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1877) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -inf) - (f64.const 0) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1878) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1879) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const -0) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1880) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const -0) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1881) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -inf) - (f64.const -0) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1882) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1883) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const 2) - (f64.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1884) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const -0.5) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1885) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1886) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -inf) - (f64.const 2) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1887) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -inf) - (f64.const -0.5) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1888) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1889) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1890) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1891) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1892) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const inf) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1893) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const inf) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1894) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const inf) - (f64.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1895) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -inf) - (f64.const inf) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1896) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const -inf) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1897) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const -inf) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1898) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const -inf) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1899) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -inf) - (f64.const -inf) - (f64.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1900) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1.75) - (f64.const 0.5) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1901) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1.75) - (f64.const 0.5) - (f64.const -1.75) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1902) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1.75) - (f64.const -0.5) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1903) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1.75) - (f64.const -0.5) - (f64.const -1.75) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1904) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const -8.066848754882812) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1913) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const -8.887990951538086) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1914) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const -8.381433486938477) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1915) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const -6.531673431396484) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1916) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 4.811392307281494) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1917) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const -6.450045585632324) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1918) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 0.052154526114463806) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1919) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const -0.7920545339584351) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1920) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 0.6157026886940002) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1921) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const -0.5587586760520935) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1922) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const 1) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1925) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const 1) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1926) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0.5) - (f32.const 1) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1927) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0.5) - (f32.const 1) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1928) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1929) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const 1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1930) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1931) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -inf) - (f32.const 1) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1932) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1933) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const -1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1934) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const -1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1935) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0.5) - (f32.const -1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1936) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0.5) - (f32.const -1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1937) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const -1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1938) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const -1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1939) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const -1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1940) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -inf) - (f32.const -1) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1941) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1942) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const 0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1943) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const -0) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1944) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const inf) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1945) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const -inf) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1946) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1947) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const 0) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1948) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const -0) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1949) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const inf) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1950) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const -inf) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1951) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1952) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const 0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1953) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const 0) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1954) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const 0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1955) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -inf) - (f32.const 0) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1956) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1957) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const -0) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1958) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const -0) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1959) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -inf) - (f32.const -0) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1960) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1961) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const 2) - (f32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1962) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const -0.5) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1963) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1964) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -inf) - (f32.const 2) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1965) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -inf) - (f32.const -0.5) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1966) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1967) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1968) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1969) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1970) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const inf) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1971) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const inf) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1972) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const inf) - (f32.const inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1973) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -inf) - (f32.const inf) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1974) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const -inf) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1975) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const -inf) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1976) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const -inf) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1977) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -inf) - (f32.const -inf) - (f32.const -inf) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1978) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1.75) - (f32.const 0.5) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1979) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1.75) - (f32.const 0.5) - (f32.const -1.75) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1980) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1.75) - (f32.const -0.5) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1981) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1.75) - (f32.const -0.5) - (f32.const -1.75) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1982) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const -3.531185829902812) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1996) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 4.345239849338305) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1997) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const -0.09061141541648476) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1998) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const -1.9641383050707404) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1999) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 4.45566488261279) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2000) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const -0.4913994250211714) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2001) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 0.035711240532359426) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2002) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const -0.792054511984896) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2003) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 0.615702673197924) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2004) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const -0.0106815621160685) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2005) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2008) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const 1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2009) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0.5) - (f64.const 1) - (f64.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2010) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0.5) - (f64.const 1) - (f64.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2011) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2012) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const 1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2013) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1.5) - (f64.const 1) - (f64.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2014) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1.5) - (f64.const 1) - (f64.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2015) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 2) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2016) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -2) - (f64.const 1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2017) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const 1) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2018) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -inf) - (f64.const 1) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2019) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2020) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2021) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const -1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2022) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0.5) - (f64.const -1) - (f64.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2023) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0.5) - (f64.const -1) - (f64.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2024) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2025) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const -1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2026) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1.5) - (f64.const -1) - (f64.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2027) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1.5) - (f64.const -1) - (f64.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2028) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 2) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2029) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -2) - (f64.const -1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2030) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const -1) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2031) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -inf) - (f64.const -1) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2032) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2033) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2034) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2035) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2036) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const -inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2037) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2038) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2039) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2040) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const inf) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2041) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const -inf) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2042) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2043) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2044) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2045) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2046) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -inf) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2047) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2048) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2049) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2050) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -inf) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2051) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2052) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const 2) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2053) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const -0.5) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2054) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2055) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -inf) - (f64.const 2) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2056) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -inf) - (f64.const -0.5) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2057) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2058) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2059) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2060) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2061) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const inf) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2062) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const inf) - (f64.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2063) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const inf) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2064) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -inf) - (f64.const inf) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2065) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const -inf) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2066) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const -inf) - (f64.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2067) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const -inf) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2068) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -inf) - (f64.const -inf) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2069) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1.75) - (f64.const 0.5) - (f64.const 0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2070) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1.75) - (f64.const 0.5) - (f64.const -0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2071) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1.75) - (f64.const -0.5) - (f64.const 0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2072) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1.75) - (f64.const -0.5) - (f64.const -0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2073) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const -3.531186103820801) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2082) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 4.345239639282227) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2083) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const -0.09061169624328613) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2084) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const -1.9641380310058594) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2085) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 4.455665111541748) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2086) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const -0.49139970541000366) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2087) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 0.0357111394405365) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2088) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const -0.7920545339584351) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2089) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 0.6157026886940002) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2090) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const -0.010681532323360443) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2091) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2094) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const 1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2095) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0.5) - (f32.const 1) - (f32.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2096) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0.5) - (f32.const 1) - (f32.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2097) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2098) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const 1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2099) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1.5) - (f32.const 1) - (f32.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2100) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1.5) - (f32.const 1) - (f32.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 2) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2102) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -2) - (f32.const 1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2103) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const 1) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2104) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -inf) - (f32.const 1) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2105) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const -1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2108) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0.5) - (f32.const -1) - (f32.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0.5) - (f32.const -1) - (f32.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const -1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2112) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1.5) - (f32.const -1) - (f32.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2113) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1.5) - (f32.const -1) - (f32.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 2) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -2) - (f32.const -1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const -1) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -inf) - (f32.const -1) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2118) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2119) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2120) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2121) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const -inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2123) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2125) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const inf) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const -inf) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -inf) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2134) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2135) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2136) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -inf) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2137) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2138) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const 2) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2139) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const -0.5) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2140) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2141) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -inf) - (f32.const 2) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2142) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -inf) - (f32.const -0.5) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2143) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2144) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2145) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2146) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2147) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const inf) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2148) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const inf) - (f32.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2149) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const inf) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2150) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -inf) - (f32.const inf) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2151) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const -inf) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2152) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const -inf) - (f32.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2153) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const -inf) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2154) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -inf) - (f32.const -inf) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2155) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1.75) - (f32.const 0.5) - (f32.const 0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2156) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1.75) - (f32.const 0.5) - (f32.const -0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2157) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1.75) - (f32.const -0.5) - (f32.const 0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2158) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1.75) - (f32.const -0.5) - (f32.const -0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2159) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2171) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 2.1347118825587285e-06) - (f64.const 0.3250160217285156) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2172) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2173) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2174) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 44909.29941512966) - (f64.const -0.26659080386161804) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2175) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2176) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 1.1135177413458652) - (f64.const -0.37168607115745544) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2177) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2178) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 0.37690773521380183) - (f64.const 0.32473301887512207) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2179) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2180) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2183) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2184) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const 3) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2185) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const 2) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2186) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2187) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const 0.5) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2188) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2189) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2190) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -0.5) - (f64.const inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2191) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -1) - (f64.const inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2192) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -2) - (f64.const inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2193) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -3) - (f64.const inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2194) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -4) - (f64.const inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2195) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2196) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2197) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2198) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const 3) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2199) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const 2) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2200) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2201) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const 0.5) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2202) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2203) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2204) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -0.5) - (f64.const inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2205) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -1) - (f64.const -inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2206) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -2) - (f64.const inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2207) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -3) - (f64.const -inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2208) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -4) - (f64.const inf) - (f64.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2209) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2210) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2211) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2212) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2213) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2214) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2215) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2216) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2217) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2218) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2219) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2220) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2221) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2222) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2223) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2224) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2225) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const 2) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2226) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2227) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const -2) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2228) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const -3) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2229) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const 0.5) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2230) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2231) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2232) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2233) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const 3) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2234) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const 0.5) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2235) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const -0.5) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2236) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const -3) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2237) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const 0.5) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2238) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const 1.5) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2239) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const 2) - (f64.const 0.25) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2240) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const 3) - (f64.const -0.125) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2241) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2242) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const -inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2243) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2244) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0.5) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2245) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0.5) - (f64.const -inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2246) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0.5) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2247) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1.5) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2248) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1.5) - (f64.const -inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2249) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1.5) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2250) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2251) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2252) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const -inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2253) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const 3) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2254) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const 2) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2255) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const 1) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2256) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const 0.5) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2257) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const -0.5) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2258) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const -1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2259) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const -2) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2260) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2261) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2262) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const -inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2263) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const 3) - (f64.const -inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2264) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const 2) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2265) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const 1) - (f64.const -inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2266) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const 0.5) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2267) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const -0.5) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2268) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const -1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2269) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -inf) - (f64.const -2) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2270) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2271) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2272) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -2) - (f64.const 1) - (f64.const -2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2273) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -2) - (f64.const -1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2274) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2283) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 2.134714122803416e-06) - (f32.const 0.1436440795660019) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2284) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2285) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2286) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 44909.33203125) - (f32.const -0.05356409028172493) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2287) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2288) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 1.1135177612304688) - (f32.const 0.19122089445590973) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2289) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2290) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 0.3769077658653259) - (f32.const 0.337149053812027) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2291) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2292) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2295) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2296) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const 3) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2297) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const 2) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2298) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2299) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const 0.5) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2300) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2301) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2302) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -0.5) - (f32.const inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2303) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -1) - (f32.const inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2304) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -2) - (f32.const inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2305) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -3) - (f32.const inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2306) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -4) - (f32.const inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2307) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2308) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2309) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2310) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const 3) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2311) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const 2) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2312) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2313) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const 0.5) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2314) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2315) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2316) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -0.5) - (f32.const inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2317) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -1) - (f32.const -inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2318) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -2) - (f32.const inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2319) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -3) - (f32.const -inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2320) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -4) - (f32.const inf) - (f32.const 0) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2321) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2322) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2323) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2324) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2325) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2326) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2327) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2328) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2329) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2330) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2331) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2332) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2333) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2334) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2335) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2336) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2337) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const 2) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2338) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2339) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const -2) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2340) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const -3) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2341) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const 0.5) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2342) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2343) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2344) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2345) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const 3) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2346) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const 0.5) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2347) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const -0.5) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2348) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const -3) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2349) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const 0.5) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2350) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const 1.5) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2351) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const 2) - (f32.const 0.25) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2352) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const 3) - (f32.const -0.125) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2353) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2354) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const -inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2355) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2356) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0.5) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2357) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0.5) - (f32.const -inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2358) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0.5) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2359) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1.5) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2360) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1.5) - (f32.const -inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2361) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1.5) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2362) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2363) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2364) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const -inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2365) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const 3) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2366) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const 2) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2367) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const 1) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2368) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const 0.5) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2369) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const -0.5) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2370) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const -1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2371) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const -2) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2372) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2373) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2374) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const -inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2375) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const 3) - (f32.const -inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2376) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const 2) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2377) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const 1) - (f32.const -inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2378) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const 0.5) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2379) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const -0.5) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2380) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const -1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2381) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -inf) - (f32.const -2) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2382) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2383) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2384) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -2) - (f32.const 1) - (f32.const -2) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2385) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -2) - (f32.const -1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2386) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/math/NativeMath.seedRandom - (i64.reinterpret/f64 - (call $~lib/bindings/Math/random) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (f64.lt - (f64.convert_s/i32 - (get_local $0) - ) - (f64.const 1e6) - ) - ) - ) - (if - (tee_local $1 - (f64.ge - (tee_local $2 - (call $~lib/math/NativeMath.random) - ) - (f64.const 0) - ) - ) - (set_local $1 - (f64.lt - (get_local $2) - (f64.const 1) - ) - ) - ) - (if - (get_local $1) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2395) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - ) - (call $~lib/math/NativeMath.seedRandom - (i64.reinterpret/f64 - (call $~lib/bindings/Math/random) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (f64.lt - (f64.convert_s/i32 - (get_local $0) - ) - (f64.const 1e6) - ) - ) - ) - (if - (tee_local $1 - (f32.ge - (tee_local $3 - (call $~lib/math/NativeMathf.random) - ) - (f32.const 0) - ) - ) - (set_local $1 - (f32.lt - (get_local $3) - (f32.const 1) - ) - ) - ) - (if - (get_local $1) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2403) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -8.06684839057968) - (f64.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2417) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 4.345239849338305) - (f64.const 4) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2418) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -8.38143342755525) - (f64.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2419) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -6.531673581913484) - (f64.const -7) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2420) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 9.267056966972586) - (f64.const 9) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2421) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0.6619858980995045) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2422) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -0.4066039223853553) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2423) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0.5617597462207241) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2424) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0.7741522965913037) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2425) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -0.6787637026394024) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2426) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2429) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const inf) - (f64.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2430) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -inf) - (f64.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2431) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2432) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -0) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2433) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 1) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2434) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -1) - (f64.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2435) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0.5) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2436) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -0.5) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2437) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 1.5) - (f64.const 2) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2438) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -1.5) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2439) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 1.0000152587890625) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2440) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -1.0000152587890625) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2441) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0.9999923706054688) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2442) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -0.9999923706054688) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2443) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 7.888609052210118e-31) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2444) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -7.888609052210118e-31) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2445) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -8.066848754882812) - (f32.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2454) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 4.345239639282227) - (f32.const 4) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2455) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -8.381433486938477) - (f32.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2456) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -6.531673431396484) - (f32.const -7) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2457) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 9.267057418823242) - (f32.const 9) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2458) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0.6619858741760254) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2459) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -0.40660393238067627) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2460) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0.5617597699165344) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2461) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0.7741522789001465) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2462) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -0.6787636876106262) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2463) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2466) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const inf) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2467) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -inf) - (f32.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2468) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2469) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -0) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2470) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 1) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2471) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -1) - (f32.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2472) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0.5) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2473) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -0.5) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2474) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 1.5) - (f64.const 2) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2475) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -1.5) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2476) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 1.0000152587890625) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2477) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -1.0000152587890625) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2478) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0.9999923706054688) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2479) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -0.9999923706054688) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2480) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 7.888609052210118e-31) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2481) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -7.888609052210118e-31) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2482) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const 0) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2493) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const -0) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2494) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const 1) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2495) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const 2) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2496) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const -1) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2497) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const -2) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2498) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const inf) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2499) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const -inf) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2500) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2501) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const 0) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2509) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const -0) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2510) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const 1) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2511) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const 2) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2512) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const -1) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2513) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const -2) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2514) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const inf) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2515) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const -inf) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2516) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2517) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const 1.0044767307740567) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2528) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 4.345239849338305) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2529) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const -0.09061141541648476) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2530) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const -1.9641383050707404) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2531) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const -0.35572720174700656) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2532) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const 0.17067236731650248) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2533) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const -0.016443286217702822) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2534) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const -0.792054511984896) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2535) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 0.615702673197924) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2536) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const -0.0106815621160685) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2537) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2540) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const 1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2541) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0.5) - (f64.const 1) - (f64.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2542) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0.5) - (f64.const 1) - (f64.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2543) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2544) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const 1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2545) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1.5) - (f64.const 1) - (f64.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2546) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1.5) - (f64.const 1) - (f64.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2547) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 2) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2548) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -2) - (f64.const 1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2549) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const 1) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2550) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -inf) - (f64.const 1) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2551) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2552) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2553) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const -1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2554) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0.5) - (f64.const -1) - (f64.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2555) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0.5) - (f64.const -1) - (f64.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2556) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2557) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const -1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2558) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1.5) - (f64.const -1) - (f64.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2559) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1.5) - (f64.const -1) - (f64.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2560) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 2) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2561) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -2) - (f64.const -1) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2562) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const -1) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2563) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -inf) - (f64.const -1) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2564) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2565) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2566) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2567) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2568) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const -inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2569) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2570) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2571) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2572) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const inf) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2573) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const -inf) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2574) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2575) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2576) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2577) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2578) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -inf) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2579) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2580) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2581) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2582) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -inf) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2583) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2584) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const 2) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2585) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const -0.5) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2586) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2587) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -inf) - (f64.const 2) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2588) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -inf) - (f64.const -0.5) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2589) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2590) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2591) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2592) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2593) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const inf) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2594) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const inf) - (f64.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2595) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const inf) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2596) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -inf) - (f64.const inf) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2597) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const -inf) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2598) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const -inf) - (f64.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2599) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const -inf) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2600) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -inf) - (f64.const -inf) - (f64.const nan:0x8000000000000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2601) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1.75) - (f64.const 0.5) - (f64.const -0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2602) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1.75) - (f64.const 0.5) - (f64.const 0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2603) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1.75) - (f64.const -0.5) - (f64.const -0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2604) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1.75) - (f64.const -0.5) - (f64.const 0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2605) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 8e-323) - (f64.const inf) - (f64.const 8e-323) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2606) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const 1.004476547241211) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2615) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 4.345239639282227) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2616) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const -0.09061169624328613) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2617) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const -1.9641380310058594) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2618) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const -0.3557271957397461) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2619) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const 0.17067205905914307) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2620) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const -0.016443386673927307) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2621) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const -0.7920545339584351) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2622) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 0.6157026886940002) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2623) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const -0.010681532323360443) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2624) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2627) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const 1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2628) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0.5) - (f32.const 1) - (f32.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2629) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0.5) - (f32.const 1) - (f32.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2630) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2631) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const 1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2632) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1.5) - (f32.const 1) - (f32.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2633) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1.5) - (f32.const 1) - (f32.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2634) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 2) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2635) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -2) - (f32.const 1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2636) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const 1) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2637) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -inf) - (f32.const 1) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2638) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2639) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2640) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const -1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2641) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0.5) - (f32.const -1) - (f32.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2642) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0.5) - (f32.const -1) - (f32.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2643) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2644) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const -1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2645) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1.5) - (f32.const -1) - (f32.const -0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2646) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1.5) - (f32.const -1) - (f32.const 0.5) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2647) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 2) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2648) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -2) - (f32.const -1) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2649) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const -1) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2650) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -inf) - (f32.const -1) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2651) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2652) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2653) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2654) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2655) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const -inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2656) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2657) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2658) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2659) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const inf) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2660) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const -inf) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2661) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2662) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2663) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2664) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2665) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -inf) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2666) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2667) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2668) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2669) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -inf) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2670) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2671) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const 2) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2672) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const -0.5) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2673) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2674) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -inf) - (f32.const 2) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2675) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -inf) - (f32.const -0.5) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2676) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2677) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2678) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2679) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2680) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const inf) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2681) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const inf) - (f32.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2682) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const inf) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2683) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -inf) - (f32.const inf) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2684) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const -inf) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2685) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const -inf) - (f32.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2686) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const -inf) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2687) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -inf) - (f32.const -inf) - (f32.const nan:0x400000) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2688) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1.75) - (f32.const 0.5) - (f32.const -0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2689) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1.75) - (f32.const 0.5) - (f32.const 0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2690) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1.75) - (f32.const -0.5) - (f32.const -0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2691) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1.75) - (f32.const -0.5) - (f32.const 0.25) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2692) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 5.877471754111438e-39) - (f32.const inf) - (f32.const 5.877471754111438e-39) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2693) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -8.06684839057968) - (f64.const -1593.5206801156262) - (f64.const -0.2138727605342865) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2758) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 4.345239849338305) - (f64.const 38.54878088685412) - (f64.const 0.21537430584430695) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2759) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -8.38143342755525) - (f64.const -2182.6307505145546) - (f64.const 0.16213826835155487) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2760) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -6.531673581913484) - (f64.const -343.2723926847529) - (f64.const 0.20479513704776764) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2761) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 9.267056966972586) - (f64.const 5291.7790755194055) - (f64.const -0.48676517605781555) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2762) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 0.6619858980995045) - (f64.const 0.7114062568229157) - (f64.const -0.4584641456604004) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2763) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -0.4066039223853553) - (f64.const -0.41790065258739445) - (f64.const 0.37220045924186707) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2764) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 0.5617597462207241) - (f64.const 0.5917755935451237) - (f64.const 0.46178996562957764) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2765) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 0.7741522965913037) - (f64.const 0.8538292008852542) - (f64.const -0.07019051909446716) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2766) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -0.6787637026394024) - (f64.const -0.732097615653169) - (f64.const 0.26858529448509216) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2767) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2770) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2771) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2772) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -inf) - (f64.const -inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2773) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2774) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -8.066848754882812) - (f32.const -1593.521240234375) - (f32.const 0.1671663224697113) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2783) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 4.345239639282227) - (f32.const 38.548770904541016) - (f32.const -0.49340328574180603) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2784) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -8.381433486938477) - (f32.const -2182.630859375) - (f32.const 0.0849970355629921) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2785) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -6.531673431396484) - (f32.const -343.2723388671875) - (f32.const 0.0704190656542778) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2786) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 9.267057418823242) - (f32.const 5291.78125) - (f32.const -0.44362515211105347) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2787) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 0.6619858741760254) - (f32.const 0.7114062309265137) - (f32.const 0.058103885501623154) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2788) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -0.40660393238067627) - (f32.const -0.4179006516933441) - (f32.const 0.39349499344825745) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2789) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 0.5617597699165344) - (f32.const 0.5917755961418152) - (f32.const -0.4183797240257263) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2790) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 0.7741522789001465) - (f32.const 0.8538292050361633) - (f32.const 0.45992106199264526) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2791) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -0.6787636876106262) - (f32.const -0.7320976257324219) - (f32.const -0.48159059882164) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2792) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2795) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2796) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2797) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -inf) - (f32.const -inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2798) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2799) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2811) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 4.345239849338305) - (f64.const 2.0845238903256313) - (f64.const -0.07180261611938477) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2812) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2813) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2814) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 9.267056966972586) - (f64.const 3.0441841217266385) - (f64.const -0.01546262577176094) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2815) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0.6619858980995045) - (f64.const 0.8136251582267503) - (f64.const -0.08618157356977463) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2816) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -0.4066039223853553) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2817) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0.5617597462207241) - (f64.const 0.7495063350104014) - (f64.const -0.0981396734714508) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2818) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0.7741522965913037) - (f64.const 0.879859248170583) - (f64.const -0.37124353647232056) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2819) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -0.6787637026394024) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2820) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2823) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2824) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2825) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2826) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2827) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2828) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2829) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 4) - (f64.const 2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2830) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1e-323) - (f64.const 3.1434555694052576e-162) - (f64.const 0.43537619709968567) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2831) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.5e-323) - (f64.const 3.849931087076416e-162) - (f64.const -0.45194002985954285) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2832) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 5e-324) - (f64.const 2.2227587494850775e-162) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2833) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -5e-324) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2834) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0.9999999999999999) - (f64.const 0.9999999999999999) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2835) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.9999999999999998) - (f64.const 1.414213562373095) - (f64.const -0.21107041835784912) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2836) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.0000000000000002) - (f64.const 1) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2837) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.0000000000000004) - (f64.const 1.4142135623730951) - (f64.const -0.27173060178756714) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2838) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.0000000000000002) - (f64.const 1) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2839) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0.9999999999999999) - (f64.const 0.9999999999999999) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2840) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -1797693134862315708145274e284) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2841) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862315708145274e284) - (f64.const 1340780792994259561100831e130) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2842) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 179769313486231490980915e285) - (f64.const 134078079299425926338769e131) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2843) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862314111473026e284) - (f64.const 1340780792994258965674548e130) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2844) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862313313136902e284) - (f64.const 1340780792994258667961407e130) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2845) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862312514800778e284) - (f64.const 1340780792994258370248265e130) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2846) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862311716464655e284) - (f64.const 1340780792994258072535124e130) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2847) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862310918128531e284) - (f64.const 1340780792994257774821982e130) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2848) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862310119792407e284) - (f64.const 1340780792994257477108841e130) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2849) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862309321456283e284) - (f64.const 1340780792994257179395699e130) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2850) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862308523120159e284) - (f64.const 1340780792994256881682558e130) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2851) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862307724784036e284) - (f64.const 1340780792994256583969417e130) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2852) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.225073858507203e-308) - (f64.const 1.4916681462400417e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2853) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.225073858507205e-308) - (f64.const 1.4916681462400423e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2854) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.225073858507207e-308) - (f64.const 1.491668146240043e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2855) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.225073858507209e-308) - (f64.const 1.4916681462400437e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2856) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.225073858507211e-308) - (f64.const 1.4916681462400443e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2857) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072127e-308) - (f64.const 1.491668146240045e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2858) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072147e-308) - (f64.const 1.4916681462400457e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2859) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072167e-308) - (f64.const 1.4916681462400463e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2860) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072187e-308) - (f64.const 1.491668146240047e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2861) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072207e-308) - (f64.const 1.4916681462400476e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2862) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072226e-308) - (f64.const 1.4916681462400483e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2863) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072246e-308) - (f64.const 1.491668146240049e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2864) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072266e-308) - (f64.const 1.4916681462400496e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2865) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072286e-308) - (f64.const 1.4916681462400503e-154) - (f64.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2866) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 92.35130391890645) - (f64.const 9.609958580499006) - (f64.const 0.4998137056827545) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2867) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 93.3599596388916) - (f64.const 9.662295774757238) - (f64.const -0.49979978799819946) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2868) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 95.42049628886124) - (f64.const 9.76834153215689) - (f64.const -0.49997270107269287) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2869) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 95.87916941885449) - (f64.const 9.791790919890728) - (f64.const 0.4998766779899597) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2870) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 96.84804174884022) - (f64.const 9.841140266698785) - (f64.const 0.499801903963089) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2871) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 97.43639050883155) - (f64.const 9.87098731175517) - (f64.const 0.4997696280479431) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2872) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 97.50957979883047) - (f64.const 9.874693909120955) - (f64.const 0.49999818205833435) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2873) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 97.80496893882612) - (f64.const 9.88963947466368) - (f64.const -0.4999580681324005) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2874) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 98.2751822888192) - (f64.const 9.913383997849534) - (f64.const 0.49979931116104126) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2875) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 99.47293564880155) - (f64.const 9.973611966023219) - (f64.const -0.4999540448188782) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2876) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 100.57047130878539) - (f64.const 10.028483001370914) - (f64.const -0.49996453523635864) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2877) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 100.60954608878481) - (f64.const 10.030431002144665) - (f64.const 0.49975672364234924) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2878) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 100.67909109878379) - (f64.const 10.033897104255344) - (f64.const -0.4997771382331848) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2879) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 101.12268095877725) - (f64.const 10.055977374615422) - (f64.const 0.49988678097724915) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2880) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 101.3027691287746) - (f64.const 10.064927676281366) - (f64.const 0.4999105632305145) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2881) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.45932313565507e-307) - (f64.const 4.9591563149945874e-154) - (f64.const -0.4998999834060669) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2882) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 5.610957305180409e-307) - (f64.const 7.490632353266584e-154) - (f64.const -0.4999343752861023) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2883) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 5.8073887977408524e-307) - (f64.const 7.62062254526548e-154) - (f64.const -0.49989569187164307) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2884) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 7.026137080471427e-307) - (f64.const 8.382205605013174e-154) - (f64.const 0.49980640411376953) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2885) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 8.438697769194972e-307) - (f64.const 9.186238495268328e-154) - (f64.const -0.4999065697193146) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2886) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.1607792515836795e-306) - (f64.const 1.0773946591586944e-153) - (f64.const -0.49997684359550476) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2887) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.2827413827423193e-306) - (f64.const 1.1325817333606962e-153) - (f64.const -0.4999513030052185) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2888) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.7116604596087457e-306) - (f64.const 1.3083044216117078e-153) - (f64.const -0.49986395239830017) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2889) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.038173251686994e-306) - (f64.const 1.4276460526639628e-153) - (f64.const 0.4998403787612915) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2890) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.171572060856931e-306) - (f64.const 1.4736254818836879e-153) - (f64.const 0.4999290406703949) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2891) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.4681399631804094e-306) - (f64.const 1.5710314965589996e-153) - (f64.const 0.49989044666290283) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2892) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.5175533964200588e-306) - (f64.const 1.5866799918131124e-153) - (f64.const -0.4997701048851013) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2893) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.6461505468829625e-306) - (f64.const 1.6266992797941982e-153) - (f64.const 0.4998672902584076) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2894) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 3.8167076367720413e-306) - (f64.const 1.9536395872248397e-153) - (f64.const 0.49983471632003784) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2895) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 4.5743220778562766e-306) - (f64.const 2.1387664851161936e-153) - (f64.const 0.49985939264297485) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2896) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2905) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 4.345239639282227) - (f32.const 2.084523916244507) - (f32.const 0.3200402557849884) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2906) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2907) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2908) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 9.267057418823242) - (f32.const 3.0441842079162598) - (f32.const 0.05022354796528816) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2909) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0.6619858741760254) - (f32.const 0.813625156879425) - (f32.const 0.2240506112575531) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2910) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -0.40660393238067627) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2911) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0.5617597699165344) - (f32.const 0.7495063543319702) - (f32.const 0.05895441770553589) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2912) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0.7741522789001465) - (f32.const 0.879859209060669) - (f32.const -0.4874873757362366) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2913) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -0.6787636876106262) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2914) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2917) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2918) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2919) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2920) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2921) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2922) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2923) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 4) - (f32.const 2) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2924) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 2.802596928649634e-45) - (f32.const 5.293955920339377e-23) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2925) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 4.203895392974451e-45) - (f32.const 6.483745598763743e-23) - (f32.const 0.37388554215431213) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2926) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1.401298464324817e-45) - (f32.const 3.743392066509216e-23) - (f32.const -0.20303145051002502) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2927) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -1.401298464324817e-45) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2928) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 3402823466385288598117041e14) - (f32.const 18446742974197923840) - (f32.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2929) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -3402823466385288598117041e14) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2930) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0.9999998807907104) - (f32.const 0.9999999403953552) - (f32.const 2.980232594040899e-08) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2931) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0.9999999403953552) - (f32.const 0.9999999403953552) - (f32.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2932) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1.999999761581421) - (f32.const 1.4142134189605713) - (f32.const -0.4959246516227722) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2933) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1.9999998807907104) - (f32.const 1.4142135381698608) - (f32.const 0.15052194893360138) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2934) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1.0000001192092896) - (f32.const 1) - (f32.const -0.5) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2935) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1.000000238418579) - (f32.const 1.0000001192092896) - (f32.const 5.960463766996327e-08) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2936) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 2.000000238418579) - (f32.const 1.4142136573791504) - (f32.const 0.08986179530620575) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2937) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 2.000000476837158) - (f32.const 1.41421377658844) - (f32.const 0.3827550709247589) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2938) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -8.06684839057968) - (f64.const -0.999999803096032) - (f64.const 0.012793331407010555) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3003) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 4.345239849338305) - (f64.const 0.9996636978961307) - (f64.const 0.1573508232831955) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3004) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -8.38143342755525) - (f64.const -0.9999998950434862) - (f64.const 0.27985066175460815) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3005) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -6.531673581913484) - (f64.const -0.9999957568392429) - (f64.const -0.44285574555397034) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3006) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 9.267056966972586) - (f64.const 0.9999999821447234) - (f64.const 0.4462755024433136) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3007) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 0.6619858980995045) - (f64.const 0.5796835018635275) - (f64.const 0.4892043173313141) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3008) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -0.4066039223853553) - (f64.const -0.3855853099901652) - (f64.const 0.35993871092796326) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3009) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 0.5617597462207241) - (f64.const 0.5092819248700439) - (f64.const -0.39436522126197815) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3010) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 0.7741522965913037) - (f64.const 0.6493374550318555) - (f64.const -0.4899396002292633) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3011) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -0.6787637026394024) - (f64.const -0.590715084799841) - (f64.const -0.0145387789234519) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3012) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3015) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3016) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const inf) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3017) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -inf) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3018) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3019) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -8.066848754882812) - (f32.const -0.9999998211860657) - (f32.const -0.3034979999065399) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3028) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 4.345239639282227) - (f32.const 0.9996637105941772) - (f32.const 0.2154078334569931) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3029) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -8.381433486938477) - (f32.const -0.9999998807907104) - (f32.const 0.23912210762500763) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3030) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -6.531673431396484) - (f32.const -0.999995768070221) - (f32.const -0.18844597041606903) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3031) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 9.267057418823242) - (f32.const 1) - (f32.const 0.1497807800769806) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3032) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 0.6619858741760254) - (f32.const 0.5796834826469421) - (f32.const -0.05590476095676422) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3033) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -0.40660393238067627) - (f32.const -0.38558530807495117) - (f32.const 0.349787175655365) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3034) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 0.5617597699165344) - (f32.const 0.5092819333076477) - (f32.const -0.1528785079717636) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3035) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 0.7741522789001465) - (f32.const 0.6493374705314636) - (f32.const 0.4317026138305664) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3036) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -0.6787636876106262) - (f32.const -0.5907150506973267) - (f32.const 0.4079873859882355) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3037) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3040) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3041) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const inf) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3042) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -inf) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3043) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3044) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -8.06684839057968) - (f64.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3056) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 4.345239849338305) - (f64.const 4) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3057) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -8.38143342755525) - (f64.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3058) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -6.531673581913484) - (f64.const -6) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3059) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 9.267056966972586) - (f64.const 9) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3060) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0.6619858980995045) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3061) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -0.4066039223853553) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3062) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0.5617597462207241) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3063) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0.7741522965913037) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3064) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -0.6787637026394024) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3065) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3068) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const inf) - (f64.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3069) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -inf) - (f64.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3070) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3071) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -0) - (f64.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3072) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 1) - (f64.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3073) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -1) - (f64.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3074) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0.5) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3075) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -0.5) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3076) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 1.0000152587890625) - (f64.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3077) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -1.0000152587890625) - (f64.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3078) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0.9999923706054688) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3079) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -0.9999923706054688) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3080) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 7.888609052210118e-31) - (f64.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3081) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -7.888609052210118e-31) - (f64.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3082) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -8.066848754882812) - (f32.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3091) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 4.345239639282227) - (f32.const 4) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3092) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -8.381433486938477) - (f32.const -8) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3093) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -6.531673431396484) - (f32.const -6) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3094) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 9.267057418823242) - (f32.const 9) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3095) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0.6619858741760254) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3096) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -0.40660393238067627) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3097) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0.5617597699165344) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3098) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0.7741522789001465) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3099) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -0.6787636876106262) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3100) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3103) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const inf) - (f32.const inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3104) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -inf) - (f32.const -inf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3105) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -0) - (f32.const -0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 1) - (f32.const 1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3108) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -1) - (f32.const -1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0.5) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -0.5) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 1.0000152587890625) - (f32.const 1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3112) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -1.0000152587890625) - (f32.const -1) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3113) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0.9999923706054688) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -0.9999923706054688) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 7.888609052210118e-31) - (f32.const 0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -7.888609052210118e-31) - (f32.const -0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 0) - (i32.const 0) - ) - (i64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3121) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 0) - (i32.const 1) - ) - (i64.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 0) - (i32.const 2) - ) - (i64.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3123) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 0) - (i32.const 3) - ) - (i64.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 1) - (i32.const 0) - ) - (i64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 1) - (i32.const 1) - ) - (i64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 1) - (i32.const 2) - ) - (i64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 1) - (i32.const 3) - ) - (i64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 2) - (i32.const 0) - ) - (i64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 2) - (i32.const 1) - ) - (i64.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 2) - (i32.const 2) - ) - (i64.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 2) - (i32.const 3) - ) - (i64.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3134) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const -1) - (i32.const 0) - ) - (i64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3136) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const -1) - (i32.const 1) - ) - (i64.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3137) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const -1) - (i32.const 2) - ) - (i64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3138) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const -1) - (i32.const 3) - ) - (i64.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3139) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const -2) - (i32.const 0) - ) - (i64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3141) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const -2) - (i32.const 1) - ) - (i64.const -2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3142) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const -2) - (i32.const 2) - ) - (i64.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3143) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const -2) - (i32.const 3) - ) - (i64.const -8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3144) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 40) - ) - (i64.const -6289078614652622815) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3146) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 41) - ) - (i64.const -420491770248316829) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3147) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 42) - ) - (i64.const -1261475310744950487) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3148) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 43) - ) - (i64.const -3784425932234851461) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3149) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 63) - ) - (i64.const -3237885987332494933) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3150) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 64) - ) - (i64.const 8733086111712066817) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3151) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 128) - ) - (i64.const -9204772141784466943) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3152) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_local $4 - (call $~lib/math/ipow64 - (i64.const 57055) - (i32.const 3) - ) - ) - (set_local $5 - (call $~lib/math/ipow64 - (i64.const 339590) - (i32.const 3) - ) - ) - (if - (i64.ne - (i64.add - (get_local $4) - (get_local $5) - ) - (i64.const 39347712995520375) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3154) - (i32.const 0) - ) - (unreachable) - ) - ) + f64.const 2.718281828459045 + get_global $~lib/bindings/Math/E + f64.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 116 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6931471805599453 + get_global $~lib/bindings/Math/LN2 + f64.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 117 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.302585092994046 + get_global $~lib/bindings/Math/LN10 + f64.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 118 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.4426950408889634 + get_global $~lib/bindings/Math/LOG2E + f64.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 119 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3.141592653589793 + get_global $~lib/bindings/Math/PI + f64.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 120 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7071067811865476 + get_global $~lib/bindings/Math/SQRT1_2 + f64.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 121 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.4142135623730951 + get_global $~lib/bindings/Math/SQRT2 + f64.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 122 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2.7182817459106445 + get_global $~lib/bindings/Math/E + f32.demote/f64 + f32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 124 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6931471824645996 + get_global $~lib/bindings/Math/LN2 + f32.demote/f64 + f32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 125 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2.3025851249694824 + get_global $~lib/bindings/Math/LN10 + f32.demote/f64 + f32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.4426950216293335 + get_global $~lib/bindings/Math/LOG2E + f32.demote/f64 + f32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 127 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3.1415927410125732 + get_global $~lib/bindings/Math/PI + f32.demote/f64 + f32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7071067690849304 + get_global $~lib/bindings/Math/SQRT1_2 + f32.demote/f64 + f32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 129 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.4142135381698608 + get_global $~lib/bindings/Math/SQRT2 + f32.demote/f64 + f32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 130 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + i32.const -2 + f64.const -2.01671209764492 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 141 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + i32.const -1 + f64.const 2.1726199246691524 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 142 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + i32.const 0 + f64.const -8.38143342755525 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + i32.const 1 + f64.const -13.063347163826968 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 144 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + i32.const 2 + f64.const 37.06822786789034 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 145 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + i32.const 3 + f64.const 5.295887184796036 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 146 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + i32.const 4 + f64.const -6.505662758165685 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 147 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + i32.const 5 + f64.const 17.97631187906317 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 148 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + i32.const 6 + f64.const 49.545746981843436 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 149 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + i32.const 7 + f64.const -86.88175393784351 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 150 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + i32.const 2147483647 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 153 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + i32.const -2147483647 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 154 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + i32.const 2147483647 + f64.const -0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + i32.const 0 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 156 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + i32.const 0 + f64.const inf + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 157 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + i32.const 0 + f64.const -inf + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 158 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + i32.const 0 + f64.const 1 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + i32.const 1 + f64.const 2 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 160 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + i32.const -1 + f64.const 0.5 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 161 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + i32.const 2147483647 + f64.const inf + i32.const 17 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 162 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + i32.const 1 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 163 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + i32.const 2147483647 + f64.const inf + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 164 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + i32.const -2147483647 + f64.const inf + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + i32.const 2147483647 + f64.const -inf + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 166 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 8988465674311579538646525e283 + i32.const -2097 + f64.const 5e-324 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 167 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + i32.const 2097 + f64.const 8988465674311579538646525e283 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 168 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.000244140625 + i32.const -1074 + f64.const 5e-324 + i32.const 9 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 169 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7499999999999999 + i32.const -1073 + f64.const 5e-324 + i32.const 9 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 170 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5000000000000012 + i32.const -1024 + f64.const 2.781342323134007e-309 + i32.const 9 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 171 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + i32.const -2 + f32.const -2.016712188720703 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 180 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + i32.const -1 + f32.const 2.1726198196411133 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 181 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + i32.const 0 + f32.const -8.381433486938477 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 182 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + i32.const 1 + f32.const -13.063346862792969 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 183 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + i32.const 2 + f32.const 37.06822967529297 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 184 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + i32.const 3 + f32.const 5.295886993408203 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 185 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + i32.const 4 + f32.const -6.50566291809082 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 186 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + i32.const 5 + f32.const 17.9763126373291 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 187 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + i32.const 6 + f32.const 49.545745849609375 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 188 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + i32.const 7 + f32.const -86.88175201416016 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 189 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + i32.const 2147483647 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 192 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + i32.const -2147483647 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 193 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + i32.const 2147483647 + f32.const -0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 194 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + i32.const 0 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 195 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + i32.const 0 + f32.const inf + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 196 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + i32.const 0 + f32.const -inf + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 197 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + i32.const 0 + f32.const 1 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 198 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + i32.const 1 + f32.const 2 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 199 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + i32.const -1 + f32.const 0.5 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 200 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + i32.const 2147483647 + f32.const inf + i32.const 17 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 201 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + i32.const 1 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 202 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + i32.const 2147483647 + f32.const inf + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 203 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + i32.const -2147483647 + f32.const inf + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 204 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + i32.const 2147483647 + f32.const -inf + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 205 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1701411834604692317316873e14 + i32.const -276 + f32.const 1.401298464324817e-45 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 206 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.401298464324817e-45 + i32.const 276 + f32.const 1701411834604692317316873e14 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 207 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.000244140625 + i32.const -149 + f32.const 1.401298464324817e-45 + i32.const 9 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 208 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7499999403953552 + i32.const -148 + f32.const 1.401298464324817e-45 + i32.const 9 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 209 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5000006556510925 + i32.const -128 + f32.const 1.4693693398263237e-39 + i32.const 9 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 210 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 8.06684839057968 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 222 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4.345239849338305 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 223 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const 8.38143342755525 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 224 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 6.531673581913484 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 225 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9.267056966972586 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 226 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.6619858980995045 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 227 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 0.4066039223853553 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 228 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5617597462207241 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 229 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.7741522965913037 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 230 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 0.6787637026394024 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 231 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 234 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 235 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 236 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 237 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 238 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const inf + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 239 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 240 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 8.066848754882812 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4.345239639282227 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 250 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const 8.381433486938477 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 251 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 6.531673431396484 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 252 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9.267057418823242 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 253 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.6619858741760254 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 254 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 0.40660393238067627 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 255 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5617597699165344 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 256 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.7741522789001465 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 257 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 0.6787636876106262 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 258 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 261 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 262 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 263 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 1 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 264 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 265 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const inf + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 266 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 267 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 279 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 280 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 281 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 282 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 283 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.8473310828433507 + f64.const -0.41553276777267456 + i32.const 1 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 284 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 1.989530071088669 + f64.const 0.4973946213722229 + i32.const 1 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 285 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.9742849645674904 + f64.const -0.4428897500038147 + i32.const 1 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 286 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.6854215158636222 + f64.const -0.12589527666568756 + i32.const 1 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 287 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 2.316874138205964 + f64.const -0.17284949123859406 + i32.const 1 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 288 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 291 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 292 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 293 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 294 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 295 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 296 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 297 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 298 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5309227209592985 + f64.const 2.1304853799705463 + f64.const 0.1391008496284485 + i32.const 1 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 299 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.4939556746399746 + f64.const 1.0541629875851946 + f64.const 0.22054767608642578 + i32.const 1 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 300 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 309 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 310 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 311 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 312 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 313 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.8473311066627502 + f32.const -0.13588131964206696 + i32.const 1 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 314 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 1.989530086517334 + f32.const 0.03764917701482773 + i32.const 1 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 315 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.9742849469184875 + f32.const 0.18443739414215088 + i32.const 1 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 316 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.6854215264320374 + f32.const -0.29158344864845276 + i32.const 1 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 317 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 2.3168740272521973 + f32.const -0.3795364499092102 + i32.const 1 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 318 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 321 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 322 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 323 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 324 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 325 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 326 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 327 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 328 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.49965065717697144 + f32.const 1.0476008653640747 + f32.const -0.21161814033985138 + i32.const 1 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 329 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5051405429840088 + f32.const 2.1003410816192627 + f32.const -0.20852705836296082 + i32.const 1 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 330 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5189794898033142 + f32.const 2.116452932357788 + f32.const -0.14600826799869537 + i32.const 1 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 331 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 343 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.1487163980597503 + f64.const -0.291634738445282 + i32.const 1 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 344 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 345 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 346 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.91668914109908 + f64.const -0.24191908538341522 + i32.const 1 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 347 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 348 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 349 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 350 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 351 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 352 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 355 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 356 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 357 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 359 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 360 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 361 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1060831199926429 + f64.const 0.4566373404384803 + f64.const -0.29381608963012695 + i32.const 1 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 377 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1089809557628658 + f64.const 0.4627246859959428 + f64.const -0.3990095555782318 + i32.const 1 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 379 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1169429159875521 + f64.const 0.47902433134075284 + f64.const -0.321674108505249 + i32.const 1 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 380 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 389 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.148716449737549 + f32.const 0.4251045286655426 + i32.const 1 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 390 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 391 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 392 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.916689157485962 + f32.const -0.1369788944721222 + i32.const 1 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 393 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 394 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 395 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 396 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 397 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 398 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 401 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 402 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 403 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 404 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 405 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 406 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 407 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1125899906842624 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 408 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 420 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 421 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 422 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 423 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 424 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7234652439515459 + f64.const -0.13599912822246552 + i32.const 1 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 425 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.41873374429377225 + f64.const -0.09264230728149414 + i32.const 1 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 426 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5965113622274062 + f64.const -0.10864213854074478 + i32.const 1 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 427 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.8853748109312743 + f64.const -0.4256366193294525 + i32.const 1 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 428 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.7460778114110673 + f64.const 0.13986606895923615 + i32.const 1 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 429 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 432 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 433 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 434 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 435 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 436 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 437 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 438 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 439 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 440 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5073043929119148 + f64.const 0.5320538997772349 + f64.const -0.16157317161560059 + i32.const 1 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 441 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 450 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 451 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 452 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 453 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 454 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7234652042388916 + f32.const -0.1307632476091385 + i32.const 1 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 455 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.41873374581336975 + f32.const 0.3161141574382782 + i32.const 1 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 456 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5965113639831543 + f32.const -0.4510819613933563 + i32.const 1 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 457 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.8853747844696045 + f32.const 0.02493886835873127 + i32.const 1 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 458 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.7460777759552002 + f32.const 0.2515012323856354 + i32.const 1 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 459 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 462 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 463 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 464 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 465 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 466 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 467 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 468 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 469 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 470 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5004770159721375 + f32.const 0.5241496562957764 + f32.const -0.29427099227905273 + i32.const 1 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 471 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -2.784729878387861 + f64.const -0.4762189984321594 + i32.const 1 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 483 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.175213389013164 + f64.const -0.02728751301765442 + i32.const 1 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 484 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.822706083697696 + f64.const 0.20985257625579834 + i32.const 1 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 485 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -2.575619446591922 + f64.const 0.3113134205341339 + i32.const 1 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 486 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.9225114951048674 + f64.const 0.4991756081581116 + i32.const 1 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 487 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.6212462762707166 + f64.const -0.4697347581386566 + i32.const 1 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 488 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.39615990393192035 + f64.const -0.40814438462257385 + i32.const 1 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 489 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5357588870255474 + f64.const 0.3520713150501251 + i32.const 1 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 490 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.7123571263197349 + f64.const 0.13371451199054718 + i32.const 1 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 491 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.635182348903198 + f64.const 0.04749670997262001 + i32.const 1 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 492 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 495 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 496 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 497 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 498 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 499 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -2.7847299575805664 + f32.const -0.14418013393878937 + i32.const 1 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 528 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.17521333694458 + f32.const -0.020796965807676315 + i32.const 1 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 529 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.8227059841156006 + f32.const 0.44718533754348755 + i32.const 1 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 530 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -2.5756194591522217 + f32.const -0.14822272956371307 + i32.const 1 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 531 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.922511577606201 + f32.const 0.14270681142807007 + i32.const 1 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 532 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.6212462782859802 + f32.const 0.3684912919998169 + i32.const 1 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 533 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.39615991711616516 + f32.const -0.13170306384563446 + i32.const 1 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 534 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.535758912563324 + f32.const 0.08184859901666641 + i32.const 1 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 535 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.7123571038246155 + f32.const -0.14270737767219543 + i32.const 1 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 536 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.6351823210716248 + f32.const 0.2583143711090088 + i32.const 1 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 537 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 540 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 541 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 542 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 543 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 544 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -1.4474613762633468 + f64.const 0.14857111871242523 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 556 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.344597927114538 + f64.const -0.08170335739850998 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 557 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -1.4520463463295539 + f64.const -0.07505480200052261 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 558 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -1.4188758658752532 + f64.const -0.057633496820926666 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 559 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 1.463303145448706 + f64.const 0.1606956422328949 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 560 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.5847550670238325 + f64.const 0.4582556486129761 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 561 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.3861864177552131 + f64.const -0.2574281692504883 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 562 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5118269531628881 + f64.const -0.11444277316331863 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 563 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.6587802431653822 + f64.const -0.11286488175392151 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 564 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.5963307826973472 + f64.const -0.2182842344045639 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 565 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 568 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 569 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0.7853981633974483 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 570 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0.7853981633974483 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 571 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 572 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 573 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 574 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6929821535674624 + f64.const 0.6060004555152562 + f64.const -0.17075790464878082 + i32.const 1 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 575 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -1.4474613666534424 + f32.const 0.12686480581760406 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 584 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 1.3445979356765747 + f32.const 0.16045434772968292 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 585 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -1.4520463943481445 + f32.const -0.39581751823425293 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 586 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -1.418875813484192 + f32.const 0.410570353269577 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 587 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 1.4633032083511353 + f32.const 0.48403501510620117 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 588 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.5847550630569458 + f32.const 0.2125193476676941 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 589 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.386186420917511 + f32.const 0.18169628083705902 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 590 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5118269920349121 + f32.const 0.3499770760536194 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 591 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.6587802171707153 + f32.const -0.2505330741405487 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 592 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.5963307619094849 + f32.const 0.17614826560020447 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 593 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 596 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 597 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0.7853981852531433 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 598 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0.7853981852531433 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 599 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 600 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 601 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 602 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 614 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 615 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 616 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 617 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 618 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7963404371347943 + f64.const 0.21338365972042084 + i32.const 1 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 619 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.43153570730602897 + f64.const -0.4325666129589081 + i32.const 1 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 620 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.6354006111644578 + f64.const -0.06527865678071976 + i32.const 1 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 621 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1.0306085575277995 + f64.const 0.14632052183151245 + i32.const 1 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 622 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.8268179645205255 + f64.const 0.1397128701210022 + i32.const 1 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 623 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 626 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 627 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 628 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 629 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 630 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 0 + i32.const 4 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 631 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -inf + f64.const 0 + i32.const 4 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 632 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 633 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 634 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.3552527156068805e-20 + f64.const 1.3552527156068805e-20 + f64.const 0 + i32.const 1 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 635 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.332636185032189e-302 + f64.const 9.332636185032189e-302 + f64.const 0 + i32.const 1 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 636 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5.562684646268003e-309 + f64.const 5.562684646268003e-309 + f64.const 0 + i32.const 9 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 637 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -5.562684646268003e-309 + f64.const -5.562684646268003e-309 + f64.const 0 + i32.const 9 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 638 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 8988465674311579538646525e283 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 639 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 648 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 649 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 650 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 651 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 652 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7963404059410095 + f32.const 0.19112196564674377 + i32.const 1 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 653 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.4315357208251953 + f32.const -0.05180925130844116 + i32.const 1 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 654 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.635400652885437 + f32.const 0.11911056190729141 + i32.const 1 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 655 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1.0306085348129272 + f32.const 0.1798270344734192 + i32.const 1 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 656 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.8268179297447205 + f32.const 0.11588983237743378 + i32.const 1 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 657 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 660 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 661 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 662 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 663 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 664 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 0 + i32.const 4 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 665 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -inf + f32.const 0 + i32.const 4 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 666 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 667 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 668 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.3552527156068805e-20 + f32.const 1.3552527156068805e-20 + f32.const 0 + i32.const 1 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 669 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 7.888609052210118e-31 + f32.const 0 + i32.const 1 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 670 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2.938735877055719e-39 + f32.const 2.938735877055719e-39 + f32.const 0 + i32.const 9 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 671 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2.938735877055719e-39 + f32.const -2.938735877055719e-39 + f32.const 0 + i32.const 9 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 672 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1701411834604692317316873e14 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 673 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const -1.0585895402489023 + f64.const 0.09766263514757156 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 685 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 2.6868734126013067 + f64.const 0.35833948850631714 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 686 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -1.889300091849528 + f64.const -0.46235957741737366 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 687 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -0.9605469021111489 + f64.const -0.21524477005004883 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 688 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 1.0919123946142109 + f64.const 0.3894443213939667 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 689 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const -1.468508500616424 + f64.const -0.448591411113739 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 690 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 1.5641600512601268 + f64.const 0.3784842789173126 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 691 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.10281658910678508 + f64.const -0.13993260264396667 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 692 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.29697974004493516 + f64.const 0.44753071665763855 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 693 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -1.5131612053303916 + f64.const 0.39708876609802246 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 694 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 697 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 698 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 699 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -inf + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 700 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 701 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 702 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 703 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 704 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 705 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -inf + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 706 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 707 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 708 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 709 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 710 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 711 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 712 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 713 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 714 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -inf + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 715 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -inf + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 716 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 717 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 0 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 718 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0.7853981633974483 + f64.const -0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 719 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -inf + f64.const 2.356194490192345 + f64.const -0.20682445168495178 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 720 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const inf + f64.const -0.7853981633974483 + f64.const 0.27576595544815063 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 721 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + f64.const -2.356194490192345 + f64.const 0.20682445168495178 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 722 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1125369292536007e-308 + f64.const 1 + f64.const 1.1125369292536007e-308 + f64.const 0 + i32.const 9 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 723 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 8988465674311579538646525e283 + f64.const 1.1125369292536007e-308 + f64.const 0 + i32.const 9 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 724 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 8988465674311579538646525e283 + f64.const 1.668805393880401e-308 + f64.const 0 + i32.const 9 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 725 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const -8988465674311579538646525e283 + f64.const 3.141592653589793 + f64.const 0 + i32.const 1 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 726 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const -1.0585895776748657 + f32.const -0.22352588176727295 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 735 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 2.686873435974121 + f32.const 0.09464472532272339 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 736 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -1.8893001079559326 + f32.const -0.21941901743412018 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 737 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -0.9605468511581421 + f32.const 0.46015575528144836 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 738 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 1.0919123888015747 + f32.const -0.05708503723144531 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 739 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const -1.4685084819793701 + f32.const 0.19611206650733948 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 740 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 1.5641601085662842 + f32.const 0.48143187165260315 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 741 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.10281659662723541 + f32.const -0.4216274917125702 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 742 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.29697975516319275 + f32.const 0.2322007566690445 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 743 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -1.5131611824035645 + f32.const 0.16620726883411407 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 744 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 747 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 748 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 749 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 750 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 751 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 752 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 753 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 754 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 755 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 756 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 757 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 758 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 759 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 760 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 761 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 762 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 763 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 764 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -inf + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 765 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -inf + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 766 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 767 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 0 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 768 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0.7853981852531433 + f32.const 0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 769 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -inf + f32.const 2.356194496154785 + f32.const 0.02500828728079796 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 770 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const inf + f32.const -0.7853981852531433 + f32.const -0.3666777014732361 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 771 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + f32.const -2.356194496154785 + f32.const -0.02500828728079796 + i32.const 1 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 772 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 5.877471754111438e-39 + f32.const 1 + f32.const 5.877471754111438e-39 + f32.const 0 + i32.const 9 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 773 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1701411834604692317316873e14 + f32.const 5.877471754111438e-39 + f32.const 0 + i32.const 9 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 774 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -2.0055552545020245 + f64.const 0.46667951345443726 + i32.const 1 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 786 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.6318162410515635 + f64.const -0.08160271495580673 + i32.const 1 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 787 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.031293910673361 + f64.const -0.048101816326379776 + i32.const 1 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 788 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -1.8692820012204925 + f64.const 0.08624018728733063 + i32.const 1 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 789 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.100457720859702 + f64.const -0.2722989022731781 + i32.const 1 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 790 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.8715311470455973 + f64.const 0.4414918124675751 + i32.const 1 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 791 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.740839030300223 + f64.const 0.016453813761472702 + i32.const 1 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 792 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.8251195400559286 + f64.const 0.30680638551712036 + i32.const 1 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 793 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.9182102478959914 + f64.const 0.06543998420238495 + i32.const 1 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 794 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.8788326906580094 + f64.const -0.2016713172197342 + i32.const 1 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 795 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 798 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 799 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 800 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 801 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 802 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.313225746154785e-10 + f64.const 0.0009765625 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 803 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -9.313225746154785e-10 + f64.const -0.0009765625 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 804 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 805 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 806 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 8 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 807 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -2.0055553913116455 + f32.const -0.44719240069389343 + i32.const 1 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 816 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 1.6318162679672241 + f32.const 0.44636252522468567 + i32.const 1 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 817 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.0312938690185547 + f32.const 0.19483426213264465 + i32.const 1 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 818 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -1.8692820072174072 + f32.const -0.17075514793395996 + i32.const 1 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 819 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.1004576683044434 + f32.const -0.36362043023109436 + i32.const 1 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 820 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.8715311288833618 + f32.const -0.12857209146022797 + i32.const 1 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 821 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.7408390641212463 + f32.const -0.4655757546424866 + i32.const 1 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 822 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.8251195549964905 + f32.const 0.05601907894015312 + i32.const 1 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 823 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.9182102680206299 + f32.const 0.45498204231262207 + i32.const 1 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 824 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.8788326978683472 + f32.const -0.22978967428207397 + i32.const 1 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 825 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 828 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 829 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 830 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 831 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 832 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.313225746154785e-10 + f32.const 0.0009765625 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 833 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -9.313225746154785e-10 + f32.const -0.0009765625 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 834 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 835 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 836 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 8 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 837 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -8 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 849 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 5 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 850 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -8 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 851 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -6 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 852 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 10 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 853 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 854 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 855 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 856 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 857 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 858 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 861 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 862 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 863 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 864 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 865 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 866 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 867 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 868 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 869 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 2 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 870 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 871 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 872 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 873 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 874 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 875 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 876 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 877 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 878 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 879 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 880 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 881 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 882 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 883 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 884 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 2 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 885 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 886 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 887 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 888 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 889 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 890 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 891 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 892 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 893 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 894 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 895 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 896 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 897 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 898 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 899 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 2 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 900 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 901 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 902 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 903 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 1 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 904 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + i32.const 1 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 905 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -8 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 914 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 5 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 915 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -8 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 916 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -6 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 917 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 10 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 918 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 919 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 920 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 921 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 922 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 923 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 926 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 927 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 928 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 929 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 930 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 931 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 932 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 933 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 934 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 2 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 935 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 936 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 937 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 938 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 939 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 940 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 941 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 942 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 943 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 944 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 945 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 946 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 947 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 948 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 949 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 2 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 950 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 951 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 952 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 953 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 954 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 955 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 956 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 957 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 958 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 959 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 960 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 961 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 962 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 963 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 964 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 2 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 965 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 966 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 967 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 968 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 1 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 969 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + i32.const 1 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 970 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 1593.5209938862329 + f64.const -0.38098856806755066 + i32.const 1 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1107 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 38.56174928426729 + f64.const -0.2712278366088867 + i32.const 1 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1108 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const 2182.630979595893 + f64.const 0.0817827582359314 + i32.const 1 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1109 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 343.273849250879 + f64.const -0.429940402507782 + i32.const 1 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1110 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 5291.779170005587 + f64.const -0.1592995822429657 + i32.const 1 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1111 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1.2272321957342842 + f64.const 0.23280741274356842 + i32.const 1 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1112 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 1.083808541871197 + f64.const -0.3960916996002197 + i32.const 1 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1113 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1.1619803583175077 + f64.const 0.37748390436172485 + i32.const 1 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1114 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1.3149236876276706 + f64.const 0.43587008118629456 + i32.const 1 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1115 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 1.2393413245934533 + f64.const 0.10201606154441833 + i32.const 1 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1116 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1119 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1120 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1121 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1122 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1123 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 1593.5216064453125 + f32.const 0.26242581009864807 + i32.const 1 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1132 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 38.56174087524414 + f32.const -0.08168885856866837 + i32.const 1 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1133 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const 2182.631103515625 + f32.const -0.02331414446234703 + i32.const 1 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1134 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 343.2738037109375 + f32.const 0.20081493258476257 + i32.const 1 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1135 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 5291.78173828125 + f32.const 0.36286723613739014 + i32.const 1 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1136 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1.2272322177886963 + f32.const 0.32777416706085205 + i32.const 1 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1137 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 1.0838085412979126 + f32.const -0.039848703891038895 + i32.const 1 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1138 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1.161980390548706 + f32.const 0.15274477005004883 + i32.const 1 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1139 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1.314923644065857 + f32.const -0.2387111485004425 + i32.const 1 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1140 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 1.2393412590026855 + f32.const -0.45791932940483093 + i32.const 1 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1141 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1144 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1145 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1146 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1147 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1148 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 3.137706068161745e-04 + f64.const -0.2599197328090668 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1160 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 77.11053017112141 + f64.const -0.02792675793170929 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1161 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const 2.290813384916323e-04 + f64.const -0.24974334239959717 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1162 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 1.4565661260931588e-03 + f64.const -0.4816822409629822 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1163 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 10583.558245524993 + f64.const 0.17696762084960938 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1164 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1.9386384525571998 + f64.const -0.4964246451854706 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1165 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 0.6659078892838025 + f64.const -0.10608318448066711 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1166 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1.7537559518626311 + f64.const -0.39162111282348633 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1167 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 2.1687528885129246 + f64.const -0.2996125817298889 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1168 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 0.5072437089402843 + f64.const 0.47261738777160645 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1169 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1172 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1173 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 2.718281828459045 + f64.const -0.3255307376384735 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1174 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0.36787944117144233 + f64.const 0.22389651834964752 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1175 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1176 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1177 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1178 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0397214889526365 + f64.const 2.828429155876411 + f64.const 0.18803080916404724 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1179 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0397214889526365 + f64.const 0.35355313670217847 + f64.const 0.2527272403240204 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1180 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0397210121154785 + f64.const 2.8284278071766122 + f64.const -0.4184139370918274 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1181 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0397214889526367 + f64.const 2.8284291558764116 + f64.const -0.22618377208709717 + i32.const 1 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1182 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 3.1377049162983894e-04 + f32.const -0.030193336308002472 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1191 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 77.11051177978516 + f32.const -0.2875460684299469 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1192 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const 2.2908132814336568e-04 + f32.const 0.2237040400505066 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1193 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 1.4565663877874613e-03 + f32.const 0.36469703912734985 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1194 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 10583.5634765625 + f32.const 0.45962104201316833 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1195 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1.93863844871521 + f32.const 0.3568260967731476 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1196 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 0.6659078598022461 + f32.const -0.38294991850852966 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1197 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1.753756046295166 + f32.const 0.44355490803718567 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1198 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 2.168752908706665 + f32.const 0.24562469124794006 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1199 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 0.5072436928749084 + f32.const -0.3974292278289795 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1200 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1203 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1204 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 2.7182817459106445 + f32.const -0.3462330996990204 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1205 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0.3678794503211975 + f32.const 0.3070148527622223 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1206 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1207 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1208 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1209 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 88.72283172607422 + f32.const 340279851902147610656242e15 + f32.const -0.09067153930664062 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1210 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 88.72283935546875 + f32.const inf + f32.const 0 + i32.const 17 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1211 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -103.97207641601562 + f32.const 1.401298464324817e-45 + f32.const 0.49999967217445374 + i32.const 9 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1212 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -103.97208404541016 + f32.const 0 + f32.const -0.49999651312828064 + i32.const 9 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1213 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.3465735614299774 + f32.const 1.4142135381698608 + f32.const 0.13922421634197235 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1214 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.3465735912322998 + f32.const 1.4142135381698608 + f32.const -0.21432916820049286 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1215 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.3465736210346222 + f32.const 1.4142136573791504 + f32.const 0.43211743235588074 + i32.const 1 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1216 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -0.9996862293931839 + f64.const -0.2760058343410492 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1228 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 76.11053017112141 + f64.const -0.02792675793170929 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1229 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -0.9997709186615084 + f64.const 0.10052496194839478 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1230 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -0.9985434338739069 + f64.const -0.27437829971313477 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1231 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 10582.558245524993 + f64.const 0.17696762084960938 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1232 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.9386384525571999 + f64.const 0.007150684483349323 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1233 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.3340921107161975 + f64.const -0.21216636896133423 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1234 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.7537559518626312 + f64.const 0.21675777435302734 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1235 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1.1687528885129248 + f64.const 0.4007748067378998 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1236 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.4927562910597158 + f64.const -0.05476519837975502 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1237 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1240 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1241 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1.7182818284590453 + f64.const 0.348938524723053 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1242 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0.6321205588285577 + f64.const 0.11194825917482376 + i32.const 1 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1243 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1244 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1245 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1246 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507201e-308 + f64.const 2.225073858507201e-308 + f64.const 0 + i32.const 9 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1247 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2.225073858507201e-308 + f64.const -2.225073858507201e-308 + f64.const 0 + i32.const 9 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1248 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -0.9996862411499023 + f32.const -0.19532723724842072 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1257 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 76.11051177978516 + f32.const -0.2875460684299469 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1258 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -0.9997709393501282 + f32.const -0.34686920046806335 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1259 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -0.9985434412956238 + f32.const -0.1281939446926117 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1260 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 10582.5634765625 + f32.const 0.45962104201316833 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1261 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.9386383891105652 + f32.const -0.28634780645370483 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1262 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.3340921103954315 + f32.const 0.23410017788410187 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1263 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.7537559866905212 + f32.const -0.11289017647504807 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1264 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1.168752908706665 + f32.const 0.4912493824958801 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1265 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.49275627732276917 + f32.const 0.20514154434204102 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1266 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1269 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1270 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1.718281865119934 + f32.const 0.3075338304042816 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1271 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0.6321205496788025 + f32.const 0.15350742638111115 + i32.const 1 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1272 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1273 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1274 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1275 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -9 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1287 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1288 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -9 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1289 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -7 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1290 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1291 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1292 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -1 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1293 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1294 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1295 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -1 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1296 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1299 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1300 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1301 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1302 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1303 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1304 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1305 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 0 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1306 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1307 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 1 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1308 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -2 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1309 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 0 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1310 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -1 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1311 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 0 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1312 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -1 + i32.const 1 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1313 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -9 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1322 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1323 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -9 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1324 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -7 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1325 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1326 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1327 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -1 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1328 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1329 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1330 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -1 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1331 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1334 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1335 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1336 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1337 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1338 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1339 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1340 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 0 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1341 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1342 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 1 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1343 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -2 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1344 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 0 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1345 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -1 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1346 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 0 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1347 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -1 + i32.const 1 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1348 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const 9.25452742288464 + f64.const -0.31188681721687317 + i32.const 1 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1360 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 9.893305808328252 + f64.const 0.4593673348426819 + i32.const 1 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1361 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const 8.825301797432132 + f64.const -0.1701754331588745 + i32.const 1 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1362 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const 7.970265885519092 + f64.const -0.3176782727241516 + i32.const 1 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1363 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 10.441639651824575 + f64.const -0.2693633437156677 + i32.const 1 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1364 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const 6.483936052542593 + f64.const 0.35618898272514343 + i32.const 1 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1365 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 7.859063309581766 + f64.const 0.08044655621051788 + i32.const 1 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1366 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const 7.717156764899584 + f64.const 0.05178084969520569 + i32.const 1 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1367 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 2.104006123874314 + f64.const -0.0918039008975029 + i32.const 1 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1368 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const 0.5596880129062913 + f64.const 0.1383407711982727 + i32.const 1 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1369 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3 + f64.const 4 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1372 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const 4 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1373 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4 + f64.const 3 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1374 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4 + f64.const -3 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1375 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const -4 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1376 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862315708145274e284 + f64.const 0 + f64.const 1797693134862315708145274e284 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1377 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862315708145274e284 + f64.const -0 + f64.const 1797693134862315708145274e284 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1378 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + f64.const 0 + f64.const 5e-324 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1379 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + f64.const -0 + f64.const 5e-324 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1380 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1381 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1382 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1383 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1384 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1385 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1386 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1387 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1388 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1389 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1390 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const 9.254528045654297 + f32.const 0.2735958993434906 + i32.const 1 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1399 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 9.893305778503418 + f32.const 0.4530770778656006 + i32.const 1 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1400 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const 8.825302124023438 + f32.const 0.30755728483200073 + i32.const 1 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1401 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const 7.970265865325928 + f32.const 0.06785223633050919 + i32.const 1 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1402 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 10.44163990020752 + f32.const -0.26776307821273804 + i32.const 1 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1403 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const 6.483936309814453 + f32.const 0.48381292819976807 + i32.const 1 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1404 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 7.859063148498535 + f32.const 0.07413065433502197 + i32.const 1 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1405 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const 7.717156887054443 + f32.const 0.4940592646598816 + i32.const 1 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1406 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 2.104006052017212 + f32.const -0.287089467048645 + i32.const 1 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1407 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const 0.5596880316734314 + f32.const 0.4191940724849701 + i32.const 1 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1408 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3 + f32.const 4 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1411 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const 4 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1412 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4 + f32.const 3 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1413 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4 + f32.const -3 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1414 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const -4 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1415 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3402823466385288598117041e14 + f32.const 0 + f32.const 3402823466385288598117041e14 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1416 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3402823466385288598117041e14 + f32.const -0 + f32.const 3402823466385288598117041e14 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1417 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const 0 + f32.const 1.401298464324817e-45 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1418 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const -0 + f32.const 1.401298464324817e-45 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1419 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1420 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1421 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1422 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1423 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1424 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1425 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1426 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1427 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1428 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1429 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1441 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.4690809584224322 + f64.const -0.3412533402442932 + i32.const 1 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1442 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1443 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1444 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.2264658498795615 + f64.const 0.3638114035129547 + i32.const 1 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1445 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const -0.4125110252365137 + f64.const -0.29108747839927673 + i32.const 1 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1446 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1447 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const -0.5766810183195862 + f64.const -0.10983199626207352 + i32.const 1 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1448 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const -0.2559866591263865 + f64.const -0.057990044355392456 + i32.const 1 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1449 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1450 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -inf + f64.const 0 + i32.const 4 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1453 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -inf + f64.const 0 + i32.const 4 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1454 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1455 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1456 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1457 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1458 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1459 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1460 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + i32.const 4 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1469 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + i32.const 4 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1470 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1471 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1472 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1473 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1474 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1475 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1476 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + i32.const 4 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1479 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + i32.const 4 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1480 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1481 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1482 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1483 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1484 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1485 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1486 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1498 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 0.6380137537120029 + f64.const -0.2088824063539505 + i32.const 1 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1499 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1500 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1501 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 0.9669418327487274 + f64.const -0.06120431795716286 + i32.const 1 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1502 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const -0.17915126198447093 + f64.const 0.39090874791145325 + i32.const 1 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1503 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1504 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const -0.25044938407454437 + f64.const -0.3046841621398926 + i32.const 1 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1505 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const -0.11117359349943837 + f64.const -0.31503361463546753 + i32.const 1 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1506 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1507 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -inf + f64.const 0 + i32.const 4 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1510 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -inf + f64.const 0 + i32.const 4 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1511 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1512 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1513 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1514 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1515 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1516 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1517 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1526 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 0.6380137205123901 + f32.const -0.20476758480072021 + i32.const 1 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1527 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1528 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1529 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 0.9669418334960938 + f32.const -0.34273025393486023 + i32.const 1 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1530 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const -0.1791512817144394 + f32.const -0.27078554034233093 + i32.const 1 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1531 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1532 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const -0.25044935941696167 + f32.const 0.2126826047897339 + i32.const 1 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1533 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const -0.1111735999584198 + f32.const 0.46515095233917236 + i32.const 1 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1534 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1535 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + f32.const 0 + i32.const 4 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1538 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + f32.const 0 + i32.const 4 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1539 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1540 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1541 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1542 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1543 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1544 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1545 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1557 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.6762064170601734 + f64.const 0.46188199520111084 + i32.const 1 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1558 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1559 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1560 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.3289404168523826 + f64.const -0.411114901304245 + i32.const 1 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1561 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.5080132114992477 + f64.const -0.29306045174598694 + i32.const 1 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1562 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.5218931811663979 + f64.const -0.25825726985931396 + i32.const 1 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1563 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.4458132279488102 + f64.const -0.13274887204170227 + i32.const 1 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1564 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.5733227294648414 + f64.const 0.02716583013534546 + i32.const 1 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1565 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -1.1355782978128564 + f64.const 0.2713092863559723 + i32.const 1 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1566 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1569 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1570 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -7.888609052210118e-31 + f64.const 1.7763568394002505e-15 + i32.const 1 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1571 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0.6931471805599453 + f64.const -0.2088811695575714 + i32.const 1 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1572 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -inf + f64.const 0 + i32.const 4 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1573 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1574 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1575 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1576 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1585 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 1.676206350326538 + f32.const -0.23014859855175018 + i32.const 1 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1586 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1587 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1588 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.3289403915405273 + f32.const -0.29075589776039124 + i32.const 1 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1589 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.5080131888389587 + f32.const -0.1386766880750656 + i32.const 1 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1590 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.5218932032585144 + f32.const -0.08804433047771454 + i32.const 1 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1591 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.44581323862075806 + f32.const -0.15101368725299835 + i32.const 1 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1592 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.5733227133750916 + f32.const -0.10264533013105392 + i32.const 1 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1593 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -1.1355782747268677 + f32.const -0.19879481196403503 + i32.const 1 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1594 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1597 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1598 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -7.888609052210118e-31 + f32.const 3.308722450212111e-24 + i32.const 1 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1599 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0.6931471824645996 + f32.const 0.031954795122146606 + i32.const 1 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1600 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -inf + f32.const 0 + i32.const 4 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1601 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1602 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1603 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1604 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.1754942106924411e-38 + f32.const -1.1754942106924411e-38 + f32.const 4.930380657631324e-32 + i32.const 9 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1605 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1617 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.1194358133804485 + f64.const -0.10164877772331238 + i32.const 1 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1618 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1619 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1620 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 3.2121112403298744 + f64.const -0.15739446878433228 + i32.const 1 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1621 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const -0.5951276104207402 + f64.const 0.3321485221385956 + i32.const 1 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1622 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1623 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const -0.8319748453044644 + f64.const 0.057555437088012695 + i32.const 1 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1624 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const -0.36931068365537134 + f64.const -0.19838279485702515 + i32.const 1 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1625 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1626 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -inf + f64.const 0 + i32.const 4 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1629 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -inf + f64.const 0 + i32.const 4 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1630 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1631 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1632 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1633 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1634 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1635 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1636 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1645 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.1194357872009277 + f32.const 0.18271538615226746 + i32.const 1 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1646 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1647 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1648 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 3.212111234664917 + f32.const -0.3188050389289856 + i32.const 1 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1649 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const -0.5951276421546936 + f32.const 0.34231460094451904 + i32.const 1 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1650 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1651 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const -0.8319748044013977 + f32.const -0.33473604917526245 + i32.const 1 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1652 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const -0.3693107068538666 + f32.const 0.3278401792049408 + i32.const 1 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1653 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1654 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + f32.const 0 + i32.const 4 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1657 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + f32.const 0 + i32.const 4 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1658 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1659 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1660 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1661 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1662 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1663 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1664 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const 4.535662560676869 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1676 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 4.345239849338305 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1677 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -2.763607337379588 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1678 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const 4.567535276842744 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1679 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 9.267056966972586 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1680 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const 0.6620717923376739 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1681 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 7.858890253041697 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1682 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const 7.67640268511754 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1683 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 2.0119025790324803 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1684 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const 0.03223983060263804 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1685 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1688 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1689 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1690 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const 1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1691 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1692 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const 1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1693 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1694 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 1 + f64.const 1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1695 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1696 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1697 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1698 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1699 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1700 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const 1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1701 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1702 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1703 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -1 + f64.const -1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1704 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1705 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1706 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1707 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1708 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -inf + f64.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1709 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1710 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1711 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const -0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1712 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1713 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -inf + f64.const -0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1714 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1715 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1716 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1717 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1718 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 0 + f64.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1719 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1720 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const -0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1721 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1722 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0 + f64.const -0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1723 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1724 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1725 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1726 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1727 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 2 + f64.const 2 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1728 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0.5 + f64.const -0.5 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1729 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1730 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1731 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1732 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1733 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1734 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1735 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1736 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const inf + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1737 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -inf + f64.const 1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1738 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -inf + f64.const -1 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1739 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -inf + f64.const inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1740 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + f64.const -inf + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1741 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const 1.75 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1742 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const 0.5 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1743 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const 1.75 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1744 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const -0.5 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1745 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const 4.535662651062012 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1754 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 4.345239639282227 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1755 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -2.7636072635650635 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1756 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const 4.567535400390625 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1757 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 9.267057418823242 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1758 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const 0.6620717644691467 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1759 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 7.858890056610107 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1760 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const 7.676402568817139 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1761 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 2.0119025707244873 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1762 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const 0.03223983198404312 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1763 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1766 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const 1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1767 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1768 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const 1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1769 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1770 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const 1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1771 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1772 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 1 + f32.const 1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1773 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1774 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1775 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1776 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1777 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1778 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const 1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1779 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1780 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1781 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -1 + f32.const -1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1782 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1783 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1784 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1785 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1786 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + f32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1787 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1788 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1789 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const -0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1790 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1791 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + f32.const -0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1792 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1793 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1794 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1795 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1796 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 0 + f32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1797 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1798 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const -0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1799 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1800 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0 + f32.const -0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1801 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1802 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1803 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1804 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1805 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 2 + f32.const 2 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1806 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0.5 + f32.const -0.5 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1807 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1808 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1809 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1810 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1811 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1812 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1813 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1814 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const inf + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1815 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -inf + f32.const 1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1816 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -inf + f32.const -1 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1817 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -inf + f32.const inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1818 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + f32.const -inf + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1819 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const 1.75 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1820 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const 0.5 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1821 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const 1.75 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1822 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const -0.5 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1823 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const -8.06684839057968 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1835 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const -8.88799136300345 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1836 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -8.38143342755525 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1837 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -6.531673581913484 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1838 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 4.811392084359796 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1839 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const -6.450045556060236 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1840 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 0.05215452675006225 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1841 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.792054511984896 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1842 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.615702673197924 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1843 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -0.5587586823609152 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1844 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1847 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1848 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1849 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1850 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1851 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1852 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const 1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1853 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 1 + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1854 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1855 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1856 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1857 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1858 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1859 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1860 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1861 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1862 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -1 + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1863 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1864 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1865 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const -0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1866 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1867 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -inf + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1868 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1869 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const -0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1870 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const -0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1871 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1872 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -inf + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1873 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1874 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1875 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1876 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1877 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 0 + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1878 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1879 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1880 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const -0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1881 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0 + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1882 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1883 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const 2 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1884 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const -0.5 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1885 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1886 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 2 + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1887 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0.5 + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1888 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1889 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1890 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1891 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1892 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1893 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1894 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1895 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const inf + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1896 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -inf + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1897 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -inf + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1898 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -inf + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1899 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + f64.const -inf + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1900 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const 0.5 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1901 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const -1.75 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1902 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const -0.5 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1903 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const -1.75 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1904 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const -8.066848754882812 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1913 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const -8.887990951538086 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1914 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -8.381433486938477 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1915 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -6.531673431396484 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1916 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 4.811392307281494 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1917 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const -6.450045585632324 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1918 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 0.052154526114463806 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1919 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.7920545339584351 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1920 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.6157026886940002 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1921 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -0.5587586760520935 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1922 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1925 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1926 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1927 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1928 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1929 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1930 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const 1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1931 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 1 + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1932 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1933 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1934 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1935 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1936 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1937 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1938 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1939 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1940 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -1 + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1941 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1942 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1943 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const -0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1944 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1945 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1946 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1947 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const -0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1948 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const -0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1949 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1950 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1951 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1952 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1953 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1954 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1955 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 0 + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1956 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1957 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1958 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const -0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1959 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0 + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1960 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1961 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const 2 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1962 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const -0.5 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1963 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1964 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 2 + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1965 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0.5 + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1966 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1967 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1968 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1969 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1970 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1971 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1972 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1973 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const inf + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1974 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -inf + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1975 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -inf + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1976 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -inf + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1977 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + f32.const -inf + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1978 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const 0.5 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1979 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const -1.75 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1980 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const -0.5 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1981 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const -1.75 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1982 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const -3.531185829902812 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1996 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 4.345239849338305 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1997 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -0.09061141541648476 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1998 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -1.9641383050707404 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1999 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 4.45566488261279 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2000 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const -0.4913994250211714 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2001 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 0.035711240532359426 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2002 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.792054511984896 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2003 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.615702673197924 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2004 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -0.0106815621160685 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2005 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2008 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2009 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2010 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2011 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2012 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const -0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2013 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 1 + f64.const 0.5 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2014 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const 1 + f64.const -0.5 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2015 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2016 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const 1 + f64.const -0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2017 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2018 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 1 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2019 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2020 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2021 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2022 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2023 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2024 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2025 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2026 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const -1 + f64.const 0.5 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2027 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const -0.5 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2028 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2029 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const -0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2030 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2031 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -1 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2032 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2033 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2034 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2035 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2036 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -inf + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2037 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2038 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2039 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2040 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2041 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -inf + f64.const -0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2042 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2043 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2044 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2045 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2046 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2047 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2048 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2049 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2050 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2051 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2052 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2053 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2054 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2055 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 2 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2056 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0.5 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2057 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2058 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2059 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2060 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2061 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2062 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2063 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2064 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const inf + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2065 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -inf + f64.const 1 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2066 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -inf + f64.const -1 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2067 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -inf + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2068 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2069 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const 0.25 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2070 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const -0.25 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2071 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const 0.25 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2072 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const -0.25 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2073 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const -3.531186103820801 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2082 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 4.345239639282227 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2083 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -0.09061169624328613 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2084 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -1.9641380310058594 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2085 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 4.455665111541748 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2086 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const -0.49139970541000366 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2087 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 0.0357111394405365 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2088 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.7920545339584351 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2089 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.6157026886940002 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2090 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -0.010681532323360443 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2091 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2094 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2095 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2096 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2097 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2098 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const -0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2099 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const 1 + f32.const 0.5 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2100 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const 1 + f32.const -0.5 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2101 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2102 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const 1 + f32.const -0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2103 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2104 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 1 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2105 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2106 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2107 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2108 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2109 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2110 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2111 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2112 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const -1 + f32.const 0.5 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2113 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const -1 + f32.const -0.5 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2114 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2115 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const -0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2116 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2117 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -1 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2118 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2119 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2120 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2121 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2122 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2123 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2124 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2125 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2126 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2127 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + f32.const -0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2128 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2129 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2130 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2131 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2132 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2133 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2134 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2135 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2136 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2137 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2138 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2139 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2140 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2141 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 2 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2142 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0.5 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2143 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2144 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2145 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2146 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2147 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2148 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2149 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2150 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const inf + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2151 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -inf + f32.const 1 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2152 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -inf + f32.const -1 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2153 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -inf + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2154 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2155 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const 0.25 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2156 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const -0.25 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2157 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const 0.25 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2158 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const -0.25 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2159 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2171 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 2.1347118825587285e-06 + f64.const 0.3250160217285156 + i32.const 1 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2172 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2173 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2174 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 44909.29941512966 + f64.const -0.26659080386161804 + i32.const 1 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2175 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2176 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 1.1135177413458652 + f64.const -0.37168607115745544 + i32.const 1 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2177 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2178 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.37690773521380183 + f64.const 0.32473301887512207 + i32.const 1 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2179 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2180 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2183 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2184 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 3 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2185 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2186 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2187 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2188 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2189 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2190 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0.5 + f64.const inf + f64.const 0 + i32.const 4 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2191 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const inf + f64.const 0 + i32.const 4 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2192 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -2 + f64.const inf + f64.const 0 + i32.const 4 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2193 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -3 + f64.const inf + f64.const 0 + i32.const 4 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2194 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -4 + f64.const inf + f64.const 0 + i32.const 4 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2195 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2196 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2197 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2198 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 3 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2199 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2200 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2201 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2202 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2203 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2204 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0.5 + f64.const inf + f64.const 0 + i32.const 4 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2205 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -inf + f64.const 0 + i32.const 4 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2206 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -2 + f64.const inf + f64.const 0 + i32.const 4 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2207 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -3 + f64.const -inf + f64.const 0 + i32.const 4 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2208 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -4 + f64.const inf + f64.const 0 + i32.const 4 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2209 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2210 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2211 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2212 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2213 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2214 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2215 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2216 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2217 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2218 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2219 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2220 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2221 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2222 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2223 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2224 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2225 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 2 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2226 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2227 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -2 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2228 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -3 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2229 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0.5 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2230 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2231 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2232 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2233 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 3 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2234 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0.5 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2235 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -0.5 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2236 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -3 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2237 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 0.5 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2238 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1.5 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2239 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 2 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2240 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 3 + f64.const -0.125 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2241 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2242 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2243 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2244 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2245 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2246 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2247 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2248 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const -inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2249 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2250 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2251 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2252 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2253 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 3 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2254 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2255 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2256 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0.5 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2257 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2258 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2259 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2260 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2261 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2262 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2263 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 3 + f64.const -inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2264 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 2 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2265 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 1 + f64.const -inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2266 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 0.5 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2267 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2268 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2269 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2270 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2271 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2272 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const 1 + f64.const -2 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2273 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2274 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2283 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 2.134714122803416e-06 + f32.const 0.1436440795660019 + i32.const 1 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2284 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2285 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2286 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 44909.33203125 + f32.const -0.05356409028172493 + i32.const 1 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2287 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2288 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 1.1135177612304688 + f32.const 0.19122089445590973 + i32.const 1 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2289 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2290 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.3769077658653259 + f32.const 0.337149053812027 + i32.const 1 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2291 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2292 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2295 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2296 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 3 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2297 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2298 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2299 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2300 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2301 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2302 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0.5 + f32.const inf + f32.const 0 + i32.const 4 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2303 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const inf + f32.const 0 + i32.const 4 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2304 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -2 + f32.const inf + f32.const 0 + i32.const 4 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2305 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -3 + f32.const inf + f32.const 0 + i32.const 4 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2306 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -4 + f32.const inf + f32.const 0 + i32.const 4 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2307 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2308 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2309 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2310 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 3 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2311 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2312 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2313 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2314 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2315 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2316 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0.5 + f32.const inf + f32.const 0 + i32.const 4 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2317 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -inf + f32.const 0 + i32.const 4 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2318 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -2 + f32.const inf + f32.const 0 + i32.const 4 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2319 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -3 + f32.const -inf + f32.const 0 + i32.const 4 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2320 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -4 + f32.const inf + f32.const 0 + i32.const 4 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2321 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2322 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2323 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2324 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2325 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2326 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2327 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2328 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2329 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2330 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2331 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2332 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2333 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2334 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2335 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2336 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -inf + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2337 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 2 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2338 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2339 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -2 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2340 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -3 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2341 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0.5 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2342 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2343 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2344 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -inf + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2345 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 3 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2346 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0.5 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2347 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -0.5 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2348 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -3 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2349 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 0.5 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2350 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1.5 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2351 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 2 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2352 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 3 + f32.const -0.125 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2353 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2354 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2355 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2356 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2357 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2358 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2359 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2360 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const -inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2361 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2362 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2363 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2364 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2365 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 3 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2366 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2367 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2368 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0.5 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2369 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2370 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2371 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2372 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2373 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2374 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2375 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 3 + f32.const -inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2376 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 2 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2377 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 1 + f32.const -inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2378 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 0.5 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2379 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2380 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2381 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2382 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2383 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2384 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const 1 + f32.const -2 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2385 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2386 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/bindings/Math/random + i64.reinterpret/f64 + call $~lib/math/NativeMath.seedRandom + block $break|0 + loop $repeat|0 + get_local $0 + f64.convert_s/i32 + f64.const 1e6 + f64.lt + i32.eqz + br_if $break|0 + call $~lib/math/NativeMath.random + tee_local $2 + f64.const 0 + f64.ge + tee_local $1 + if + get_local $2 + f64.const 1 + f64.lt + set_local $1 + end + get_local $1 + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 8 + i32.const 2395 + i32.const 2 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + call $~lib/bindings/Math/random + i64.reinterpret/f64 + call $~lib/math/NativeMath.seedRandom + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + f64.convert_s/i32 + f64.const 1e6 + f64.lt + i32.eqz + br_if $break|1 + call $~lib/math/NativeMathf.random + tee_local $3 + f32.const 0 + f32.ge + tee_local $1 + if + get_local $3 + f32.const 1 + f32.lt + set_local $1 + end + get_local $1 + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 8 + i32.const 2403 + i32.const 2 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + f64.const -8.06684839057968 + f64.const -8 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2417 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2418 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -8 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2419 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -7 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2420 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2421 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2422 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2423 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2424 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2425 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2426 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2429 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2430 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2431 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2432 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2433 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2434 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2435 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2436 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2437 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 2 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2438 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const -1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2439 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2440 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2441 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2442 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2443 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 0 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2444 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2445 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -8 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2454 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2455 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -8 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2456 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -7 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2457 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2458 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2459 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2460 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2461 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2462 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -1 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2463 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2466 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2467 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2468 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2469 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2470 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2471 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2472 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2473 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2474 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 2 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2475 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const -1 + i32.const 1 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2476 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 1 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2477 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2478 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2479 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -1 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2480 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 0 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2481 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + i32.const 1 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2482 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2493 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2494 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2495 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + f64.const 1 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2496 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2497 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const -1 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2498 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2499 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -1 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2500 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2501 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2509 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2510 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2511 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + f32.const 1 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2512 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2513 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const -1 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2514 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2515 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -1 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2516 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2517 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const 1.0044767307740567 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2528 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 4.345239849338305 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2529 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -0.09061141541648476 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2530 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -1.9641383050707404 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2531 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const -0.35572720174700656 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2532 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const 0.17067236731650248 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2533 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const -0.016443286217702822 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2534 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.792054511984896 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2535 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.615702673197924 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2536 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -0.0106815621160685 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2537 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2540 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2541 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2542 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2543 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2544 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const -0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2545 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 1 + f64.const -0.5 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2546 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const 1 + f64.const 0.5 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2547 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2548 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const 1 + f64.const -0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2549 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2550 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 1 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2551 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2552 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2553 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2554 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2555 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2556 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2557 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2558 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const -1 + f64.const -0.5 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2559 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const 0.5 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2560 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2561 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const -0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2562 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2563 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -1 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2564 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2565 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2566 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2567 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2568 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -inf + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2569 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2570 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2571 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2572 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2573 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -inf + f64.const -0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2574 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2575 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2576 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2577 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2578 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2579 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2580 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2581 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2582 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2583 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2584 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2585 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2586 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2587 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 2 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2588 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0.5 + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2589 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2590 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2591 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2592 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2593 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2594 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2595 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2596 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const inf + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2597 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -inf + f64.const 1 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2598 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -inf + f64.const -1 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2599 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -inf + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2600 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + f64.const nan:0x8000000000000 + i32.const 2 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2601 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const -0.25 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2602 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const 0.25 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2603 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const -0.25 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2604 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const 0.25 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2605 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 8e-323 + f64.const inf + f64.const 8e-323 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2606 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const 1.004476547241211 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2615 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 4.345239639282227 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2616 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -0.09061169624328613 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2617 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -1.9641380310058594 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2618 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const -0.3557271957397461 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2619 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const 0.17067205905914307 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2620 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const -0.016443386673927307 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2621 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.7920545339584351 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2622 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.6157026886940002 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2623 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -0.010681532323360443 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2624 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2627 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2628 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2629 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2630 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2631 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const -0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2632 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const 1 + f32.const -0.5 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2633 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const 1 + f32.const 0.5 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2634 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2635 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const 1 + f32.const -0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2636 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2637 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 1 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2638 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2639 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2640 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2641 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2642 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2643 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2644 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2645 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const -1 + f32.const -0.5 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2646 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const -1 + f32.const 0.5 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2647 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2648 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const -0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2649 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2650 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -1 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2651 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2652 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2653 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2654 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2655 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2656 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2657 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2658 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2659 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2660 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + f32.const -0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2661 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2662 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2663 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2664 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2665 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2666 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2667 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2668 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2669 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2670 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2671 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2672 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2673 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2674 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 2 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2675 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0.5 + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2676 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2677 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2678 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2679 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2680 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2681 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2682 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2683 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const inf + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2684 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -inf + f32.const 1 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2685 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -inf + f32.const -1 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2686 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -inf + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2687 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + f32.const nan:0x400000 + i32.const 2 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2688 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const -0.25 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2689 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const 0.25 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2690 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const -0.25 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2691 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const 0.25 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2692 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 5.877471754111438e-39 + f32.const inf + f32.const 5.877471754111438e-39 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2693 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -1593.5206801156262 + f64.const -0.2138727605342865 + i32.const 1 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2758 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 38.54878088685412 + f64.const 0.21537430584430695 + i32.const 1 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2759 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2182.6307505145546 + f64.const 0.16213826835155487 + i32.const 1 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2760 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -343.2723926847529 + f64.const 0.20479513704776764 + i32.const 1 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2761 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 5291.7790755194055 + f64.const -0.48676517605781555 + i32.const 1 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2762 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7114062568229157 + f64.const -0.4584641456604004 + i32.const 1 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2763 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.41790065258739445 + f64.const 0.37220045924186707 + i32.const 1 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2764 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5917755935451237 + f64.const 0.46178996562957764 + i32.const 1 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2765 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.8538292008852542 + f64.const -0.07019051909446716 + i32.const 1 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2766 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.732097615653169 + f64.const 0.26858529448509216 + i32.const 1 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2767 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2770 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2771 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2772 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2773 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2774 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -1593.521240234375 + f32.const 0.1671663224697113 + i32.const 1 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2783 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 38.548770904541016 + f32.const -0.49340328574180603 + i32.const 1 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2784 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2182.630859375 + f32.const 0.0849970355629921 + i32.const 1 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2785 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -343.2723388671875 + f32.const 0.0704190656542778 + i32.const 1 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2786 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 5291.78125 + f32.const -0.44362515211105347 + i32.const 1 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2787 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7114062309265137 + f32.const 0.058103885501623154 + i32.const 1 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2788 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.4179006516933441 + f32.const 0.39349499344825745 + i32.const 1 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2789 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5917755961418152 + f32.const -0.4183797240257263 + i32.const 1 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2790 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.8538292050361633 + f32.const 0.45992106199264526 + i32.const 1 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2791 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.7320976257324219 + f32.const -0.48159059882164 + i32.const 1 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2792 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2795 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2796 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2797 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2798 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2799 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2811 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.0845238903256313 + f64.const -0.07180261611938477 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2812 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2813 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2814 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 3.0441841217266385 + f64.const -0.01546262577176094 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2815 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.8136251582267503 + f64.const -0.08618157356977463 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2816 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2817 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.7495063350104014 + f64.const -0.0981396734714508 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2818 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.879859248170583 + f64.const -0.37124353647232056 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2819 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2820 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2823 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2824 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2825 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2826 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2827 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2828 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2829 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2830 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-323 + f64.const 3.1434555694052576e-162 + f64.const 0.43537619709968567 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2831 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5e-323 + f64.const 3.849931087076416e-162 + f64.const -0.45194002985954285 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2832 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + f64.const 2.2227587494850775e-162 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2833 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -5e-324 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2834 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999999999999999 + f64.const 0.9999999999999999 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2835 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.9999999999999998 + f64.const 1.414213562373095 + f64.const -0.21107041835784912 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2836 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const 1 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2837 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.0000000000000004 + f64.const 1.4142135623730951 + f64.const -0.27173060178756714 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2838 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const 1 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2839 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999999999999999 + f64.const 0.9999999999999999 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2840 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1797693134862315708145274e284 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 2 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2841 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862315708145274e284 + f64.const 1340780792994259561100831e130 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2842 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 179769313486231490980915e285 + f64.const 134078079299425926338769e131 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2843 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862314111473026e284 + f64.const 1340780792994258965674548e130 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2844 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862313313136902e284 + f64.const 1340780792994258667961407e130 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2845 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862312514800778e284 + f64.const 1340780792994258370248265e130 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2846 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862311716464655e284 + f64.const 1340780792994258072535124e130 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2847 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862310918128531e284 + f64.const 1340780792994257774821982e130 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2848 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862310119792407e284 + f64.const 1340780792994257477108841e130 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2849 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862309321456283e284 + f64.const 1340780792994257179395699e130 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2850 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862308523120159e284 + f64.const 1340780792994256881682558e130 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2851 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862307724784036e284 + f64.const 1340780792994256583969417e130 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2852 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507203e-308 + f64.const 1.4916681462400417e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2853 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507205e-308 + f64.const 1.4916681462400423e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2854 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507207e-308 + f64.const 1.491668146240043e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2855 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507209e-308 + f64.const 1.4916681462400437e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2856 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507211e-308 + f64.const 1.4916681462400443e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2857 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072127e-308 + f64.const 1.491668146240045e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2858 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072147e-308 + f64.const 1.4916681462400457e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2859 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072167e-308 + f64.const 1.4916681462400463e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2860 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072187e-308 + f64.const 1.491668146240047e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2861 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072207e-308 + f64.const 1.4916681462400476e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2862 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072226e-308 + f64.const 1.4916681462400483e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2863 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072246e-308 + f64.const 1.491668146240049e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2864 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072266e-308 + f64.const 1.4916681462400496e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2865 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072286e-308 + f64.const 1.4916681462400503e-154 + f64.const -0.5 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2866 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 92.35130391890645 + f64.const 9.609958580499006 + f64.const 0.4998137056827545 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2867 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 93.3599596388916 + f64.const 9.662295774757238 + f64.const -0.49979978799819946 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2868 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 95.42049628886124 + f64.const 9.76834153215689 + f64.const -0.49997270107269287 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2869 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 95.87916941885449 + f64.const 9.791790919890728 + f64.const 0.4998766779899597 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2870 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 96.84804174884022 + f64.const 9.841140266698785 + f64.const 0.499801903963089 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2871 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 97.43639050883155 + f64.const 9.87098731175517 + f64.const 0.4997696280479431 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2872 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 97.50957979883047 + f64.const 9.874693909120955 + f64.const 0.49999818205833435 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2873 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 97.80496893882612 + f64.const 9.88963947466368 + f64.const -0.4999580681324005 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2874 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 98.2751822888192 + f64.const 9.913383997849534 + f64.const 0.49979931116104126 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2875 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 99.47293564880155 + f64.const 9.973611966023219 + f64.const -0.4999540448188782 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2876 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 100.57047130878539 + f64.const 10.028483001370914 + f64.const -0.49996453523635864 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2877 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 100.60954608878481 + f64.const 10.030431002144665 + f64.const 0.49975672364234924 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2878 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 100.67909109878379 + f64.const 10.033897104255344 + f64.const -0.4997771382331848 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2879 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 101.12268095877725 + f64.const 10.055977374615422 + f64.const 0.49988678097724915 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2880 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 101.3027691287746 + f64.const 10.064927676281366 + f64.const 0.4999105632305145 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2881 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.45932313565507e-307 + f64.const 4.9591563149945874e-154 + f64.const -0.4998999834060669 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2882 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5.610957305180409e-307 + f64.const 7.490632353266584e-154 + f64.const -0.4999343752861023 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2883 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5.8073887977408524e-307 + f64.const 7.62062254526548e-154 + f64.const -0.49989569187164307 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2884 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.026137080471427e-307 + f64.const 8.382205605013174e-154 + f64.const 0.49980640411376953 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2885 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 8.438697769194972e-307 + f64.const 9.186238495268328e-154 + f64.const -0.4999065697193146 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2886 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1607792515836795e-306 + f64.const 1.0773946591586944e-153 + f64.const -0.49997684359550476 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2887 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.2827413827423193e-306 + f64.const 1.1325817333606962e-153 + f64.const -0.4999513030052185 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2888 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.7116604596087457e-306 + f64.const 1.3083044216117078e-153 + f64.const -0.49986395239830017 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2889 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.038173251686994e-306 + f64.const 1.4276460526639628e-153 + f64.const 0.4998403787612915 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2890 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.171572060856931e-306 + f64.const 1.4736254818836879e-153 + f64.const 0.4999290406703949 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2891 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.4681399631804094e-306 + f64.const 1.5710314965589996e-153 + f64.const 0.49989044666290283 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2892 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.5175533964200588e-306 + f64.const 1.5866799918131124e-153 + f64.const -0.4997701048851013 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2893 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.6461505468829625e-306 + f64.const 1.6266992797941982e-153 + f64.const 0.4998672902584076 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2894 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3.8167076367720413e-306 + f64.const 1.9536395872248397e-153 + f64.const 0.49983471632003784 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2895 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.5743220778562766e-306 + f64.const 2.1387664851161936e-153 + f64.const 0.49985939264297485 + i32.const 1 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2896 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2905 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.084523916244507 + f32.const 0.3200402557849884 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2906 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2907 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2908 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 3.0441842079162598 + f32.const 0.05022354796528816 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2909 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.813625156879425 + f32.const 0.2240506112575531 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2910 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2911 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.7495063543319702 + f32.const 0.05895441770553589 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2912 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.879859209060669 + f32.const -0.4874873757362366 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2913 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2914 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2917 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2918 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2919 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2920 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2921 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2922 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2923 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2924 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2.802596928649634e-45 + f32.const 5.293955920339377e-23 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2925 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.203895392974451e-45 + f32.const 6.483745598763743e-23 + f32.const 0.37388554215431213 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2926 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const 3.743392066509216e-23 + f32.const -0.20303145051002502 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2927 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.401298464324817e-45 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2928 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3402823466385288598117041e14 + f32.const 18446742974197923840 + f32.const -0.5 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2929 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3402823466385288598117041e14 + f32.const nan:0x400000 + f32.const 0 + i32.const 2 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2930 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999998807907104 + f32.const 0.9999999403953552 + f32.const 2.980232594040899e-08 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2931 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999999403953552 + f32.const 0.9999999403953552 + f32.const -0.5 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2932 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.999999761581421 + f32.const 1.4142134189605713 + f32.const -0.4959246516227722 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2933 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.9999998807907104 + f32.const 1.4142135381698608 + f32.const 0.15052194893360138 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2934 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000001192092896 + f32.const 1 + f32.const -0.5 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2935 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.000000238418579 + f32.const 1.0000001192092896 + f32.const 5.960463766996327e-08 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2936 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2.000000238418579 + f32.const 1.4142136573791504 + f32.const 0.08986179530620575 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2937 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2.000000476837158 + f32.const 1.41421377658844 + f32.const 0.3827550709247589 + i32.const 1 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2938 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -0.999999803096032 + f64.const 0.012793331407010555 + i32.const 1 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3003 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 0.9996636978961307 + f64.const 0.1573508232831955 + i32.const 1 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3004 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -0.9999998950434862 + f64.const 0.27985066175460815 + i32.const 1 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3005 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -0.9999957568392429 + f64.const -0.44285574555397034 + i32.const 1 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3006 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 0.9999999821447234 + f64.const 0.4462755024433136 + i32.const 1 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3007 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.5796835018635275 + f64.const 0.4892043173313141 + i32.const 1 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3008 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.3855853099901652 + f64.const 0.35993871092796326 + i32.const 1 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3009 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5092819248700439 + f64.const -0.39436522126197815 + i32.const 1 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3010 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.6493374550318555 + f64.const -0.4899396002292633 + i32.const 1 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3011 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.590715084799841 + f64.const -0.0145387789234519 + i32.const 1 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3012 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3015 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3016 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3017 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3018 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3019 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -0.9999998211860657 + f32.const -0.3034979999065399 + i32.const 1 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3028 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 0.9996637105941772 + f32.const 0.2154078334569931 + i32.const 1 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3029 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -0.9999998807907104 + f32.const 0.23912210762500763 + i32.const 1 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3030 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -0.999995768070221 + f32.const -0.18844597041606903 + i32.const 1 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3031 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 1 + f32.const 0.1497807800769806 + i32.const 1 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3032 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.5796834826469421 + f32.const -0.05590476095676422 + i32.const 1 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3033 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.38558530807495117 + f32.const 0.349787175655365 + i32.const 1 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3034 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5092819333076477 + f32.const -0.1528785079717636 + i32.const 1 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3035 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.6493374705314636 + f32.const 0.4317026138305664 + i32.const 1 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3036 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.5907150506973267 + f32.const 0.4079873859882355 + i32.const 1 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3037 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3040 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3041 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3042 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3043 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3044 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -8 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3056 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3057 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -8 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3058 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -6 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3059 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3060 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3061 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3062 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3063 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3064 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3065 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3068 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3069 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3070 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3071 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3072 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3073 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3074 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3075 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3076 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 1 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3077 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3078 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3079 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3080 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3081 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + i32.const 1 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3082 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -8 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3091 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3092 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -8 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3093 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -6 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3094 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3095 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3096 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3097 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3098 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3099 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3100 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3103 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3104 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3105 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3106 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3107 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3108 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3109 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3110 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3111 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 1 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3112 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3113 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3114 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3115 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3116 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + i32.const 1 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3117 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + i32.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3121 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + i32.const 1 + call $~lib/math/ipow64 + i64.const 0 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3122 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + i32.const 2 + call $~lib/math/ipow64 + i64.const 0 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3123 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + i32.const 3 + call $~lib/math/ipow64 + i64.const 0 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3124 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1 + i32.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3126 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1 + i32.const 1 + call $~lib/math/ipow64 + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3127 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1 + i32.const 2 + call $~lib/math/ipow64 + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3128 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1 + i32.const 3 + call $~lib/math/ipow64 + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3129 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 2 + i32.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3131 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 2 + i32.const 1 + call $~lib/math/ipow64 + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3132 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 2 + i32.const 2 + call $~lib/math/ipow64 + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3133 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 2 + i32.const 3 + call $~lib/math/ipow64 + i64.const 8 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3134 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1 + i32.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3136 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1 + i32.const 1 + call $~lib/math/ipow64 + i64.const -1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3137 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1 + i32.const 2 + call $~lib/math/ipow64 + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3138 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1 + i32.const 3 + call $~lib/math/ipow64 + i64.const -1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3139 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -2 + i32.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3141 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -2 + i32.const 1 + call $~lib/math/ipow64 + i64.const -2 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3142 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -2 + i32.const 2 + call $~lib/math/ipow64 + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3143 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -2 + i32.const 3 + call $~lib/math/ipow64 + i64.const -8 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3144 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 40 + call $~lib/math/ipow64 + i64.const -6289078614652622815 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3146 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 41 + call $~lib/math/ipow64 + i64.const -420491770248316829 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3147 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 42 + call $~lib/math/ipow64 + i64.const -1261475310744950487 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3148 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 43 + call $~lib/math/ipow64 + i64.const -3784425932234851461 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3149 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 63 + call $~lib/math/ipow64 + i64.const -3237885987332494933 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3150 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 64 + call $~lib/math/ipow64 + i64.const 8733086111712066817 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3151 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 128 + call $~lib/math/ipow64 + i64.const -9204772141784466943 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3152 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 57055 + i32.const 3 + call $~lib/math/ipow64 + set_local $4 + i64.const 339590 + i32.const 3 + call $~lib/math/ipow64 + set_local $5 + get_local $4 + get_local $5 + i64.add + i64.const 39347712995520375 + i64.ne + if + i32.const 0 + i32.const 8 + i32.const 3154 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 157 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 157 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index a82f4153..a98dfea0 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -23,11 +23,6 @@ (type $f (func (result f32))) (type $IiI (func (param i64 i32) (result i64))) (type $v (func)) - (memory $0 1) - (data (i32.const 8) "\0b\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s\00") - (data (i32.const 40) "\0c\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "Math" "E" (global $~lib/bindings/Math/E f64)) (import "Math" "LN2" (global $~lib/bindings/Math/LN2 f64)) (import "Math" "LN10" (global $~lib/bindings/Math/LN10 f64)) @@ -65,6 +60,11 @@ (import "Math" "sqrt" (func $~lib/bindings/Math/sqrt (param f64) (result f64))) (import "Math" "tanh" (func $~lib/bindings/Math/tanh (param f64) (result f64))) (import "Math" "trunc" (func $~lib/bindings/Math/trunc (param f64) (result f64))) + (memory $0 1) + (data (i32.const 8) "\0b\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s\00") + (data (i32.const 40) "\0c\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $std/math/js i32 (i32.const 1)) (global $std/math/INEXACT i32 (i32.const 1)) (global $std/math/INVALID i32 (i32.const 2)) @@ -98,775 +98,553 @@ (export "table" (table $0)) (start $start) (func $~lib/builtins/isNaN (; 30 ;) (type $Fi) (param $0 f64) (result i32) - (f64.ne - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + f64.ne ) (func $std/math/signbit (; 31 ;) (type $Fi) (param $0 f64) (result i32) - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 63) - ) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 63 + i64.shr_u + i32.wrap/i64 ) (func $~lib/builtins/isFinite (; 32 ;) (type $Fi) (param $0 f64) (result i32) - (f64.eq - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.eq ) (func $std/math/eulp (; 33 ;) (type $Fi) (param $0 f64) (result i32) (local $1 i64) (local $2 i32) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.and - (i64.shr_u - (get_local $1) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.sub - (i32.sub - (get_local $2) - (i32.const 1023) - ) - (i32.const 52) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + i32.wrap/i64 + set_local $2 + get_local $2 + i32.eqz + if + get_local $2 + i32.const 1 + i32.add + set_local $2 + end + get_local $2 + i32.const 1023 + i32.sub + i32.const 52 + i32.sub ) (func $~lib/math/NativeMath.scalbn (; 34 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (local $3 i32) (local $4 i32) - (set_local $2 - (get_local $0) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (tee_local $4 - (i32.const 1023) - ) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.mul - (f64.const 2.2250738585072014e-308) - (f64.const 9007199254740992) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.sub - (i32.const 1022) - (i32.const 53) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.mul - (f64.const 2.2250738585072014e-308) - (f64.const 9007199254740992) - ) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (i32.add - (get_local $1) - (i32.const 1022) - ) - (i32.const 53) - ) - ) - (tee_local $4 - (i32.const -1022) - ) - (i32.gt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $2) - (f64.reinterpret/i64 - (i64.shl - (i64.add - (i64.const 1023) - (i64.extend_s/i32 - (get_local $1) - ) - ) - (i64.const 52) - ) - ) - ) + get_local $0 + set_local $2 + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $2 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $2 + get_local $1 + i32.const 1023 + i32.sub + set_local $1 + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $2 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $2 + get_local $1 + i32.const 1023 + i32.sub + tee_local $3 + i32.const 1023 + tee_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + set_local $1 + end + else + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $2 + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + set_local $2 + get_local $1 + i32.const 1022 + i32.const 53 + i32.sub + i32.add + set_local $1 + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $2 + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + set_local $2 + get_local $1 + i32.const 1022 + i32.add + i32.const 53 + i32.sub + tee_local $3 + i32.const -1022 + tee_local $4 + get_local $3 + get_local $4 + i32.gt_s + select + set_local $1 + end + end + end + get_local $2 + i64.const 1023 + get_local $1 + i64.extend_s/i32 + i64.add + i64.const 52 + i64.shl + f64.reinterpret/i64 + f64.mul ) (func $std/math/ulperr (; 35 ;) (type $FFFF) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) (local $3 i32) - (if - (if (result i32) - (tee_local $3 - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - (call $~lib/builtins/isNaN - (get_local $1) - ) - (get_local $3) - ) - (return - (f64.const 0) - ) - ) - (if - (f64.eq - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (call $std/math/signbit - (get_local $0) - ) - (call $std/math/signbit - (get_local $1) - ) - ) - (return - (get_local $2) - ) - ) - (return - (f64.const inf) - ) - ) - ) - (if - (i32.eqz - (call $~lib/builtins/isFinite - (get_local $0) - ) - ) - (block - (set_local $0 - (f64.copysign - (f64.const 8988465674311579538646525e283) - (get_local $0) - ) - ) - (set_local $1 - (f64.mul - (get_local $1) - (f64.const 0.5) - ) - ) - ) - ) - (f64.add - (call $~lib/math/NativeMath.scalbn - (f64.sub - (get_local $0) - (get_local $1) - ) - (i32.sub - (i32.const 0) - (call $std/math/eulp - (get_local $1) - ) - ) - ) - (get_local $2) - ) + get_local $0 + call $~lib/builtins/isNaN + tee_local $3 + if (result i32) + get_local $1 + call $~lib/builtins/isNaN + else + get_local $3 + end + if + f64.const 0 + return + end + get_local $0 + get_local $1 + f64.eq + if + get_local $0 + call $std/math/signbit + get_local $1 + call $std/math/signbit + i32.eq + if + get_local $2 + return + end + f64.const inf + return + end + get_local $0 + call $~lib/builtins/isFinite + i32.eqz + if + f64.const 8988465674311579538646525e283 + get_local $0 + f64.copysign + set_local $0 + get_local $1 + f64.const 0.5 + f64.mul + set_local $1 + end + get_local $0 + get_local $1 + f64.sub + i32.const 0 + get_local $1 + call $std/math/eulp + i32.sub + call $~lib/math/NativeMath.scalbn + get_local $2 + f64.add ) (func $std/math/check (; 36 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) - (if - (f64.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (call $~lib/builtins/isNaN - (get_local $1) - ) - (return - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (set_local $4 - (call $std/math/ulperr - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (f64.ge - (f64.abs - (get_local $4) - ) - (f64.const 1.5) - ) - (return - (i32.const 0) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + f64.eq + if + i32.const 1 + return + end + get_local $1 + call $~lib/builtins/isNaN + if + get_local $0 + call $~lib/builtins/isNaN + return + end + get_local $0 + get_local $1 + get_local $2 + call $std/math/ulperr + set_local $4 + get_local $4 + f64.abs + f64.const 1.5 + f64.ge + if + i32.const 0 + return + end + i32.const 1 ) (func $~lib/builtins/isNaN (; 37 ;) (type $fi) (param $0 f32) (result i32) - (f32.ne - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + f32.ne ) (func $std/math/signbitf (; 38 ;) (type $fi) (param $0 f32) (result i32) - (i32.shr_u - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 31) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 31 + i32.shr_u ) (func $~lib/builtins/isFinite (; 39 ;) (type $fi) (param $0 f32) (result i32) - (f32.eq - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.const 0) - ) + get_local $0 + get_local $0 + f32.sub + f32.const 0 + f32.eq ) (func $std/math/eulpf (; 40 ;) (type $fi) (param $0 f32) (result i32) (local $1 i32) (local $2 i32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.sub - (i32.sub - (get_local $2) - (i32.const 127) - ) - (i32.const 23) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $2 + get_local $2 + i32.eqz + if + get_local $2 + i32.const 1 + i32.add + set_local $2 + end + get_local $2 + i32.const 127 + i32.sub + i32.const 23 + i32.sub ) (func $~lib/math/NativeMathf.scalbn (; 41 ;) (type $fif) (param $0 f32) (param $1 i32) (result f32) (local $2 f32) (local $3 i32) (local $4 i32) - (set_local $2 - (get_local $0) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 127) - ) - (block - (set_local $2 - (f32.mul - (get_local $2) - (f32.const 1701411834604692317316873e14) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 127) - ) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 127) - ) - (block - (set_local $2 - (f32.mul - (get_local $2) - (f32.const 1701411834604692317316873e14) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (get_local $1) - (i32.const 127) - ) - ) - (tee_local $4 - (i32.const 127) - ) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -126) - ) - (block - (set_local $2 - (f32.mul - (get_local $2) - (f32.mul - (f32.const 1.1754943508222875e-38) - (f32.const 16777216) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.sub - (i32.const 126) - (i32.const 24) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -126) - ) - (block - (set_local $2 - (f32.mul - (get_local $2) - (f32.mul - (f32.const 1.1754943508222875e-38) - (f32.const 16777216) - ) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (i32.add - (get_local $1) - (i32.const 126) - ) - (i32.const 24) - ) - ) - (tee_local $4 - (i32.const -126) - ) - (i32.gt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - ) - (f32.mul - (get_local $2) - (f32.reinterpret/i32 - (i32.shl - (i32.add - (i32.const 127) - (get_local $1) - ) - (i32.const 23) - ) - ) - ) + get_local $0 + set_local $2 + get_local $1 + i32.const 127 + i32.gt_s + if + get_local $2 + f32.const 1701411834604692317316873e14 + f32.mul + set_local $2 + get_local $1 + i32.const 127 + i32.sub + set_local $1 + get_local $1 + i32.const 127 + i32.gt_s + if + get_local $2 + f32.const 1701411834604692317316873e14 + f32.mul + set_local $2 + get_local $1 + i32.const 127 + i32.sub + tee_local $3 + i32.const 127 + tee_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + set_local $1 + end + else + get_local $1 + i32.const -126 + i32.lt_s + if + get_local $2 + f32.const 1.1754943508222875e-38 + f32.const 16777216 + f32.mul + f32.mul + set_local $2 + get_local $1 + i32.const 126 + i32.const 24 + i32.sub + i32.add + set_local $1 + get_local $1 + i32.const -126 + i32.lt_s + if + get_local $2 + f32.const 1.1754943508222875e-38 + f32.const 16777216 + f32.mul + f32.mul + set_local $2 + get_local $1 + i32.const 126 + i32.add + i32.const 24 + i32.sub + tee_local $3 + i32.const -126 + tee_local $4 + get_local $3 + get_local $4 + i32.gt_s + select + set_local $1 + end + end + end + get_local $2 + i32.const 127 + get_local $1 + i32.add + i32.const 23 + i32.shl + f32.reinterpret/i32 + f32.mul ) (func $std/math/ulperrf (; 42 ;) (type $ffff) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) (local $3 i32) - (if - (if (result i32) - (tee_local $3 - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - (call $~lib/builtins/isNaN - (get_local $1) - ) - (get_local $3) - ) - (return - (f32.const 0) - ) - ) - (if - (f32.eq - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (call $std/math/signbitf - (get_local $0) - ) - (call $std/math/signbitf - (get_local $1) - ) - ) - (return - (get_local $2) - ) - ) - (return - (f32.const inf) - ) - ) - ) - (if - (i32.eqz - (call $~lib/builtins/isFinite - (get_local $0) - ) - ) - (block - (set_local $0 - (f32.copysign - (f32.const 1701411834604692317316873e14) - (get_local $0) - ) - ) - (set_local $1 - (f32.mul - (get_local $1) - (f32.const 0.5) - ) - ) - ) - ) - (f32.add - (call $~lib/math/NativeMathf.scalbn - (f32.sub - (get_local $0) - (get_local $1) - ) - (i32.sub - (i32.const 0) - (call $std/math/eulpf - (get_local $1) - ) - ) - ) - (get_local $2) - ) + get_local $0 + call $~lib/builtins/isNaN + tee_local $3 + if (result i32) + get_local $1 + call $~lib/builtins/isNaN + else + get_local $3 + end + if + f32.const 0 + return + end + get_local $0 + get_local $1 + f32.eq + if + get_local $0 + call $std/math/signbitf + get_local $1 + call $std/math/signbitf + i32.eq + if + get_local $2 + return + end + f32.const inf + return + end + get_local $0 + call $~lib/builtins/isFinite + i32.eqz + if + f32.const 1701411834604692317316873e14 + get_local $0 + f32.copysign + set_local $0 + get_local $1 + f32.const 0.5 + f32.mul + set_local $1 + end + get_local $0 + get_local $1 + f32.sub + i32.const 0 + get_local $1 + call $std/math/eulpf + i32.sub + call $~lib/math/NativeMathf.scalbn + get_local $2 + f32.add ) (func $std/math/check (; 43 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) - (if - (f32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (call $~lib/builtins/isNaN - (get_local $1) - ) - (return - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (set_local $4 - (call $std/math/ulperrf - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (f32.ge - (f32.abs - (get_local $4) - ) - (f32.const 1.5) - ) - (return - (i32.const 0) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + f32.eq + if + i32.const 1 + return + end + get_local $1 + call $~lib/builtins/isNaN + if + get_local $0 + call $~lib/builtins/isNaN + return + end + get_local $0 + get_local $1 + get_local $2 + call $std/math/ulperrf + set_local $4 + get_local $4 + f32.abs + f32.const 1.5 + f32.ge + if + i32.const 0 + return + end + i32.const 1 ) (func $std/math/test_scalbn (; 44 ;) (type $FiFFii) (param $0 f64) (param $1 i32) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMath.scalbn - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.scalbn + get_local $2 + get_local $3 + get_local $4 + call $std/math/check ) (func $std/math/test_scalbnf (; 45 ;) (type $fiffii) (param $0 f32) (param $1 i32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.scalbn - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.scalbn + get_local $2 + get_local $3 + get_local $4 + call $std/math/check ) (func $std/math/test_abs (; 46 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (block $~lib/math/NativeMath.abs|inlined.0 (result f64) - (f64.abs - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/abs - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + block $~lib/math/NativeMath.abs|inlined.0 (result f64) + get_local $0 + f64.abs + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/abs + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $std/math/test_absf (; 47 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (block $~lib/math/NativeMathf.abs|inlined.0 (result f32) - (f32.abs - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $~lib/math/NativeMathf.abs|inlined.0 (result f32) + get_local $0 + f32.abs + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/R (; 48 ;) (type $FF) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) - (set_local $1 - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.16666666666666666) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.3255658186224009) - (f64.mul - (get_local $0) - (f64.add - (f64.const 0.20121253213486293) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.04005553450067941) - (f64.mul - (get_local $0) - (f64.add - (f64.const 7.915349942898145e-04) - (f64.mul - (get_local $0) - (f64.const 3.479331075960212e-05) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f64.add - (f64.const 1) - (f64.mul - (get_local $0) - (f64.add - (f64.const -2.403394911734414) - (f64.mul - (get_local $0) - (f64.add - (f64.const 2.0209457602335057) - (f64.mul - (get_local $0) - (f64.add - (f64.const -0.6882839716054533) - (f64.mul - (get_local $0) - (f64.const 0.07703815055590194) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.div - (get_local $1) - (get_local $2) - ) + get_local $0 + f64.const 0.16666666666666666 + get_local $0 + f64.const -0.3255658186224009 + get_local $0 + f64.const 0.20121253213486293 + get_local $0 + f64.const -0.04005553450067941 + get_local $0 + f64.const 7.915349942898145e-04 + get_local $0 + f64.const 3.479331075960212e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $1 + f64.const 1 + get_local $0 + f64.const -2.403394911734414 + get_local $0 + f64.const 2.0209457602335057 + get_local $0 + f64.const -0.6882839716054533 + get_local $0 + f64.const 0.07703815055590194 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + set_local $2 + get_local $1 + get_local $2 + f64.div ) (func $~lib/math/NativeMath.acos (; 49 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) @@ -877,291 +655,200 @@ (local $6 f64) (local $7 f64) (local $8 f64) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (set_local $2 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1072693248) - ) - (block - (set_local $3 - (i32.wrap/i64 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $2) - (i32.const 1072693248) - ) - (get_local $3) - ) - (i32.const 0) - ) - (block - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.add - (f64.mul - (f64.const 2) - (f64.const 1.5707963267948966) - ) - (f64.promote/f32 - (f32.const 7.52316384526264e-37) - ) - ) - ) - ) - (return - (f64.const 0) - ) - ) - ) - (return - (f64.div - (f64.const 0) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1071644672) - ) - (block - (if - (i32.le_u - (get_local $2) - (i32.const 1012924416) - ) - (return - (f64.add - (f64.const 1.5707963267948966) - (f64.promote/f32 - (f32.const 7.52316384526264e-37) - ) - ) - ) - ) - (return - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (get_local $0) - (f64.sub - (f64.const 6.123233995736766e-17) - (f64.mul - (get_local $0) - (call $~lib/math/R - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (block - (set_local $6 - (f64.add - (f64.const 0.5) - (f64.mul - (get_local $0) - (f64.const 0.5) - ) - ) - ) - (set_local $4 - (f64.sqrt - (get_local $6) - ) - ) - (set_local $5 - (f64.sub - (f64.mul - (call $~lib/math/R - (get_local $6) - ) - (get_local $4) - ) - (f64.const 6.123233995736766e-17) - ) - ) - (return - (f64.mul - (f64.const 2) - (f64.sub - (f64.const 1.5707963267948966) - (f64.add - (get_local $4) - (get_local $5) - ) - ) - ) - ) - ) - ) - (set_local $6 - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $0) - (f64.const 0.5) - ) - ) - ) - (set_local $4 - (f64.sqrt - (get_local $6) - ) - ) - (set_local $7 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $4) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $8 - (f64.div - (f64.sub - (get_local $6) - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (f64.add - (get_local $4) - (get_local $7) - ) - ) - ) - (set_local $5 - (f64.add - (f64.mul - (call $~lib/math/R - (get_local $6) - ) - (get_local $4) - ) - (get_local $8) - ) - ) - (f64.mul - (f64.const 2) - (f64.add - (get_local $7) - (get_local $5) - ) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 1072693248 + i32.ge_u + if + get_local $0 + i64.reinterpret/f64 + i32.wrap/i64 + set_local $3 + get_local $2 + i32.const 1072693248 + i32.sub + get_local $3 + i32.or + i32.const 0 + i32.eq + if + get_local $1 + i32.const 31 + i32.shr_u + if + f64.const 2 + f64.const 1.5707963267948966 + f64.mul + f32.const 7.52316384526264e-37 + f64.promote/f32 + f64.add + return + end + f64.const 0 + return + end + f64.const 0 + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $2 + i32.const 1071644672 + i32.lt_u + if + get_local $2 + i32.const 1012924416 + i32.le_u + if + f64.const 1.5707963267948966 + f32.const 7.52316384526264e-37 + f64.promote/f32 + f64.add + return + end + f64.const 1.5707963267948966 + get_local $0 + f64.const 6.123233995736766e-17 + get_local $0 + get_local $0 + get_local $0 + f64.mul + call $~lib/math/R + f64.mul + f64.sub + f64.sub + f64.sub + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + f64.const 0.5 + get_local $0 + f64.const 0.5 + f64.mul + f64.add + set_local $6 + get_local $6 + f64.sqrt + set_local $4 + get_local $6 + call $~lib/math/R + get_local $4 + f64.mul + f64.const 6.123233995736766e-17 + f64.sub + set_local $5 + f64.const 2 + f64.const 1.5707963267948966 + get_local $4 + get_local $5 + f64.add + f64.sub + f64.mul + return + end + f64.const 0.5 + get_local $0 + f64.const 0.5 + f64.mul + f64.sub + set_local $6 + get_local $6 + f64.sqrt + set_local $4 + get_local $4 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $7 + get_local $6 + get_local $7 + get_local $7 + f64.mul + f64.sub + get_local $4 + get_local $7 + f64.add + f64.div + set_local $8 + get_local $6 + call $~lib/math/R + get_local $4 + f64.mul + get_local $8 + f64.add + set_local $5 + f64.const 2 + get_local $7 + get_local $5 + f64.add + f64.mul ) (func $std/math/test_acos (; 50 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.acos - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/acos - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.acos + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/acos + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/Rf (; 51 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) (local $2 f32) - (set_local $1 - (f32.mul - (get_local $0) - (f32.add - (f32.const 0.16666586697101593) - (f32.mul - (get_local $0) - (f32.add - (f32.const -0.04274342209100723) - (f32.mul - (get_local $0) - (f32.const -0.008656363002955914) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f32.add - (f32.const 1) - (f32.mul - (get_local $0) - (f32.const -0.7066296339035034) - ) - ) - ) - (f32.div - (get_local $1) - (get_local $2) - ) + get_local $0 + f32.const 0.16666586697101593 + get_local $0 + f32.const -0.04274342209100723 + get_local $0 + f32.const -0.008656363002955914 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + set_local $1 + f32.const 1 + get_local $0 + f32.const -0.7066296339035034 + f32.mul + f32.add + set_local $2 + get_local $1 + get_local $2 + f32.div ) (func $~lib/math/NativeMathf.acos (; 52 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) @@ -1171,215 +858,145 @@ (local $5 f32) (local $6 f32) (local $7 f32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1065353216) - ) - (block - (if - (i32.eq - (get_local $2) - (i32.const 1065353216) - ) - (block - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f32.add - (f32.mul - (f32.const 2) - (f32.const 1.570796251296997) - ) - (f32.const 7.52316384526264e-37) - ) - ) - ) - (return - (f32.const 0) - ) - ) - ) - (return - (f32.div - (f32.const 0) - (f32.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1056964608) - ) - (block - (if - (i32.le_u - (get_local $2) - (i32.const 847249408) - ) - (return - (f32.add - (f32.const 1.570796251296997) - (f32.const 7.52316384526264e-37) - ) - ) - ) - (return - (f32.sub - (f32.const 1.570796251296997) - (f32.sub - (get_local $0) - (f32.sub - (f32.const 7.549789415861596e-08) - (f32.mul - (get_local $0) - (call $~lib/math/Rf - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (block - (set_local $3 - (f32.add - (f32.const 0.5) - (f32.mul - (get_local $0) - (f32.const 0.5) - ) - ) - ) - (set_local $5 - (f32.sqrt - (get_local $3) - ) - ) - (set_local $4 - (f32.sub - (f32.mul - (call $~lib/math/Rf - (get_local $3) - ) - (get_local $5) - ) - (f32.const 7.549789415861596e-08) - ) - ) - (return - (f32.mul - (f32.const 2) - (f32.sub - (f32.const 1.570796251296997) - (f32.add - (get_local $5) - (get_local $4) - ) - ) - ) - ) - ) - ) - (set_local $3 - (f32.sub - (f32.const 0.5) - (f32.mul - (get_local $0) - (f32.const 0.5) - ) - ) - ) - (set_local $5 - (f32.sqrt - (get_local $3) - ) - ) - (set_local $1 - (i32.reinterpret/f32 - (get_local $5) - ) - ) - (set_local $6 - (f32.reinterpret/i32 - (i32.and - (get_local $1) - (i32.const -4096) - ) - ) - ) - (set_local $7 - (f32.div - (f32.sub - (get_local $3) - (f32.mul - (get_local $6) - (get_local $6) - ) - ) - (f32.add - (get_local $5) - (get_local $6) - ) - ) - ) - (set_local $4 - (f32.add - (f32.mul - (call $~lib/math/Rf - (get_local $3) - ) - (get_local $5) - ) - (get_local $7) - ) - ) - (f32.mul - (f32.const 2) - (f32.add - (get_local $6) - (get_local $4) - ) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 1065353216 + i32.ge_u + if + get_local $2 + i32.const 1065353216 + i32.eq + if + get_local $1 + i32.const 31 + i32.shr_u + if + f32.const 2 + f32.const 1.570796251296997 + f32.mul + f32.const 7.52316384526264e-37 + f32.add + return + end + f32.const 0 + return + end + f32.const 0 + get_local $0 + get_local $0 + f32.sub + f32.div + return + end + get_local $2 + i32.const 1056964608 + i32.lt_u + if + get_local $2 + i32.const 847249408 + i32.le_u + if + f32.const 1.570796251296997 + f32.const 7.52316384526264e-37 + f32.add + return + end + f32.const 1.570796251296997 + get_local $0 + f32.const 7.549789415861596e-08 + get_local $0 + get_local $0 + get_local $0 + f32.mul + call $~lib/math/Rf + f32.mul + f32.sub + f32.sub + f32.sub + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + f32.const 0.5 + get_local $0 + f32.const 0.5 + f32.mul + f32.add + set_local $3 + get_local $3 + f32.sqrt + set_local $5 + get_local $3 + call $~lib/math/Rf + get_local $5 + f32.mul + f32.const 7.549789415861596e-08 + f32.sub + set_local $4 + f32.const 2 + f32.const 1.570796251296997 + get_local $5 + get_local $4 + f32.add + f32.sub + f32.mul + return + end + f32.const 0.5 + get_local $0 + f32.const 0.5 + f32.mul + f32.sub + set_local $3 + get_local $3 + f32.sqrt + set_local $5 + get_local $5 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $6 + get_local $3 + get_local $6 + get_local $6 + f32.mul + f32.sub + get_local $5 + get_local $6 + f32.add + f32.div + set_local $7 + get_local $3 + call $~lib/math/Rf + get_local $5 + f32.mul + get_local $7 + f32.add + set_local $4 + f32.const 2 + get_local $6 + get_local $4 + f32.add + f32.mul ) (func $std/math/test_acosf (; 53 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.acos - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.acos + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.log1p (; 54 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -1397,340 +1014,234 @@ (local $13 f64) (local $14 f64) (local $15 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $3 - (i32.const 1) - ) - (set_local $4 - (f64.const 0) - ) - (set_local $5 - (f64.const 0) - ) - (if - (if (result i32) - (tee_local $6 - (i32.lt_u - (get_local $2) - (i32.const 1071284858) - ) - ) - (get_local $6) - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (block - (if - (i32.ge_u - (get_local $2) - (i32.const -1074790400) - ) - (block - (if - (f64.eq - (get_local $0) - (f64.const -1) - ) - (return - (f64.div - (get_local $0) - (f64.const 0) - ) - ) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - ) - (if - (i32.lt_u - (i32.shl - (get_local $2) - (i32.const 1) - ) - (i32.shl - (i32.const 1017118720) - (i32.const 1) - ) - ) - (return - (get_local $0) - ) - ) - (if - (i32.le_u - (get_local $2) - (i32.const -1076707644) - ) - (block - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (f64.const 0) - ) - (set_local $5 - (get_local $0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - ) - ) - (if - (get_local $3) - (block - (set_local $1 - (i64.reinterpret/f64 - (f64.add - (f64.const 1) - (get_local $0) - ) - ) - ) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.sub - (i32.const 1072693248) - (i32.const 1072079006) - ) - ) - ) - (set_local $3 - (i32.sub - (i32.shr_u - (get_local $6) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 54) - ) - (block - (set_local $7 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $4 - (if (result f64) - (i32.ge_s - (get_local $3) - (i32.const 2) - ) - (f64.sub - (f64.const 1) - (f64.sub - (get_local $7) - (get_local $0) - ) - ) - (f64.sub - (get_local $0) - (f64.sub - (get_local $7) - (f64.const 1) - ) - ) - ) - ) - (set_local $4 - (f64.div - (get_local $4) - (get_local $7) - ) - ) - ) - (set_local $4 - (f64.const 0) - ) - ) - (set_local $6 - (i32.add - (i32.and - (get_local $6) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (set_local $1 - (i64.or - (i64.shl - (i64.extend_u/i32 - (get_local $6) - ) - (i64.const 32) - ) - (i64.and - (get_local $1) - (i64.const 4294967295) - ) - ) - ) - (set_local $5 - (f64.sub - (f64.reinterpret/i64 - (get_local $1) - ) - (f64.const 1) - ) - ) - ) - ) - (set_local $8 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (set_local $9 - (f64.div - (get_local $5) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (set_local $10 - (f64.mul - (get_local $9) - (get_local $9) - ) - ) - (set_local $11 - (f64.mul - (get_local $10) - (get_local $10) - ) - ) - (set_local $12 - (f64.mul - (get_local $11) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $11) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $11) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - (set_local $13 - (f64.mul - (get_local $10) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $11) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $11) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $11) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $14 - (f64.add - (get_local $13) - (get_local $12) - ) - ) - (set_local $15 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (f64.add - (f64.add - (f64.sub - (f64.add - (f64.mul - (get_local $9) - (f64.add - (get_local $8) - (get_local $14) - ) - ) - (f64.add - (f64.mul - (get_local $15) - (f64.const 1.9082149292705877e-10) - ) - (get_local $4) - ) - ) - (get_local $8) - ) - (get_local $5) - ) - (f64.mul - (get_local $15) - (f64.const 0.6931471803691238) - ) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + i32.const 1 + set_local $3 + f64.const 0 + set_local $4 + f64.const 0 + set_local $5 + get_local $2 + i32.const 1071284858 + i32.lt_u + tee_local $6 + if (result i32) + get_local $6 + else + get_local $2 + i32.const 31 + i32.shr_u + end + if + get_local $2 + i32.const -1074790400 + i32.ge_u + if + get_local $0 + f64.const -1 + f64.eq + if + get_local $0 + f64.const 0 + f64.div + return + end + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $2 + i32.const 1 + i32.shl + i32.const 1017118720 + i32.const 1 + i32.shl + i32.lt_u + if + get_local $0 + return + end + get_local $2 + i32.const -1076707644 + i32.le_u + if + i32.const 0 + set_local $3 + f64.const 0 + set_local $4 + get_local $0 + set_local $5 + end + else + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + end + end + get_local $3 + if + f64.const 1 + get_local $0 + f64.add + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $6 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + set_local $6 + get_local $6 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + set_local $3 + get_local $3 + i32.const 54 + i32.lt_s + if + get_local $1 + f64.reinterpret/i64 + set_local $7 + get_local $3 + i32.const 2 + i32.ge_s + if (result f64) + f64.const 1 + get_local $7 + get_local $0 + f64.sub + f64.sub + else + get_local $0 + get_local $7 + f64.const 1 + f64.sub + f64.sub + end + set_local $4 + get_local $4 + get_local $7 + f64.div + set_local $4 + else + f64.const 0 + set_local $4 + end + get_local $6 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + set_local $6 + get_local $6 + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $1 + i64.const 4294967295 + i64.and + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + f64.const 1 + f64.sub + set_local $5 + end + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + set_local $8 + get_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + set_local $9 + get_local $9 + get_local $9 + f64.mul + set_local $10 + get_local $10 + get_local $10 + f64.mul + set_local $11 + get_local $11 + f64.const 0.3999999999940942 + get_local $11 + f64.const 0.22222198432149784 + get_local $11 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $12 + get_local $10 + f64.const 0.6666666666666735 + get_local $11 + f64.const 0.2857142874366239 + get_local $11 + f64.const 0.1818357216161805 + get_local $11 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $13 + get_local $13 + get_local $12 + f64.add + set_local $14 + get_local $3 + f64.convert_s/i32 + set_local $15 + get_local $9 + get_local $8 + get_local $14 + f64.add + f64.mul + get_local $15 + f64.const 1.9082149292705877e-10 + f64.mul + get_local $4 + f64.add + f64.add + get_local $8 + f64.sub + get_local $5 + f64.add + get_local $15 + f64.const 0.6931471803691238 + f64.mul + f64.add ) (func $~lib/math/NativeMath.log (; 55 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -1746,418 +1257,295 @@ (local $11 f64) (local $12 f64) (local $13 i32) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.lt_u - (get_local $2) - (i32.const 1048576) - ) - ) - (get_local $4) - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (block - (if - (i64.eq - (i64.shl - (get_local $1) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 54) - ) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eq - (get_local $2) - (i32.const 1072693248) - ) - ) - (i64.eq - (i64.shl - (get_local $1) - (i64.const 32) - ) - (i64.const 0) - ) - (get_local $4) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.const 1072693248) - (i32.const 1072079006) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_s - (get_local $2) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $2 - (i32.add - (i32.and - (get_local $2) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (set_local $1 - (i64.or - (i64.shl - (i64.extend_u/i32 - (get_local $2) - ) - (i64.const 32) - ) - (i64.and - (get_local $1) - (i64.const 4294967295) - ) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $5 - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (set_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (set_local $7 - (f64.div - (get_local $5) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (set_local $9 - (f64.mul - (get_local $8) - (get_local $8) - ) - ) - (set_local $10 - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $9) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - (set_local $11 - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $9) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $12 - (f64.add - (get_local $11) - (get_local $10) - ) - ) - (set_local $13 - (get_local $3) - ) - (f64.add - (f64.add - (f64.sub - (f64.add - (f64.mul - (get_local $7) - (f64.add - (get_local $6) - (get_local $12) - ) - ) - (f64.mul - (f64.convert_s/i32 - (get_local $13) - ) - (f64.const 1.9082149292705877e-10) - ) - ) - (get_local $6) - ) - (get_local $5) - ) - (f64.mul - (f64.convert_s/i32 - (get_local $13) - ) - (f64.const 0.6931471803691238) - ) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + i32.const 0 + set_local $3 + get_local $2 + i32.const 1048576 + i32.lt_u + tee_local $4 + if (result i32) + get_local $4 + else + get_local $2 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $2 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $3 + i32.const 54 + i32.sub + set_local $3 + get_local $0 + f64.const 18014398509481984 + f64.mul + set_local $0 + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + else + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $2 + i32.const 1072693248 + i32.eq + tee_local $4 + if (result i32) + get_local $1 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + else + get_local $4 + end + if + f64.const 0 + return + end + end + end + get_local $2 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + set_local $2 + get_local $3 + get_local $2 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $3 + get_local $2 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + set_local $2 + get_local $2 + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $1 + i64.const 4294967295 + i64.and + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $0 + get_local $0 + f64.const 1 + f64.sub + set_local $5 + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + set_local $6 + get_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + set_local $7 + get_local $7 + get_local $7 + f64.mul + set_local $8 + get_local $8 + get_local $8 + f64.mul + set_local $9 + get_local $9 + f64.const 0.3999999999940942 + get_local $9 + f64.const 0.22222198432149784 + get_local $9 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $10 + get_local $8 + f64.const 0.6666666666666735 + get_local $9 + f64.const 0.2857142874366239 + get_local $9 + f64.const 0.1818357216161805 + get_local $9 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $11 + get_local $11 + get_local $10 + f64.add + set_local $12 + get_local $3 + set_local $13 + get_local $7 + get_local $6 + get_local $12 + f64.add + f64.mul + get_local $13 + f64.convert_s/i32 + f64.const 1.9082149292705877e-10 + f64.mul + f64.add + get_local $6 + f64.sub + get_local $5 + f64.add + get_local $13 + f64.convert_s/i32 + f64.const 0.6931471803691238 + f64.mul + f64.add ) (func $~lib/math/NativeMath.acosh (; 56 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) - (set_local $1 - (i64.and - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (if - (i64.lt_u - (get_local $1) - (i64.add - (i64.const 1023) - (i64.const 1) - ) - ) - (return - (call $~lib/math/NativeMath.log1p - (f64.add - (f64.sub - (get_local $0) - (f64.const 1) - ) - (f64.sqrt - (f64.add - (f64.mul - (f64.sub - (get_local $0) - (f64.const 1) - ) - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (f64.mul - (f64.const 2) - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i64.lt_u - (get_local $1) - (i64.add - (i64.const 1023) - (i64.const 26) - ) - ) - (return - (call $~lib/math/NativeMath.log - (f64.sub - (f64.mul - (f64.const 2) - (get_local $0) - ) - (f64.div - (f64.const 1) - (f64.add - (get_local $0) - (f64.sqrt - (f64.sub - (f64.mul - (get_local $0) - (get_local $0) - ) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.add - (call $~lib/math/NativeMath.log - (get_local $0) - ) - (f64.const 0.6931471805599453) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $1 + get_local $1 + i64.const 1023 + i64.const 1 + i64.add + i64.lt_u + if + get_local $0 + f64.const 1 + f64.sub + get_local $0 + f64.const 1 + f64.sub + get_local $0 + f64.const 1 + f64.sub + f64.mul + f64.const 2 + get_local $0 + f64.const 1 + f64.sub + f64.mul + f64.add + f64.sqrt + f64.add + call $~lib/math/NativeMath.log1p + return + end + get_local $1 + i64.const 1023 + i64.const 26 + i64.add + i64.lt_u + if + f64.const 2 + get_local $0 + f64.mul + f64.const 1 + get_local $0 + get_local $0 + get_local $0 + f64.mul + f64.const 1 + f64.sub + f64.sqrt + f64.add + f64.div + f64.sub + call $~lib/math/NativeMath.log + return + end + get_local $0 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add ) (func $std/math/test_acosh (; 57 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.acosh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/acosh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.acosh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/acosh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.log1p (; 58 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) @@ -2174,290 +1562,202 @@ (local $12 f32) (local $13 f32) (local $14 f32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (f32.const 0) - ) - (set_local $3 - (f32.const 0) - ) - (set_local $4 - (i32.const 1) - ) - (if - (if (result i32) - (tee_local $5 - (i32.lt_u - (get_local $1) - (i32.const 1054086096) - ) - ) - (get_local $5) - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const -1082130432) - ) - (block - (if - (f32.eq - (get_local $0) - (f32.const -1) - ) - (return - (f32.div - (get_local $0) - (f32.const 0) - ) - ) - ) - (return - (f32.div - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.const 0) - ) - ) - ) - ) - (if - (i32.lt_u - (i32.shl - (get_local $1) - (i32.const 1) - ) - (i32.shl - (i32.const 864026624) - (i32.const 1) - ) - ) - (return - (get_local $0) - ) - ) - (if - (i32.le_u - (get_local $1) - (i32.const -1097468391) - ) - (block - (set_local $4 - (i32.const 0) - ) - (set_local $2 - (f32.const 0) - ) - (set_local $3 - (get_local $0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2139095040) - ) - (return - (get_local $0) - ) - ) - ) - (if - (get_local $4) - (block - (set_local $6 - (f32.add - (f32.const 1) - (get_local $0) - ) - ) - (set_local $5 - (i32.reinterpret/f32 - (get_local $6) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.sub - (i32.const 1065353216) - (i32.const 1060439283) - ) - ) - ) - (set_local $4 - (i32.sub - (i32.shr_u - (get_local $5) - (i32.const 23) - ) - (i32.const 127) - ) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 25) - ) - (block - (set_local $2 - (if (result f32) - (i32.ge_s - (get_local $4) - (i32.const 2) - ) - (f32.sub - (f32.const 1) - (f32.sub - (get_local $6) - (get_local $0) - ) - ) - (f32.sub - (get_local $0) - (f32.sub - (get_local $6) - (f32.const 1) - ) - ) - ) - ) - (set_local $2 - (f32.div - (get_local $2) - (get_local $6) - ) - ) - ) - (set_local $2 - (f32.const 0) - ) - ) - (set_local $5 - (i32.add - (i32.and - (get_local $5) - (i32.const 8388607) - ) - (i32.const 1060439283) - ) - ) - (set_local $3 - (f32.sub - (f32.reinterpret/i32 - (get_local $5) - ) - (f32.const 1) - ) - ) - ) - ) - (set_local $7 - (f32.div - (get_local $3) - (f32.add - (f32.const 2) - (get_local $3) - ) - ) - ) - (set_local $8 - (f32.mul - (get_local $7) - (get_local $7) - ) - ) - (set_local $9 - (f32.mul - (get_local $8) - (get_local $8) - ) - ) - (set_local $10 - (f32.mul - (get_local $9) - (f32.add - (f32.const 0.40000972151756287) - (f32.mul - (get_local $9) - (f32.const 0.24279078841209412) - ) - ) - ) - ) - (set_local $11 - (f32.mul - (get_local $8) - (f32.add - (f32.const 0.6666666269302368) - (f32.mul - (get_local $9) - (f32.const 0.2849878668785095) - ) - ) - ) - ) - (set_local $12 - (f32.add - (get_local $11) - (get_local $10) - ) - ) - (set_local $13 - (f32.mul - (f32.mul - (f32.const 0.5) - (get_local $3) - ) - (get_local $3) - ) - ) - (set_local $14 - (f32.convert_s/i32 - (get_local $4) - ) - ) - (f32.add - (f32.add - (f32.sub - (f32.add - (f32.mul - (get_local $7) - (f32.add - (get_local $13) - (get_local $12) - ) - ) - (f32.add - (f32.mul - (get_local $14) - (f32.const 9.05800061445916e-06) - ) - (get_local $2) - ) - ) - (get_local $13) - ) - (get_local $3) - ) - (f32.mul - (get_local $14) - (f32.const 0.6931381225585938) - ) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + f32.const 0 + set_local $2 + f32.const 0 + set_local $3 + i32.const 1 + set_local $4 + get_local $1 + i32.const 1054086096 + i32.lt_u + tee_local $5 + if (result i32) + get_local $5 + else + get_local $1 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i32.const -1082130432 + i32.ge_u + if + get_local $0 + f32.const -1 + f32.eq + if + get_local $0 + f32.const 0 + f32.div + return + end + get_local $0 + get_local $0 + f32.sub + f32.const 0 + f32.div + return + end + get_local $1 + i32.const 1 + i32.shl + i32.const 864026624 + i32.const 1 + i32.shl + i32.lt_u + if + get_local $0 + return + end + get_local $1 + i32.const -1097468391 + i32.le_u + if + i32.const 0 + set_local $4 + f32.const 0 + set_local $2 + get_local $0 + set_local $3 + end + else + get_local $1 + i32.const 2139095040 + i32.ge_u + if + get_local $0 + return + end + end + get_local $4 + if + f32.const 1 + get_local $0 + f32.add + set_local $6 + get_local $6 + i32.reinterpret/f32 + set_local $5 + get_local $5 + i32.const 1065353216 + i32.const 1060439283 + i32.sub + i32.add + set_local $5 + get_local $5 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + set_local $4 + get_local $4 + i32.const 25 + i32.lt_s + if + get_local $4 + i32.const 2 + i32.ge_s + if (result f32) + f32.const 1 + get_local $6 + get_local $0 + f32.sub + f32.sub + else + get_local $0 + get_local $6 + f32.const 1 + f32.sub + f32.sub + end + set_local $2 + get_local $2 + get_local $6 + f32.div + set_local $2 + else + f32.const 0 + set_local $2 + end + get_local $5 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + set_local $5 + get_local $5 + f32.reinterpret/i32 + f32.const 1 + f32.sub + set_local $3 + end + get_local $3 + f32.const 2 + get_local $3 + f32.add + f32.div + set_local $7 + get_local $7 + get_local $7 + f32.mul + set_local $8 + get_local $8 + get_local $8 + f32.mul + set_local $9 + get_local $9 + f32.const 0.40000972151756287 + get_local $9 + f32.const 0.24279078841209412 + f32.mul + f32.add + f32.mul + set_local $10 + get_local $8 + f32.const 0.6666666269302368 + get_local $9 + f32.const 0.2849878668785095 + f32.mul + f32.add + f32.mul + set_local $11 + get_local $11 + get_local $10 + f32.add + set_local $12 + f32.const 0.5 + get_local $3 + f32.mul + get_local $3 + f32.mul + set_local $13 + get_local $4 + f32.convert_s/i32 + set_local $14 + get_local $7 + get_local $13 + get_local $12 + f32.add + f32.mul + get_local $14 + f32.const 9.05800061445916e-06 + f32.mul + get_local $2 + f32.add + f32.add + get_local $13 + f32.sub + get_local $3 + f32.add + get_local $14 + f32.const 0.6931381225585938 + f32.mul + f32.add ) (func $~lib/math/NativeMathf.log (; 59 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) @@ -2472,335 +1772,234 @@ (local $10 f32) (local $11 f32) (local $12 f32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $3 - (i32.lt_u - (get_local $1) - (i32.const 8388608) - ) - ) - (get_local $3) - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - (block - (if - (i32.eq - (i32.shl - (get_local $1) - (i32.const 1) - ) - (i32.const 0) - ) - (return - (f32.div - (f32.const -1) - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f32.div - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.const 0) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 25) - ) - ) - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 33554432) - ) - ) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2139095040) - ) - (return - (get_local $0) - ) - (if - (i32.eq - (get_local $1) - (i32.const 1065353216) - ) - (return - (f32.const 0) - ) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.sub - (i32.const 1065353216) - (i32.const 1060439283) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.shr_s - (get_local $1) - (i32.const 23) - ) - (i32.const 127) - ) - ) - ) - (set_local $1 - (i32.add - (i32.and - (get_local $1) - (i32.const 8388607) - ) - (i32.const 1060439283) - ) - ) - (set_local $0 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (set_local $4 - (f32.sub - (get_local $0) - (f32.const 1) - ) - ) - (set_local $5 - (f32.div - (get_local $4) - (f32.add - (f32.const 2) - (get_local $4) - ) - ) - ) - (set_local $6 - (f32.mul - (get_local $5) - (get_local $5) - ) - ) - (set_local $7 - (f32.mul - (get_local $6) - (get_local $6) - ) - ) - (set_local $8 - (f32.mul - (get_local $7) - (f32.add - (f32.const 0.40000972151756287) - (f32.mul - (get_local $7) - (f32.const 0.24279078841209412) - ) - ) - ) - ) - (set_local $9 - (f32.mul - (get_local $6) - (f32.add - (f32.const 0.6666666269302368) - (f32.mul - (get_local $7) - (f32.const 0.2849878668785095) - ) - ) - ) - ) - (set_local $10 - (f32.add - (get_local $9) - (get_local $8) - ) - ) - (set_local $11 - (f32.mul - (f32.mul - (f32.const 0.5) - (get_local $4) - ) - (get_local $4) - ) - ) - (set_local $12 - (f32.convert_s/i32 - (get_local $2) - ) - ) - (f32.add - (f32.add - (f32.sub - (f32.add - (f32.mul - (get_local $5) - (f32.add - (get_local $11) - (get_local $10) - ) - ) - (f32.mul - (get_local $12) - (f32.const 9.05800061445916e-06) - ) - ) - (get_local $11) - ) - (get_local $4) - ) - (f32.mul - (get_local $12) - (f32.const 0.6931381225585938) - ) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + i32.const 0 + set_local $2 + get_local $1 + i32.const 8388608 + i32.lt_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $1 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + if + f32.const -1 + get_local $0 + get_local $0 + f32.mul + f32.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f32.sub + f32.const 0 + f32.div + return + end + get_local $2 + i32.const 25 + i32.sub + set_local $2 + get_local $0 + f32.const 33554432 + f32.mul + set_local $0 + get_local $0 + i32.reinterpret/f32 + set_local $1 + else + get_local $1 + i32.const 2139095040 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1065353216 + i32.eq + if + f32.const 0 + return + end + end + end + get_local $1 + i32.const 1065353216 + i32.const 1060439283 + i32.sub + i32.add + set_local $1 + get_local $2 + get_local $1 + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + i32.add + set_local $2 + get_local $1 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $0 + get_local $0 + f32.const 1 + f32.sub + set_local $4 + get_local $4 + f32.const 2 + get_local $4 + f32.add + f32.div + set_local $5 + get_local $5 + get_local $5 + f32.mul + set_local $6 + get_local $6 + get_local $6 + f32.mul + set_local $7 + get_local $7 + f32.const 0.40000972151756287 + get_local $7 + f32.const 0.24279078841209412 + f32.mul + f32.add + f32.mul + set_local $8 + get_local $6 + f32.const 0.6666666269302368 + get_local $7 + f32.const 0.2849878668785095 + f32.mul + f32.add + f32.mul + set_local $9 + get_local $9 + get_local $8 + f32.add + set_local $10 + f32.const 0.5 + get_local $4 + f32.mul + get_local $4 + f32.mul + set_local $11 + get_local $2 + f32.convert_s/i32 + set_local $12 + get_local $5 + get_local $11 + get_local $10 + f32.add + f32.mul + get_local $12 + f32.const 9.05800061445916e-06 + f32.mul + f32.add + get_local $11 + f32.sub + get_local $4 + f32.add + get_local $12 + f32.const 0.6931381225585938 + f32.mul + f32.add ) (func $~lib/math/NativeMathf.acosh (; 60 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.add - (i32.const 1065353216) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - (block - (set_local $3 - (f32.sub - (get_local $0) - (f32.const 1) - ) - ) - (return - (call $~lib/math/NativeMathf.log1p - (f32.add - (get_local $3) - (f32.sqrt - (f32.mul - (get_local $3) - (f32.add - (get_local $3) - (f32.const 2) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.add - (i32.const 1065353216) - (i32.shl - (i32.const 12) - (i32.const 23) - ) - ) - ) - (return - (call $~lib/math/NativeMathf.log - (f32.sub - (f32.mul - (f32.const 2) - (get_local $0) - ) - (f32.div - (f32.const 1) - (f32.add - (get_local $0) - (f32.sqrt - (f32.sub - (f32.mul - (get_local $0) - (get_local $0) - ) - (f32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f32.add - (call $~lib/math/NativeMathf.log - (get_local $0) - ) - (f32.const 0.6931471824645996) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add + i32.lt_u + if + get_local $0 + f32.const 1 + f32.sub + set_local $3 + get_local $3 + get_local $3 + get_local $3 + f32.const 2 + f32.add + f32.mul + f32.sqrt + f32.add + call $~lib/math/NativeMathf.log1p + return + end + get_local $2 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add + i32.lt_u + if + f32.const 2 + get_local $0 + f32.mul + f32.const 1 + get_local $0 + get_local $0 + get_local $0 + f32.mul + f32.const 1 + f32.sub + f32.sqrt + f32.add + f32.div + f32.sub + call $~lib/math/NativeMathf.log + return + end + get_local $0 + call $~lib/math/NativeMathf.log + f32.const 0.6931471824645996 + f32.add ) (func $std/math/test_acoshf (; 61 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.acosh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.acosh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.asin (; 62 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) @@ -2811,261 +2010,183 @@ (local $6 f64) (local $7 f64) (local $8 f64) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (set_local $2 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1072693248) - ) - (block - (set_local $3 - (i32.wrap/i64 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $2) - (i32.const 1072693248) - ) - (get_local $3) - ) - (i32.const 0) - ) - (return - (f64.add - (f64.mul - (get_local $0) - (f64.const 1.5707963267948966) - ) - (f64.promote/f32 - (f32.const 7.52316384526264e-37) - ) - ) - ) - ) - (return - (f64.div - (f64.const 0) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1071644672) - ) - (block - (if - (if (result i32) - (tee_local $3 - (i32.lt_u - (get_local $2) - (i32.const 1045430272) - ) - ) - (i32.ge_u - (get_local $2) - (i32.const 1048576) - ) - (get_local $3) - ) - (return - (get_local $0) - ) - ) - (return - (f64.add - (get_local $0) - (f64.mul - (get_local $0) - (call $~lib/math/R - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (set_local $4 - (f64.sub - (f64.const 0.5) - (f64.mul - (f64.abs - (get_local $0) - ) - (f64.const 0.5) - ) - ) - ) - (set_local $5 - (f64.sqrt - (get_local $4) - ) - ) - (set_local $6 - (call $~lib/math/R - (get_local $4) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1072640819) - ) - (set_local $0 - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (f64.mul - (f64.const 2) - (f64.add - (get_local $5) - (f64.mul - (get_local $5) - (get_local $6) - ) - ) - ) - (f64.const 6.123233995736766e-17) - ) - ) - ) - (block - (set_local $7 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $5) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $8 - (f64.div - (f64.sub - (get_local $4) - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (f64.add - (get_local $5) - (get_local $7) - ) - ) - ) - (set_local $0 - (f64.sub - (f64.mul - (f64.const 0.5) - (f64.const 1.5707963267948966) - ) - (f64.sub - (f64.sub - (f64.mul - (f64.mul - (f64.const 2) - (get_local $5) - ) - (get_local $6) - ) - (f64.sub - (f64.const 6.123233995736766e-17) - (f64.mul - (f64.const 2) - (get_local $8) - ) - ) - ) - (f64.sub - (f64.mul - (f64.const 0.5) - (f64.const 1.5707963267948966) - ) - (f64.mul - (f64.const 2) - (get_local $7) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f64.neg - (get_local $0) - ) - ) - ) - (get_local $0) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 1072693248 + i32.ge_u + if + get_local $0 + i64.reinterpret/f64 + i32.wrap/i64 + set_local $3 + get_local $2 + i32.const 1072693248 + i32.sub + get_local $3 + i32.or + i32.const 0 + i32.eq + if + get_local $0 + f64.const 1.5707963267948966 + f64.mul + f32.const 7.52316384526264e-37 + f64.promote/f32 + f64.add + return + end + f64.const 0 + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $2 + i32.const 1071644672 + i32.lt_u + if + get_local $2 + i32.const 1045430272 + i32.lt_u + tee_local $3 + if (result i32) + get_local $2 + i32.const 1048576 + i32.ge_u + else + get_local $3 + end + if + get_local $0 + return + end + get_local $0 + get_local $0 + get_local $0 + get_local $0 + f64.mul + call $~lib/math/R + f64.mul + f64.add + return + end + f64.const 0.5 + get_local $0 + f64.abs + f64.const 0.5 + f64.mul + f64.sub + set_local $4 + get_local $4 + f64.sqrt + set_local $5 + get_local $4 + call $~lib/math/R + set_local $6 + get_local $2 + i32.const 1072640819 + i32.ge_u + if + f64.const 1.5707963267948966 + f64.const 2 + get_local $5 + get_local $5 + get_local $6 + f64.mul + f64.add + f64.mul + f64.const 6.123233995736766e-17 + f64.sub + f64.sub + set_local $0 + else + get_local $5 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $7 + get_local $4 + get_local $7 + get_local $7 + f64.mul + f64.sub + get_local $5 + get_local $7 + f64.add + f64.div + set_local $8 + f64.const 0.5 + f64.const 1.5707963267948966 + f64.mul + f64.const 2 + get_local $5 + f64.mul + get_local $6 + f64.mul + f64.const 6.123233995736766e-17 + f64.const 2 + get_local $8 + f64.mul + f64.sub + f64.sub + f64.const 0.5 + f64.const 1.5707963267948966 + f64.mul + f64.const 2 + get_local $7 + f64.mul + f64.sub + f64.sub + f64.sub + set_local $0 + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + f64.neg + return + end + get_local $0 ) (func $std/math/test_asin (; 63 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.asin - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/asin - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.asin + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/asin + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.asin (; 64 ;) (type $ff) (param $0 f32) (result f32) (local $1 f32) @@ -3073,419 +2194,299 @@ (local $3 i32) (local $4 f32) (local $5 f64) - (set_local $1 - (get_local $0) - ) - (set_local $2 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1065353216) - ) - (block - (if - (i32.eq - (get_local $2) - (i32.const 1065353216) - ) - (return - (f32.add - (f32.mul - (get_local $0) - (f32.const 1.5707963705062866) - ) - (f32.const 7.52316384526264e-37) - ) - ) - ) - (return - (f32.div - (f32.const 0) - (f32.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1056964608) - ) - (block - (if - (if (result i32) - (tee_local $3 - (i32.lt_u - (get_local $2) - (i32.const 964689920) - ) - ) - (i32.ge_u - (get_local $2) - (i32.const 8388608) - ) - (get_local $3) - ) - (return - (get_local $0) - ) - ) - (return - (f32.add - (get_local $0) - (f32.mul - (get_local $0) - (call $~lib/math/Rf - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (set_local $4 - (f32.sub - (f32.const 0.5) - (f32.mul - (f32.abs - (get_local $0) - ) - (f32.const 0.5) - ) - ) - ) - (set_local $5 - (f64.sqrt - (f64.promote/f32 - (get_local $4) - ) - ) - ) - (set_local $0 - (f32.demote/f64 - (f64.sub - (f64.promote/f32 - (f32.const 1.5707963705062866) - ) - (f64.mul - (f64.promote/f32 - (f32.const 2) - ) - (f64.add - (get_local $5) - (f64.mul - (get_local $5) - (f64.promote/f32 - (call $~lib/math/Rf - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - ) - (f32.copysign - (get_local $0) - (get_local $1) - ) + get_local $0 + set_local $1 + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 1065353216 + i32.ge_u + if + get_local $2 + i32.const 1065353216 + i32.eq + if + get_local $0 + f32.const 1.5707963705062866 + f32.mul + f32.const 7.52316384526264e-37 + f32.add + return + end + f32.const 0 + get_local $0 + get_local $0 + f32.sub + f32.div + return + end + get_local $2 + i32.const 1056964608 + i32.lt_u + if + get_local $2 + i32.const 964689920 + i32.lt_u + tee_local $3 + if (result i32) + get_local $2 + i32.const 8388608 + i32.ge_u + else + get_local $3 + end + if + get_local $0 + return + end + get_local $0 + get_local $0 + get_local $0 + get_local $0 + f32.mul + call $~lib/math/Rf + f32.mul + f32.add + return + end + f32.const 0.5 + get_local $0 + f32.abs + f32.const 0.5 + f32.mul + f32.sub + set_local $4 + get_local $4 + f64.promote/f32 + f64.sqrt + set_local $5 + f32.const 1.5707963705062866 + f64.promote/f32 + f32.const 2 + f64.promote/f32 + get_local $5 + get_local $5 + get_local $4 + call $~lib/math/Rf + f64.promote/f32 + f64.mul + f64.add + f64.mul + f64.sub + f32.demote/f64 + set_local $0 + get_local $0 + get_local $1 + f32.copysign ) (func $std/math/test_asinf (; 65 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.asin - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.asin + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.asinh (; 66 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i64.and - (i64.shr_u - (get_local $1) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $3 - (f64.reinterpret/i64 - (i64.and - (get_local $1) - (i64.const 9223372036854775807) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.add - (i64.const 1023) - (i64.const 26) - ) - ) - (set_local $3 - (f64.add - (call $~lib/math/NativeMath.log - (get_local $3) - ) - (f64.const 0.6931471805599453) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.add - (i64.const 1023) - (i64.const 1) - ) - ) - (set_local $3 - (call $~lib/math/NativeMath.log - (f64.add - (f64.mul - (f64.const 2) - (get_local $3) - ) - (f64.div - (f64.const 1) - (f64.add - (f64.sqrt - (f64.add - (f64.mul - (get_local $3) - (get_local $3) - ) - (f64.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.sub - (i64.const 1023) - (i64.const 26) - ) - ) - (set_local $3 - (call $~lib/math/NativeMath.log1p - (f64.add - (get_local $3) - (f64.div - (f64.mul - (get_local $3) - (get_local $3) - ) - (f64.add - (f64.sqrt - (f64.add - (f64.mul - (get_local $3) - (get_local $3) - ) - (f64.const 1) - ) - ) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.copysign - (get_local $3) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $2 + get_local $1 + i64.const 9223372036854775807 + i64.and + f64.reinterpret/i64 + set_local $3 + get_local $2 + i64.const 1023 + i64.const 26 + i64.add + i64.ge_u + if + get_local $3 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add + set_local $3 + else + get_local $2 + i64.const 1023 + i64.const 1 + i64.add + i64.ge_u + if + f64.const 2 + get_local $3 + f64.mul + f64.const 1 + get_local $3 + get_local $3 + f64.mul + f64.const 1 + f64.add + f64.sqrt + get_local $3 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log + set_local $3 + else + get_local $2 + i64.const 1023 + i64.const 26 + i64.sub + i64.ge_u + if + get_local $3 + get_local $3 + get_local $3 + f64.mul + get_local $3 + get_local $3 + f64.mul + f64.const 1 + f64.add + f64.sqrt + f64.const 1 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log1p + set_local $3 + end + end + end + get_local $3 + get_local $0 + f64.copysign ) (func $std/math/test_asinh (; 67 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.asinh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/asinh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.asinh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/asinh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.asinh (; 68 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) - (set_local $1 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - (set_local $2 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.add - (i32.const 1065353216) - (i32.shl - (i32.const 12) - (i32.const 23) - ) - ) - ) - (set_local $2 - (f32.add - (call $~lib/math/NativeMathf.log - (get_local $2) - ) - (f32.const 0.6931471824645996) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.add - (i32.const 1065353216) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - (set_local $2 - (call $~lib/math/NativeMathf.log - (f32.add - (f32.mul - (f32.const 2) - (get_local $2) - ) - (f32.div - (f32.const 1) - (f32.add - (f32.sqrt - (f32.add - (f32.mul - (get_local $2) - (get_local $2) - ) - (f32.const 1) - ) - ) - (get_local $2) - ) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.sub - (i32.const 1065353216) - (i32.shl - (i32.const 12) - (i32.const 23) - ) - ) - ) - (set_local $2 - (call $~lib/math/NativeMathf.log1p - (f32.add - (get_local $2) - (f32.div - (f32.mul - (get_local $2) - (get_local $2) - ) - (f32.add - (f32.sqrt - (f32.add - (f32.mul - (get_local $2) - (get_local $2) - ) - (f32.const 1) - ) - ) - (f32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (f32.copysign - (get_local $2) - (get_local $0) - ) + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $2 + get_local $1 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add + i32.ge_u + if + get_local $2 + call $~lib/math/NativeMathf.log + f32.const 0.6931471824645996 + f32.add + set_local $2 + else + get_local $1 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add + i32.ge_u + if + f32.const 2 + get_local $2 + f32.mul + f32.const 1 + get_local $2 + get_local $2 + f32.mul + f32.const 1 + f32.add + f32.sqrt + get_local $2 + f32.add + f32.div + f32.add + call $~lib/math/NativeMathf.log + set_local $2 + else + get_local $1 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub + i32.ge_u + if + get_local $2 + get_local $2 + get_local $2 + f32.mul + get_local $2 + get_local $2 + f32.mul + f32.const 1 + f32.add + f32.sqrt + f32.const 1 + f32.add + f32.div + f32.add + call $~lib/math/NativeMathf.log1p + set_local $2 + end + end + end + get_local $2 + get_local $0 + f32.copysign ) (func $std/math/test_asinhf (; 69 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.asinh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.asinh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.atan (; 70 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) @@ -3497,404 +2498,295 @@ (local $7 f64) (local $8 f64) (local $9 i32) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (set_local $2 - (get_local $0) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 1141899264) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (f64.add - (f64.const 1.5707963267948966) - (f64.promote/f32 - (f32.const 7.52316384526264e-37) - ) - ) - ) - (return - (f64.copysign - (get_local $3) - (get_local $2) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1071382528) - ) - (block - (if - (i32.lt_u - (get_local $1) - (i32.const 1044381696) - ) - (return - (get_local $0) - ) - ) - (set_local $4 - (i32.const -1) - ) - ) - (block - (set_local $0 - (f64.abs - (get_local $0) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1072889856) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1072037888) - ) - (block - (set_local $4 - (i32.const 0) - ) - (set_local $0 - (f64.div - (f64.sub - (f64.mul - (f64.const 2) - (get_local $0) - ) - (f64.const 1) - ) - (f64.add - (f64.const 2) - (get_local $0) - ) - ) - ) - ) - (block - (set_local $4 - (i32.const 1) - ) - (set_local $0 - (f64.div - (f64.sub - (get_local $0) - (f64.const 1) - ) - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1073971200) - ) - (block - (set_local $4 - (i32.const 2) - ) - (set_local $0 - (f64.div - (f64.sub - (get_local $0) - (f64.const 1.5) - ) - (f64.add - (f64.const 1) - (f64.mul - (f64.const 1.5) - (get_local $0) - ) - ) - ) - ) - ) - (block - (set_local $4 - (i32.const 3) - ) - (set_local $0 - (f64.div - (f64.const -1) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (set_local $3 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - (set_local $5 - (f64.mul - (get_local $3) - (get_local $3) - ) - ) - (set_local $6 - (f64.mul - (get_local $3) - (f64.add - (f64.const 0.3333333333333293) - (f64.mul - (get_local $5) - (f64.add - (f64.const 0.14285714272503466) - (f64.mul - (get_local $5) - (f64.add - (f64.const 0.09090887133436507) - (f64.mul - (get_local $5) - (f64.add - (f64.const 0.06661073137387531) - (f64.mul - (get_local $5) - (f64.add - (f64.const 0.049768779946159324) - (f64.mul - (get_local $5) - (f64.const 0.016285820115365782) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $7 - (f64.mul - (get_local $5) - (f64.add - (f64.const -0.19999999999876483) - (f64.mul - (get_local $5) - (f64.add - (f64.const -0.11111110405462356) - (f64.mul - (get_local $5) - (f64.add - (f64.const -0.0769187620504483) - (f64.mul - (get_local $5) - (f64.add - (f64.const -0.058335701337905735) - (f64.mul - (get_local $5) - (f64.const -0.036531572744216916) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $0) - (f64.add - (get_local $6) - (get_local $7) - ) - ) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 0) - ) - (return - (f64.sub - (get_local $0) - (get_local $8) - ) - ) - ) - (block $break|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $9 - (get_local $4) - ) - (br_if $case0|0 - (i32.eq - (get_local $9) - (i32.const 0) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $9) - (i32.const 1) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $9) - (i32.const 2) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $9) - (i32.const 3) - ) - ) - (br $case4|0) - ) - (block - (set_local $3 - (f64.sub - (f64.const 0.4636476090008061) - (f64.sub - (f64.sub - (get_local $8) - (f64.const 2.2698777452961687e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $3 - (f64.sub - (f64.const 0.7853981633974483) - (f64.sub - (f64.sub - (get_local $8) - (f64.const 3.061616997868383e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $3 - (f64.sub - (f64.const 0.982793723247329) - (f64.sub - (f64.sub - (get_local $8) - (f64.const 1.3903311031230998e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $3 - (f64.sub - (f64.const 1.5707963267948966) - (f64.sub - (f64.sub - (get_local $8) - (f64.const 6.123233995736766e-17) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (unreachable) - ) - (f64.copysign - (get_local $3) - (get_local $2) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + get_local $0 + set_local $2 + get_local $1 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + i32.const 1141899264 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + f64.const 1.5707963267948966 + f32.const 7.52316384526264e-37 + f64.promote/f32 + f64.add + set_local $3 + get_local $3 + get_local $2 + f64.copysign + return + end + get_local $1 + i32.const 1071382528 + i32.lt_u + if + get_local $1 + i32.const 1044381696 + i32.lt_u + if + get_local $0 + return + end + i32.const -1 + set_local $4 + else + get_local $0 + f64.abs + set_local $0 + get_local $1 + i32.const 1072889856 + i32.lt_u + if + get_local $1 + i32.const 1072037888 + i32.lt_u + if + i32.const 0 + set_local $4 + f64.const 2 + get_local $0 + f64.mul + f64.const 1 + f64.sub + f64.const 2 + get_local $0 + f64.add + f64.div + set_local $0 + else + i32.const 1 + set_local $4 + get_local $0 + f64.const 1 + f64.sub + get_local $0 + f64.const 1 + f64.add + f64.div + set_local $0 + end + else + get_local $1 + i32.const 1073971200 + i32.lt_u + if + i32.const 2 + set_local $4 + get_local $0 + f64.const 1.5 + f64.sub + f64.const 1 + f64.const 1.5 + get_local $0 + f64.mul + f64.add + f64.div + set_local $0 + else + i32.const 3 + set_local $4 + f64.const -1 + get_local $0 + f64.div + set_local $0 + end + end + end + get_local $0 + get_local $0 + f64.mul + set_local $3 + get_local $3 + get_local $3 + f64.mul + set_local $5 + get_local $3 + f64.const 0.3333333333333293 + get_local $5 + f64.const 0.14285714272503466 + get_local $5 + f64.const 0.09090887133436507 + get_local $5 + f64.const 0.06661073137387531 + get_local $5 + f64.const 0.049768779946159324 + get_local $5 + f64.const 0.016285820115365782 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $6 + get_local $5 + f64.const -0.19999999999876483 + get_local $5 + f64.const -0.11111110405462356 + get_local $5 + f64.const -0.0769187620504483 + get_local $5 + f64.const -0.058335701337905735 + get_local $5 + f64.const -0.036531572744216916 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $7 + get_local $0 + get_local $6 + get_local $7 + f64.add + f64.mul + set_local $8 + get_local $4 + i32.const 0 + i32.lt_s + if + get_local $0 + get_local $8 + f64.sub + return + end + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $4 + set_local $9 + get_local $9 + i32.const 0 + i32.eq + br_if $case0|0 + get_local $9 + i32.const 1 + i32.eq + br_if $case1|0 + get_local $9 + i32.const 2 + i32.eq + br_if $case2|0 + get_local $9 + i32.const 3 + i32.eq + br_if $case3|0 + br $case4|0 + end + block + f64.const 0.4636476090008061 + get_local $8 + f64.const 2.2698777452961687e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + block + f64.const 0.7853981633974483 + get_local $8 + f64.const 3.061616997868383e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + block + f64.const 0.982793723247329 + get_local $8 + f64.const 1.3903311031230998e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + block + f64.const 1.5707963267948966 + get_local $8 + f64.const 6.123233995736766e-17 + f64.sub + get_local $0 + f64.sub + f64.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + unreachable + end + get_local $3 + get_local $2 + f64.copysign ) (func $std/math/test_atan (; 71 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.atan - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/atan - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.atan + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/atan + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.atan (; 72 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) @@ -3906,571 +2798,417 @@ (local $7 f32) (local $8 f32) (local $9 i32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (get_local $0) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 1283457024) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (f32.add - (f32.const 1.570796251296997) - (f32.const 7.52316384526264e-37) - ) - ) - (return - (f32.copysign - (get_local $3) - (get_local $2) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1054867456) - ) - (block - (if - (i32.lt_u - (get_local $1) - (i32.const 964689920) - ) - (return - (get_local $0) - ) - ) - (set_local $4 - (i32.const -1) - ) - ) - (block - (set_local $0 - (f32.abs - (get_local $0) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1066926080) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1060110336) - ) - (block - (set_local $4 - (i32.const 0) - ) - (set_local $0 - (f32.div - (f32.sub - (f32.mul - (f32.const 2) - (get_local $0) - ) - (f32.const 1) - ) - (f32.add - (f32.const 2) - (get_local $0) - ) - ) - ) - ) - (block - (set_local $4 - (i32.const 1) - ) - (set_local $0 - (f32.div - (f32.sub - (get_local $0) - (f32.const 1) - ) - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1075576832) - ) - (block - (set_local $4 - (i32.const 2) - ) - (set_local $0 - (f32.div - (f32.sub - (get_local $0) - (f32.const 1.5) - ) - (f32.add - (f32.const 1) - (f32.mul - (f32.const 1.5) - (get_local $0) - ) - ) - ) - ) - ) - (block - (set_local $4 - (i32.const 3) - ) - (set_local $0 - (f32.div - (f32.const -1) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - (set_local $3 - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - (set_local $5 - (f32.mul - (get_local $3) - (get_local $3) - ) - ) - (set_local $6 - (f32.mul - (get_local $3) - (f32.add - (f32.const 0.333333283662796) - (f32.mul - (get_local $5) - (f32.add - (f32.const 0.14253635704517365) - (f32.mul - (get_local $5) - (f32.const 0.06168760731816292) - ) - ) - ) - ) - ) - ) - (set_local $7 - (f32.mul - (get_local $5) - (f32.add - (f32.const -0.19999158382415771) - (f32.mul - (get_local $5) - (f32.const -0.106480173766613) - ) - ) - ) - ) - (set_local $8 - (f32.mul - (get_local $0) - (f32.add - (get_local $6) - (get_local $7) - ) - ) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 0) - ) - (return - (f32.sub - (get_local $0) - (get_local $8) - ) - ) - ) - (block $break|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $9 - (get_local $4) - ) - (br_if $case0|0 - (i32.eq - (get_local $9) - (i32.const 0) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $9) - (i32.const 1) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $9) - (i32.const 2) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $9) - (i32.const 3) - ) - ) - (br $case4|0) - ) - (block - (set_local $3 - (f32.sub - (f32.const 0.46364760398864746) - (f32.sub - (f32.sub - (get_local $8) - (f32.const 5.01215824399992e-09) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $3 - (f32.sub - (f32.const 0.7853981256484985) - (f32.sub - (f32.sub - (get_local $8) - (f32.const 3.774894707930798e-08) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $3 - (f32.sub - (f32.const 0.9827936887741089) - (f32.sub - (f32.sub - (get_local $8) - (f32.const 3.447321716976148e-08) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $3 - (f32.sub - (f32.const 1.570796251296997) - (f32.sub - (f32.sub - (get_local $8) - (f32.const 7.549789415861596e-08) - ) - (get_local $0) - ) - ) - ) - (br $break|0) - ) - ) - (unreachable) - ) - (f32.copysign - (get_local $3) - (get_local $2) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + get_local $0 + set_local $2 + get_local $1 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + i32.const 1283457024 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + f32.const 1.570796251296997 + f32.const 7.52316384526264e-37 + f32.add + set_local $3 + get_local $3 + get_local $2 + f32.copysign + return + end + get_local $1 + i32.const 1054867456 + i32.lt_u + if + get_local $1 + i32.const 964689920 + i32.lt_u + if + get_local $0 + return + end + i32.const -1 + set_local $4 + else + get_local $0 + f32.abs + set_local $0 + get_local $1 + i32.const 1066926080 + i32.lt_u + if + get_local $1 + i32.const 1060110336 + i32.lt_u + if + i32.const 0 + set_local $4 + f32.const 2 + get_local $0 + f32.mul + f32.const 1 + f32.sub + f32.const 2 + get_local $0 + f32.add + f32.div + set_local $0 + else + i32.const 1 + set_local $4 + get_local $0 + f32.const 1 + f32.sub + get_local $0 + f32.const 1 + f32.add + f32.div + set_local $0 + end + else + get_local $1 + i32.const 1075576832 + i32.lt_u + if + i32.const 2 + set_local $4 + get_local $0 + f32.const 1.5 + f32.sub + f32.const 1 + f32.const 1.5 + get_local $0 + f32.mul + f32.add + f32.div + set_local $0 + else + i32.const 3 + set_local $4 + f32.const -1 + get_local $0 + f32.div + set_local $0 + end + end + end + get_local $0 + get_local $0 + f32.mul + set_local $3 + get_local $3 + get_local $3 + f32.mul + set_local $5 + get_local $3 + f32.const 0.333333283662796 + get_local $5 + f32.const 0.14253635704517365 + get_local $5 + f32.const 0.06168760731816292 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + set_local $6 + get_local $5 + f32.const -0.19999158382415771 + get_local $5 + f32.const -0.106480173766613 + f32.mul + f32.add + f32.mul + set_local $7 + get_local $0 + get_local $6 + get_local $7 + f32.add + f32.mul + set_local $8 + get_local $4 + i32.const 0 + i32.lt_s + if + get_local $0 + get_local $8 + f32.sub + return + end + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $4 + set_local $9 + get_local $9 + i32.const 0 + i32.eq + br_if $case0|0 + get_local $9 + i32.const 1 + i32.eq + br_if $case1|0 + get_local $9 + i32.const 2 + i32.eq + br_if $case2|0 + get_local $9 + i32.const 3 + i32.eq + br_if $case3|0 + br $case4|0 + end + block + f32.const 0.46364760398864746 + get_local $8 + f32.const 5.01215824399992e-09 + f32.sub + get_local $0 + f32.sub + f32.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + block + f32.const 0.7853981256484985 + get_local $8 + f32.const 3.774894707930798e-08 + f32.sub + get_local $0 + f32.sub + f32.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + block + f32.const 0.9827936887741089 + get_local $8 + f32.const 3.447321716976148e-08 + f32.sub + get_local $0 + f32.sub + f32.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + block + f32.const 1.570796251296997 + get_local $8 + f32.const 7.549789415861596e-08 + f32.sub + get_local $0 + f32.sub + f32.sub + set_local $3 + br $break|0 + unreachable + end + unreachable + end + unreachable + end + get_local $3 + get_local $2 + f32.copysign ) (func $std/math/test_atanf (; 73 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.atan - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.atan + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.atanh (; 74 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) (local $4 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i64.and - (i64.shr_u - (get_local $1) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $3 - (i64.shr_u - (get_local $1) - (i64.const 63) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.const 9223372036854775807) - ) - ) - (set_local $4 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (if - (i64.lt_u - (get_local $2) - (i64.sub - (i64.const 1023) - (i64.const 1) - ) - ) - (if - (i64.ge_u - (get_local $2) - (i64.sub - (i64.const 1023) - (i64.const 32) - ) - ) - (set_local $4 - (f64.mul - (f64.const 0.5) - (call $~lib/math/NativeMath.log1p - (f64.add - (f64.mul - (f64.const 2) - (get_local $4) - ) - (f64.div - (f64.mul - (f64.mul - (f64.const 2) - (get_local $4) - ) - (get_local $4) - ) - (f64.sub - (f64.const 1) - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - (set_local $4 - (f64.mul - (f64.const 0.5) - (call $~lib/math/NativeMath.log1p - (f64.mul - (f64.const 2) - (f64.div - (get_local $4) - (f64.sub - (f64.const 1) - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - (f64.copysign - (get_local $4) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $2 + get_local $1 + i64.const 63 + i64.shr_u + set_local $3 + get_local $1 + i64.const 9223372036854775807 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $4 + get_local $2 + i64.const 1023 + i64.const 1 + i64.sub + i64.lt_u + if + get_local $2 + i64.const 1023 + i64.const 32 + i64.sub + i64.ge_u + if + f64.const 0.5 + f64.const 2 + get_local $4 + f64.mul + f64.const 2 + get_local $4 + f64.mul + get_local $4 + f64.mul + f64.const 1 + get_local $4 + f64.sub + f64.div + f64.add + call $~lib/math/NativeMath.log1p + f64.mul + set_local $4 + end + else + f64.const 0.5 + f64.const 2 + get_local $4 + f64.const 1 + get_local $4 + f64.sub + f64.div + f64.mul + call $~lib/math/NativeMath.log1p + f64.mul + set_local $4 + end + get_local $4 + get_local $0 + f64.copysign ) (func $std/math/test_atanh (; 75 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.atanh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/atanh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.atanh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/atanh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.atanh (; 76 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (set_local $2 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.sub - (i32.const 1065353216) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.sub - (i32.const 1065353216) - (i32.shl - (i32.const 32) - (i32.const 23) - ) - ) - ) - (set_local $2 - (f32.mul - (f32.const 0.5) - (call $~lib/math/NativeMathf.log1p - (f32.mul - (f32.mul - (f32.const 2) - (get_local $2) - ) - (f32.add - (f32.const 1) - (f32.div - (get_local $2) - (f32.sub - (f32.const 1) - (get_local $2) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f32.mul - (f32.const 0.5) - (call $~lib/math/NativeMathf.log1p - (f32.mul - (f32.const 2) - (f32.div - (get_local $2) - (f32.sub - (f32.const 1) - (get_local $2) - ) - ) - ) - ) - ) - ) - ) - (f32.copysign - (get_local $2) - (get_local $0) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $2 + get_local $1 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + i32.lt_u + if + get_local $1 + i32.const 1065353216 + i32.const 32 + i32.const 23 + i32.shl + i32.sub + i32.ge_u + if + f32.const 0.5 + f32.const 2 + get_local $2 + f32.mul + f32.const 1 + get_local $2 + f32.const 1 + get_local $2 + f32.sub + f32.div + f32.add + f32.mul + call $~lib/math/NativeMathf.log1p + f32.mul + set_local $2 + end + else + f32.const 0.5 + f32.const 2 + get_local $2 + f32.const 1 + get_local $2 + f32.sub + f32.div + f32.mul + call $~lib/math/NativeMathf.log1p + f32.mul + set_local $2 + end + get_local $2 + get_local $0 + f32.copysign ) (func $std/math/test_atanhf (; 77 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.atanh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.atanh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.atan2 (; 78 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) @@ -4481,500 +3219,372 @@ (local $7 i32) (local $8 i32) (local $9 f64) - (if - (if (result i32) - (tee_local $2 - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - (get_local $2) - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - (return - (f64.add - (get_local $1) - (get_local $0) - ) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.const 32) - ) - ) - ) - (set_local $5 - (i32.wrap/i64 - (get_local $3) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.const 32) - ) - ) - ) - (set_local $7 - (i32.wrap/i64 - (get_local $3) - ) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $4) - (i32.const 1072693248) - ) - (get_local $5) - ) - (i32.const 0) - ) - (return - (call $~lib/math/NativeMath.atan - (get_local $0) - ) - ) - ) - (set_local $8 - (i32.or - (i32.and - (i32.shr_u - (get_local $6) - (i32.const 31) - ) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (get_local $4) - (i32.const 30) - ) - (i32.const 2) - ) - ) - ) - (set_local $4 - (i32.and - (get_local $4) - (i32.const 2147483647) - ) - ) - (set_local $6 - (i32.and - (get_local $6) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (i32.or - (get_local $6) - (get_local $7) - ) - (i32.const 0) - ) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $2 - (get_local $8) - ) - (br_if $case0|0 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|0) - ) - ) - (return - (get_local $0) - ) - ) - (return - (get_global $~lib/math/NativeMath.PI) - ) - ) - (return - (f64.neg - (get_global $~lib/math/NativeMath.PI) - ) - ) - ) - ) - (if - (i32.eq - (i32.or - (get_local $4) - (get_local $5) - ) - (i32.const 0) - ) - (return - (if (result f64) - (i32.and - (get_local $8) - (i32.const 1) - ) - (f64.div - (f64.neg - (get_global $~lib/math/NativeMath.PI) - ) - (f64.const 2) - ) - (f64.div - (get_global $~lib/math/NativeMath.PI) - (f64.const 2) - ) - ) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 2146435072) - ) - (if - (i32.eq - (get_local $6) - (i32.const 2146435072) - ) - (block $break|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (block $case0|1 - (set_local $2 - (get_local $8) - ) - (br_if $case0|1 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|1 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|1 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|1 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|1) - ) - (return - (f64.div - (get_global $~lib/math/NativeMath.PI) - (f64.const 4) - ) - ) - ) - (return - (f64.div - (f64.neg - (get_global $~lib/math/NativeMath.PI) - ) - (f64.const 4) - ) - ) - ) - (return - (f64.div - (f64.mul - (f64.const 3) - (get_global $~lib/math/NativeMath.PI) - ) - (f64.const 4) - ) - ) - ) - (return - (f64.div - (f64.mul - (f64.const -3) - (get_global $~lib/math/NativeMath.PI) - ) - (f64.const 4) - ) - ) - ) - (block $break|2 - (block $case3|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $2 - (get_local $8) - ) - (br_if $case0|2 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|2 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|2) - ) - (return - (f64.const 0) - ) - ) - (return - (f64.const -0) - ) - ) - (return - (get_global $~lib/math/NativeMath.PI) - ) - ) - (return - (f64.neg - (get_global $~lib/math/NativeMath.PI) - ) - ) - ) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.lt_u - (i32.add - (get_local $4) - (i32.shl - (i32.const 64) - (i32.const 20) - ) - ) - (get_local $6) - ) - ) - (get_local $2) - (i32.eq - (get_local $6) - (i32.const 2146435072) - ) - ) - (return - (if (result f64) - (i32.and - (get_local $8) - (i32.const 1) - ) - (f64.div - (f64.neg - (get_global $~lib/math/NativeMath.PI) - ) - (f64.const 2) - ) - (f64.div - (get_global $~lib/math/NativeMath.PI) - (f64.const 2) - ) - ) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.and - (get_local $8) - (i32.const 2) - ) - ) - (i32.lt_u - (i32.add - (get_local $6) - (i32.shl - (i32.const 64) - (i32.const 20) - ) - ) - (get_local $4) - ) - (get_local $2) - ) - (set_local $9 - (f64.const 0) - ) - (set_local $9 - (call $~lib/math/NativeMath.atan - (f64.abs - (f64.div - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (block $break|3 - (block $case3|3 - (block $case2|3 - (block $case1|3 - (block $case0|3 - (set_local $2 - (get_local $8) - ) - (br_if $case0|3 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|3 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|3 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|3 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|3) - ) - (return - (get_local $9) - ) - ) - (return - (f64.neg - (get_local $9) - ) - ) - ) - (return - (f64.sub - (get_global $~lib/math/NativeMath.PI) - (f64.sub - (get_local $9) - (f64.const 1.2246467991473532e-16) - ) - ) - ) - ) - (return - (f64.sub - (f64.sub - (get_local $9) - (f64.const 1.2246467991473532e-16) - ) - (get_global $~lib/math/NativeMath.PI) - ) - ) - ) - (unreachable) - (f64.const 0) + get_local $1 + call $~lib/builtins/isNaN + tee_local $2 + if (result i32) + get_local $2 + else + get_local $0 + call $~lib/builtins/isNaN + end + if + get_local $1 + get_local $0 + f64.add + return + end + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $3 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $4 + get_local $3 + i32.wrap/i64 + set_local $5 + get_local $0 + i64.reinterpret/f64 + set_local $3 + get_local $3 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $3 + i32.wrap/i64 + set_local $7 + get_local $4 + i32.const 1072693248 + i32.sub + get_local $5 + i32.or + i32.const 0 + i32.eq + if + get_local $0 + call $~lib/math/NativeMath.atan + return + end + get_local $6 + i32.const 31 + i32.shr_u + i32.const 1 + i32.and + get_local $4 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + i32.or + set_local $8 + get_local $4 + i32.const 2147483647 + i32.and + set_local $4 + get_local $6 + i32.const 2147483647 + i32.and + set_local $6 + get_local $6 + get_local $7 + i32.or + i32.const 0 + i32.eq + if + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $8 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|0 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|0 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|0 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|0 + br $break|0 + end + end + get_local $0 + return + end + get_global $~lib/math/NativeMath.PI + return + end + get_global $~lib/math/NativeMath.PI + f64.neg + return + end + end + get_local $4 + get_local $5 + i32.or + i32.const 0 + i32.eq + if + get_local $8 + i32.const 1 + i32.and + if (result f64) + get_global $~lib/math/NativeMath.PI + f64.neg + f64.const 2 + f64.div + else + get_global $~lib/math/NativeMath.PI + f64.const 2 + f64.div + end + return + end + get_local $4 + i32.const 2146435072 + i32.eq + if + get_local $6 + i32.const 2146435072 + i32.eq + if + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + get_local $8 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|1 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|1 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|1 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|1 + br $break|1 + end + get_global $~lib/math/NativeMath.PI + f64.const 4 + f64.div + return + end + get_global $~lib/math/NativeMath.PI + f64.neg + f64.const 4 + f64.div + return + end + f64.const 3 + get_global $~lib/math/NativeMath.PI + f64.mul + f64.const 4 + f64.div + return + end + f64.const -3 + get_global $~lib/math/NativeMath.PI + f64.mul + f64.const 4 + f64.div + return + end + else + block $break|2 + block $case3|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $8 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|2 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|2 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|2 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|2 + br $break|2 + end + f64.const 0 + return + end + f64.const -0 + return + end + get_global $~lib/math/NativeMath.PI + return + end + get_global $~lib/math/NativeMath.PI + f64.neg + return + end + end + end + get_local $4 + i32.const 64 + i32.const 20 + i32.shl + i32.add + get_local $6 + i32.lt_u + tee_local $2 + if (result i32) + get_local $2 + else + get_local $6 + i32.const 2146435072 + i32.eq + end + if + get_local $8 + i32.const 1 + i32.and + if (result f64) + get_global $~lib/math/NativeMath.PI + f64.neg + f64.const 2 + f64.div + else + get_global $~lib/math/NativeMath.PI + f64.const 2 + f64.div + end + return + end + get_local $8 + i32.const 2 + i32.and + tee_local $2 + if (result i32) + get_local $6 + i32.const 64 + i32.const 20 + i32.shl + i32.add + get_local $4 + i32.lt_u + else + get_local $2 + end + if + f64.const 0 + set_local $9 + else + get_local $0 + get_local $1 + f64.div + f64.abs + call $~lib/math/NativeMath.atan + set_local $9 + end + block $break|3 + block $case3|3 + block $case2|3 + block $case1|3 + block $case0|3 + get_local $8 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|3 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|3 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|3 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|3 + br $break|3 + end + get_local $9 + return + end + get_local $9 + f64.neg + return + end + get_global $~lib/math/NativeMath.PI + get_local $9 + f64.const 1.2246467991473532e-16 + f64.sub + f64.sub + return + end + get_local $9 + f64.const 1.2246467991473532e-16 + f64.sub + get_global $~lib/math/NativeMath.PI + f64.sub + return + end + unreachable + f64.const 0 ) (func $std/math/test_atan2 (; 79 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) - (if (result i32) - (tee_local $5 - (call $std/math/check - (call $~lib/math/NativeMath.atan2 - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (if (result i32) - (tee_local $5 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $5) - (call $std/math/check - (call $~lib/bindings/Math/atan2 - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (get_local $5) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.atan2 + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + tee_local $5 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $5 + if (result i32) + get_local $5 + else + get_local $0 + get_local $1 + call $~lib/bindings/Math/atan2 + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + end + else + get_local $5 + end ) (func $~lib/math/NativeMathf.atan2 (; 80 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) @@ -4982,439 +3592,328 @@ (local $4 i32) (local $5 i32) (local $6 f32) - (if - (if (result i32) - (tee_local $2 - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - (get_local $2) - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - (return - (f32.add - (get_local $1) - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $4 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1065353216) - ) - (return - (call $~lib/math/NativeMathf.atan - (get_local $0) - ) - ) - ) - (set_local $5 - (i32.or - (i32.and - (i32.shr_u - (get_local $4) - (i32.const 31) - ) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (get_local $3) - (i32.const 30) - ) - (i32.const 2) - ) - ) - ) - (set_local $3 - (i32.and - (get_local $3) - (i32.const 2147483647) - ) - ) - (set_local $4 - (i32.and - (get_local $4) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (block $break|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $2 - (get_local $5) - ) - (br_if $case0|0 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|0) - ) - ) - (return - (get_local $0) - ) - ) - (return - (f32.const 3.1415927410125732) - ) - ) - (return - (f32.neg - (f32.const 3.1415927410125732) - ) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 0) - ) - (return - (if (result f32) - (i32.and - (get_local $5) - (i32.const 1) - ) - (f32.div - (f32.neg - (f32.const 3.1415927410125732) - ) - (f32.const 2) - ) - (f32.div - (f32.const 3.1415927410125732) - (f32.const 2) - ) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 2139095040) - ) - (if - (i32.eq - (get_local $4) - (i32.const 2139095040) - ) - (block $break|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (block $case0|1 - (set_local $2 - (get_local $5) - ) - (br_if $case0|1 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|1 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|1 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|1 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|1) - ) - (return - (f32.div - (f32.const 3.1415927410125732) - (f32.const 4) - ) - ) - ) - (return - (f32.div - (f32.neg - (f32.const 3.1415927410125732) - ) - (f32.const 4) - ) - ) - ) - (return - (f32.div - (f32.mul - (f32.const 3) - (f32.const 3.1415927410125732) - ) - (f32.const 4) - ) - ) - ) - (return - (f32.div - (f32.mul - (f32.const -3) - (f32.const 3.1415927410125732) - ) - (f32.const 4) - ) - ) - ) - (block $break|2 - (block $case3|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $2 - (get_local $5) - ) - (br_if $case0|2 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|2 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|2) - ) - (return - (f32.const 0) - ) - ) - (return - (f32.const 0) - ) - ) - (return - (f32.const 3.1415927410125732) - ) - ) - (return - (f32.neg - (f32.const 3.1415927410125732) - ) - ) - ) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.lt_u - (i32.add - (get_local $3) - (i32.shl - (i32.const 26) - (i32.const 23) - ) - ) - (get_local $4) - ) - ) - (get_local $2) - (i32.eq - (get_local $4) - (i32.const 2139095040) - ) - ) - (return - (if (result f32) - (i32.and - (get_local $5) - (i32.const 1) - ) - (f32.div - (f32.neg - (f32.const 3.1415927410125732) - ) - (f32.const 2) - ) - (f32.div - (f32.const 3.1415927410125732) - (f32.const 2) - ) - ) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.and - (get_local $5) - (i32.const 2) - ) - ) - (i32.lt_u - (i32.add - (get_local $4) - (i32.shl - (i32.const 26) - (i32.const 23) - ) - ) - (get_local $3) - ) - (get_local $2) - ) - (set_local $6 - (f32.const 0) - ) - (set_local $6 - (call $~lib/math/NativeMathf.atan - (f32.abs - (f32.div - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (block $break|3 - (block $case3|3 - (block $case2|3 - (block $case1|3 - (block $case0|3 - (set_local $2 - (get_local $5) - ) - (br_if $case0|3 - (i32.eq - (get_local $2) - (i32.const 0) - ) - ) - (br_if $case1|3 - (i32.eq - (get_local $2) - (i32.const 1) - ) - ) - (br_if $case2|3 - (i32.eq - (get_local $2) - (i32.const 2) - ) - ) - (br_if $case3|3 - (i32.eq - (get_local $2) - (i32.const 3) - ) - ) - (br $break|3) - ) - (return - (get_local $6) - ) - ) - (return - (f32.neg - (get_local $6) - ) - ) - ) - (return - (f32.sub - (f32.const 3.1415927410125732) - (f32.sub - (get_local $6) - (f32.const -8.742277657347586e-08) - ) - ) - ) - ) - (return - (f32.sub - (f32.sub - (get_local $6) - (f32.const -8.742277657347586e-08) - ) - (f32.const 3.1415927410125732) - ) - ) - ) - (unreachable) - (f32.const 0) + get_local $1 + call $~lib/builtins/isNaN + tee_local $2 + if (result i32) + get_local $2 + else + get_local $0 + call $~lib/builtins/isNaN + end + if + get_local $1 + get_local $0 + f32.add + return + end + get_local $1 + i32.reinterpret/f32 + set_local $3 + get_local $0 + i32.reinterpret/f32 + set_local $4 + get_local $3 + i32.const 1065353216 + i32.eq + if + get_local $0 + call $~lib/math/NativeMathf.atan + return + end + get_local $4 + i32.const 31 + i32.shr_u + i32.const 1 + i32.and + get_local $3 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + i32.or + set_local $5 + get_local $3 + i32.const 2147483647 + i32.and + set_local $3 + get_local $4 + i32.const 2147483647 + i32.and + set_local $4 + get_local $4 + i32.const 0 + i32.eq + if + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $5 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|0 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|0 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|0 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|0 + br $break|0 + end + end + get_local $0 + return + end + f32.const 3.1415927410125732 + return + end + f32.const 3.1415927410125732 + f32.neg + return + end + end + get_local $3 + i32.const 0 + i32.eq + if + get_local $5 + i32.const 1 + i32.and + if (result f32) + f32.const 3.1415927410125732 + f32.neg + f32.const 2 + f32.div + else + f32.const 3.1415927410125732 + f32.const 2 + f32.div + end + return + end + get_local $3 + i32.const 2139095040 + i32.eq + if + get_local $4 + i32.const 2139095040 + i32.eq + if + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + get_local $5 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|1 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|1 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|1 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|1 + br $break|1 + end + f32.const 3.1415927410125732 + f32.const 4 + f32.div + return + end + f32.const 3.1415927410125732 + f32.neg + f32.const 4 + f32.div + return + end + f32.const 3 + f32.const 3.1415927410125732 + f32.mul + f32.const 4 + f32.div + return + end + f32.const -3 + f32.const 3.1415927410125732 + f32.mul + f32.const 4 + f32.div + return + end + else + block $break|2 + block $case3|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $5 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|2 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|2 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|2 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|2 + br $break|2 + end + f32.const 0 + return + end + f32.const 0 + return + end + f32.const 3.1415927410125732 + return + end + f32.const 3.1415927410125732 + f32.neg + return + end + end + end + get_local $3 + i32.const 26 + i32.const 23 + i32.shl + i32.add + get_local $4 + i32.lt_u + tee_local $2 + if (result i32) + get_local $2 + else + get_local $4 + i32.const 2139095040 + i32.eq + end + if + get_local $5 + i32.const 1 + i32.and + if (result f32) + f32.const 3.1415927410125732 + f32.neg + f32.const 2 + f32.div + else + f32.const 3.1415927410125732 + f32.const 2 + f32.div + end + return + end + get_local $5 + i32.const 2 + i32.and + tee_local $2 + if (result i32) + get_local $4 + i32.const 26 + i32.const 23 + i32.shl + i32.add + get_local $3 + i32.lt_u + else + get_local $2 + end + if + f32.const 0 + set_local $6 + else + get_local $0 + get_local $1 + f32.div + f32.abs + call $~lib/math/NativeMathf.atan + set_local $6 + end + block $break|3 + block $case3|3 + block $case2|3 + block $case1|3 + block $case0|3 + get_local $5 + set_local $2 + get_local $2 + i32.const 0 + i32.eq + br_if $case0|3 + get_local $2 + i32.const 1 + i32.eq + br_if $case1|3 + get_local $2 + i32.const 2 + i32.eq + br_if $case2|3 + get_local $2 + i32.const 3 + i32.eq + br_if $case3|3 + br $break|3 + end + get_local $6 + return + end + get_local $6 + f32.neg + return + end + f32.const 3.1415927410125732 + get_local $6 + f32.const -8.742277657347586e-08 + f32.sub + f32.sub + return + end + get_local $6 + f32.const -8.742277657347586e-08 + f32.sub + f32.const 3.1415927410125732 + f32.sub + return + end + unreachable + f32.const 0 ) (func $std/math/test_atan2f (; 81 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.atan2 - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.atan2 + get_local $2 + get_local $3 + get_local $4 + call $std/math/check ) (func $~lib/math/NativeMath.cbrt (; 82 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -5423,474 +3922,335 @@ (local $4 f64) (local $5 f64) (local $6 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.and - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (f64.add - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1048576) - ) - (block - (set_local $1 - (i64.reinterpret/f64 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - ) - (set_local $2 - (i32.and - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (set_local $2 - (i32.add - (i32.div_u - (get_local $2) - (i32.const 3) - ) - (i32.const 696219795) - ) - ) - ) - (set_local $2 - (i32.add - (i32.div_u - (get_local $2) - (i32.const 3) - ) - (i32.const 715094163) - ) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.shl - (i64.const 1) - (i64.const 63) - ) - ) - ) - (set_local $1 - (i64.or - (get_local $1) - (i64.shl - (i64.extend_u/i32 - (get_local $2) - ) - (i64.const 32) - ) - ) - ) - (set_local $3 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $4 - (f64.mul - (f64.mul - (get_local $3) - (get_local $3) - ) - (f64.div - (get_local $3) - (get_local $0) - ) - ) - ) - (set_local $3 - (f64.mul - (get_local $3) - (f64.add - (f64.add - (f64.const 1.87595182427177) - (f64.mul - (get_local $4) - (f64.add - (f64.const -1.8849797954337717) - (f64.mul - (get_local $4) - (f64.const 1.6214297201053545) - ) - ) - ) - ) - (f64.mul - (f64.mul - (f64.mul - (get_local $4) - (get_local $4) - ) - (get_local $4) - ) - (f64.add - (f64.const -0.758397934778766) - (f64.mul - (get_local $4) - (f64.const 0.14599619288661245) - ) - ) - ) - ) - ) - ) - (set_local $3 - (f64.reinterpret/i64 - (i64.and - (i64.add - (i64.reinterpret/f64 - (get_local $3) - ) - (i64.const 2147483648) - ) - (i64.const -1073741824) - ) - ) - ) - (set_local $5 - (f64.mul - (get_local $3) - (get_local $3) - ) - ) - (set_local $4 - (f64.div - (get_local $0) - (get_local $5) - ) - ) - (set_local $6 - (f64.add - (get_local $3) - (get_local $3) - ) - ) - (set_local $4 - (f64.div - (f64.sub - (get_local $4) - (get_local $3) - ) - (f64.add - (get_local $6) - (get_local $4) - ) - ) - ) - (set_local $3 - (f64.add - (get_local $3) - (f64.mul - (get_local $3) - (get_local $4) - ) - ) - ) - (get_local $3) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + get_local $0 + f64.add + return + end + get_local $2 + i32.const 1048576 + i32.lt_u + if + get_local $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 0 + i32.eq + if + get_local $0 + return + end + get_local $2 + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add + set_local $2 + else + get_local $2 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add + set_local $2 + end + get_local $1 + i64.const 1 + i64.const 63 + i64.shl + i64.and + set_local $1 + get_local $1 + get_local $2 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $3 + get_local $3 + get_local $3 + f64.mul + get_local $3 + get_local $0 + f64.div + f64.mul + set_local $4 + get_local $3 + f64.const 1.87595182427177 + get_local $4 + f64.const -1.8849797954337717 + get_local $4 + f64.const 1.6214297201053545 + f64.mul + f64.add + f64.mul + f64.add + get_local $4 + get_local $4 + f64.mul + get_local $4 + f64.mul + f64.const -0.758397934778766 + get_local $4 + f64.const 0.14599619288661245 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $3 + get_local $3 + i64.reinterpret/f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret/i64 + set_local $3 + get_local $3 + get_local $3 + f64.mul + set_local $5 + get_local $0 + get_local $5 + f64.div + set_local $4 + get_local $3 + get_local $3 + f64.add + set_local $6 + get_local $4 + get_local $3 + f64.sub + get_local $6 + get_local $4 + f64.add + f64.div + set_local $4 + get_local $3 + get_local $3 + get_local $4 + f64.mul + f64.add + set_local $3 + get_local $3 ) (func $std/math/test_cbrt (; 83 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.cbrt - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/cbrt - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.cbrt + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/cbrt + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.cbrt (; 84 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) (local $4 f64) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2139095040) - ) - (return - (f32.add - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 8388608) - ) - (block - (if - (i32.eq - (get_local $2) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (set_local $1 - (i32.reinterpret/f32 - (f32.mul - (get_local $0) - (f32.const 16777216) - ) - ) - ) - (set_local $2 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (set_local $2 - (i32.add - (i32.div_u - (get_local $2) - (i32.const 3) - ) - (i32.const 642849266) - ) - ) - ) - (set_local $2 - (i32.add - (i32.div_u - (get_local $2) - (i32.const 3) - ) - (i32.const 709958130) - ) - ) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const -2147483648) - ) - ) - (set_local $1 - (i32.or - (get_local $1) - (get_local $2) - ) - ) - (set_local $3 - (f64.promote/f32 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - ) - (set_local $4 - (f64.mul - (f64.mul - (get_local $3) - (get_local $3) - ) - (get_local $3) - ) - ) - (set_local $3 - (f64.div - (f64.mul - (get_local $3) - (f64.add - (f64.add - (f64.promote/f32 - (get_local $0) - ) - (f64.promote/f32 - (get_local $0) - ) - ) - (get_local $4) - ) - ) - (f64.add - (f64.add - (f64.promote/f32 - (get_local $0) - ) - (get_local $4) - ) - (get_local $4) - ) - ) - ) - (set_local $4 - (f64.mul - (f64.mul - (get_local $3) - (get_local $3) - ) - (get_local $3) - ) - ) - (set_local $3 - (f64.div - (f64.mul - (get_local $3) - (f64.add - (f64.add - (f64.promote/f32 - (get_local $0) - ) - (f64.promote/f32 - (get_local $0) - ) - ) - (get_local $4) - ) - ) - (f64.add - (f64.add - (f64.promote/f32 - (get_local $0) - ) - (get_local $4) - ) - (get_local $4) - ) - ) - ) - (f32.demote/f64 - (get_local $3) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 2139095040 + i32.ge_u + if + get_local $0 + get_local $0 + f32.add + return + end + get_local $2 + i32.const 8388608 + i32.lt_u + if + get_local $2 + i32.const 0 + i32.eq + if + get_local $0 + return + end + get_local $0 + f32.const 16777216 + f32.mul + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $2 + get_local $2 + i32.const 3 + i32.div_u + i32.const 642849266 + i32.add + set_local $2 + else + get_local $2 + i32.const 3 + i32.div_u + i32.const 709958130 + i32.add + set_local $2 + end + get_local $1 + i32.const -2147483648 + i32.and + set_local $1 + get_local $1 + get_local $2 + i32.or + set_local $1 + get_local $1 + f32.reinterpret/i32 + f64.promote/f32 + set_local $3 + get_local $3 + get_local $3 + f64.mul + get_local $3 + f64.mul + set_local $4 + get_local $3 + get_local $0 + f64.promote/f32 + get_local $0 + f64.promote/f32 + f64.add + get_local $4 + f64.add + f64.mul + get_local $0 + f64.promote/f32 + get_local $4 + f64.add + get_local $4 + f64.add + f64.div + set_local $3 + get_local $3 + get_local $3 + f64.mul + get_local $3 + f64.mul + set_local $4 + get_local $3 + get_local $0 + f64.promote/f32 + get_local $0 + f64.promote/f32 + f64.add + get_local $4 + f64.add + f64.mul + get_local $0 + f64.promote/f32 + get_local $4 + f64.add + get_local $4 + f64.add + f64.div + set_local $3 + get_local $3 + f32.demote/f64 ) (func $std/math/test_cbrtf (; 85 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.cbrt - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.cbrt + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $std/math/test_ceil (; 86 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (block $~lib/math/NativeMath.ceil|inlined.0 (result f64) - (f64.ceil - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/ceil - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + block $~lib/math/NativeMath.ceil|inlined.0 (result f64) + get_local $0 + f64.ceil + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/ceil + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $std/math/test_ceilf (; 87 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (block $~lib/math/NativeMathf.ceil|inlined.0 (result f32) - (f32.ceil - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $~lib/math/NativeMathf.ceil|inlined.0 (result f32) + get_local $0 + f32.ceil + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.expm1 (; 88 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -5908,429 +4268,298 @@ (local $13 f64) (local $14 f64) (local $15 i32) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.and - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - (i64.const 2147483647) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 63) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1078159482) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (if - (get_local $4) - (return - (f64.const -1) - ) - ) - (if - (f64.gt - (get_local $0) - (f64.const 709.782712893384) - ) - (return - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - ) - ) - ) - (set_local $5 - (f64.const 0) - ) - (if - (i32.gt_u - (get_local $2) - (i32.const 1071001154) - ) - (block - (set_local $3 - (select - (i32.sub - (i32.const 1) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (i32.trunc_s/f64 - (f64.add - (f64.mul - (f64.const 1.4426950408889634) - (get_local $0) - ) - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - ) - (i32.lt_u - (get_local $2) - (i32.const 1072734898) - ) - ) - ) - (set_local $6 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (set_local $7 - (f64.sub - (get_local $0) - (f64.mul - (get_local $6) - (f64.const 0.6931471803691238) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $6) - (f64.const 1.9082149292705877e-10) - ) - ) - (set_local $0 - (f64.sub - (get_local $7) - (get_local $8) - ) - ) - (set_local $5 - (f64.sub - (f64.sub - (get_local $7) - (get_local $0) - ) - (get_local $8) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1016070144) - ) - (return - (get_local $0) - ) - ) - ) - (set_local $9 - (f64.mul - (f64.const 0.5) - (get_local $0) - ) - ) - (set_local $10 - (f64.mul - (get_local $0) - (get_local $9) - ) - ) - (set_local $11 - (f64.add - (f64.const 1) - (f64.mul - (get_local $10) - (f64.add - (f64.const -0.03333333333333313) - (f64.mul - (get_local $10) - (f64.add - (f64.const 1.5873015872548146e-03) - (f64.mul - (get_local $10) - (f64.add - (f64.const -7.93650757867488e-05) - (f64.mul - (get_local $10) - (f64.add - (f64.const 4.008217827329362e-06) - (f64.mul - (get_local $10) - (f64.const -2.0109921818362437e-07) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $6 - (f64.sub - (f64.const 3) - (f64.mul - (get_local $11) - (get_local $9) - ) - ) - ) - (set_local $12 - (f64.mul - (get_local $10) - (f64.div - (f64.sub - (get_local $11) - (get_local $6) - ) - (f64.sub - (f64.const 6) - (f64.mul - (get_local $0) - (get_local $6) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 0) - ) - (return - (f64.sub - (get_local $0) - (f64.sub - (f64.mul - (get_local $0) - (get_local $12) - ) - (get_local $10) - ) - ) - ) - ) - (set_local $12 - (f64.sub - (f64.mul - (get_local $0) - (f64.sub - (get_local $12) - (get_local $5) - ) - ) - (get_local $5) - ) - ) - (set_local $12 - (f64.sub - (get_local $12) - (get_local $10) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const -1) - ) - (return - (f64.sub - (f64.mul - (f64.const 0.5) - (f64.sub - (get_local $0) - (get_local $12) - ) - ) - (f64.const 0.5) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1) - ) - (block - (if - (f64.lt - (get_local $0) - (f64.const -0.25) - ) - (return - (f64.mul - (f64.const -2) - (f64.sub - (get_local $12) - (f64.add - (get_local $0) - (f64.const 0.5) - ) - ) - ) - ) - ) - (return - (f64.add - (f64.const 1) - (f64.mul - (f64.const 2) - (f64.sub - (get_local $0) - (get_local $12) - ) - ) - ) - ) - ) - ) - (set_local $1 - (i64.shl - (i64.add - (i64.const 1023) - (i64.extend_s/i32 - (get_local $3) - ) - ) - (i64.const 52) - ) - ) - (set_local $13 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (if - (if (result i32) - (tee_local $15 - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - (get_local $15) - (i32.gt_s - (get_local $3) - (i32.const 56) - ) - ) - (block - (set_local $14 - (f64.add - (f64.sub - (get_local $0) - (get_local $12) - ) - (f64.const 1) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1024) - ) - (set_local $14 - (f64.mul - (f64.mul - (get_local $14) - (f64.const 2) - ) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $14 - (f64.mul - (get_local $14) - (get_local $13) - ) - ) - ) - (return - (f64.sub - (get_local $14) - (f64.const 1) - ) - ) - ) - ) - (set_local $1 - (i64.shl - (i64.sub - (i64.const 1023) - (i64.extend_s/i32 - (get_local $3) - ) - ) - (i64.const 52) - ) - ) - (set_local $14 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 20) - ) - (set_local $14 - (f64.sub - (f64.sub - (f64.const 1) - (get_local $14) - ) - (get_local $12) - ) - ) - (set_local $14 - (f64.sub - (f64.const 1) - (f64.add - (get_local $12) - (get_local $14) - ) - ) - ) - ) - (f64.mul - (f64.add - (get_local $0) - (get_local $14) - ) - (get_local $13) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i64.const 2147483647 + i64.and + i32.wrap/i64 + set_local $2 + i32.const 0 + set_local $3 + get_local $1 + i64.const 63 + i64.shr_u + i32.wrap/i64 + set_local $4 + get_local $2 + i32.const 1078159482 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + get_local $4 + if + f64.const -1 + return + end + get_local $0 + f64.const 709.782712893384 + f64.gt + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + return + end + end + f64.const 0 + set_local $5 + get_local $2 + i32.const 1071001154 + i32.gt_u + if + i32.const 1 + get_local $4 + i32.const 1 + i32.shl + i32.sub + f64.const 1.4426950408889634 + get_local $0 + f64.mul + f64.const 0.5 + get_local $0 + f64.copysign + f64.add + i32.trunc_s/f64 + get_local $2 + i32.const 1072734898 + i32.lt_u + select + set_local $3 + get_local $3 + f64.convert_s/i32 + set_local $6 + get_local $0 + get_local $6 + f64.const 0.6931471803691238 + f64.mul + f64.sub + set_local $7 + get_local $6 + f64.const 1.9082149292705877e-10 + f64.mul + set_local $8 + get_local $7 + get_local $8 + f64.sub + set_local $0 + get_local $7 + get_local $0 + f64.sub + get_local $8 + f64.sub + set_local $5 + else + get_local $2 + i32.const 1016070144 + i32.lt_u + if + get_local $0 + return + end + end + f64.const 0.5 + get_local $0 + f64.mul + set_local $9 + get_local $0 + get_local $9 + f64.mul + set_local $10 + f64.const 1 + get_local $10 + f64.const -0.03333333333333313 + get_local $10 + f64.const 1.5873015872548146e-03 + get_local $10 + f64.const -7.93650757867488e-05 + get_local $10 + f64.const 4.008217827329362e-06 + get_local $10 + f64.const -2.0109921818362437e-07 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + set_local $11 + f64.const 3 + get_local $11 + get_local $9 + f64.mul + f64.sub + set_local $6 + get_local $10 + get_local $11 + get_local $6 + f64.sub + f64.const 6 + get_local $0 + get_local $6 + f64.mul + f64.sub + f64.div + f64.mul + set_local $12 + get_local $3 + i32.const 0 + i32.eq + if + get_local $0 + get_local $0 + get_local $12 + f64.mul + get_local $10 + f64.sub + f64.sub + return + end + get_local $0 + get_local $12 + get_local $5 + f64.sub + f64.mul + get_local $5 + f64.sub + set_local $12 + get_local $12 + get_local $10 + f64.sub + set_local $12 + get_local $3 + i32.const -1 + i32.eq + if + f64.const 0.5 + get_local $0 + get_local $12 + f64.sub + f64.mul + f64.const 0.5 + f64.sub + return + end + get_local $3 + i32.const 1 + i32.eq + if + get_local $0 + f64.const -0.25 + f64.lt + if + f64.const -2 + get_local $12 + get_local $0 + f64.const 0.5 + f64.add + f64.sub + f64.mul + return + end + f64.const 1 + f64.const 2 + get_local $0 + get_local $12 + f64.sub + f64.mul + f64.add + return + end + i64.const 1023 + get_local $3 + i64.extend_s/i32 + i64.add + i64.const 52 + i64.shl + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $13 + get_local $3 + i32.const 0 + i32.lt_s + tee_local $15 + if (result i32) + get_local $15 + else + get_local $3 + i32.const 56 + i32.gt_s + end + if + get_local $0 + get_local $12 + f64.sub + f64.const 1 + f64.add + set_local $14 + get_local $3 + i32.const 1024 + i32.eq + if + get_local $14 + f64.const 2 + f64.mul + f64.const 8988465674311579538646525e283 + f64.mul + set_local $14 + else + get_local $14 + get_local $13 + f64.mul + set_local $14 + end + get_local $14 + f64.const 1 + f64.sub + return + end + i64.const 1023 + get_local $3 + i64.extend_s/i32 + i64.sub + i64.const 52 + i64.shl + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $14 + get_local $3 + i32.const 20 + i32.lt_s + if + f64.const 1 + get_local $14 + f64.sub + get_local $12 + f64.sub + set_local $14 + else + f64.const 1 + get_local $12 + get_local $14 + f64.add + f64.sub + set_local $14 + end + get_local $0 + get_local $14 + f64.add + get_local $13 + f64.mul ) (func $~lib/math/NativeMath.exp (; 89 ;) (type $FF) (param $0 f64) (result f64) (local $1 i32) @@ -6341,395 +4570,277 @@ (local $6 f64) (local $7 f64) (local $8 f64) - (set_local $1 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 32) - ) - ) - ) - (set_local $2 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 1082532651) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (get_local $0) - ) - ) - (if - (f64.gt - (get_local $0) - (f64.const 709.782712893384) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (f64.lt - (get_local $0) - (f64.const -745.1332191019411) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (set_local $4 - (f64.const 0) - ) - (set_local $5 - (i32.const 0) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1071001154) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 1072734898) - ) - (set_local $5 - (i32.trunc_s/f64 - (f64.add - (f64.mul - (f64.const 1.4426950408889634) - (get_local $0) - ) - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - ) - ) - (set_local $5 - (i32.sub - (i32.const 1) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - (set_local $3 - (f64.sub - (get_local $0) - (f64.mul - (f64.convert_s/i32 - (get_local $5) - ) - (f64.const 0.6931471803691238) - ) - ) - ) - (set_local $4 - (f64.mul - (f64.convert_s/i32 - (get_local $5) - ) - (f64.const 1.9082149292705877e-10) - ) - ) - (set_local $0 - (f64.sub - (get_local $3) - (get_local $4) - ) - ) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1043333120) - ) - (set_local $3 - (get_local $0) - ) - (return - (f64.add - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (set_local $6 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - (set_local $7 - (f64.sub - (get_local $0) - (f64.mul - (get_local $6) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $6) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $6) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $6) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $6) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $8 - (f64.add - (f64.const 1) - (f64.add - (f64.sub - (f64.div - (f64.mul - (get_local $0) - (get_local $7) - ) - (f64.sub - (f64.const 2) - (get_local $7) - ) - ) - (get_local $4) - ) - (get_local $3) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 0) - ) - (return - (get_local $8) - ) - ) - (call $~lib/math/NativeMath.scalbn - (get_local $8) - (get_local $5) - ) + get_local $0 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $1 + get_local $1 + i32.const 31 + i32.shr_u + set_local $2 + get_local $1 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + i32.const 1082532651 + i32.ge_u + if + get_local $0 + call $~lib/builtins/isNaN + if + get_local $0 + return + end + get_local $0 + f64.const 709.782712893384 + f64.gt + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $0 + get_local $0 + return + end + get_local $0 + f64.const -745.1332191019411 + f64.lt + if + f64.const 0 + return + end + end + f64.const 0 + set_local $4 + i32.const 0 + set_local $5 + get_local $1 + i32.const 1071001154 + i32.gt_u + if + get_local $1 + i32.const 1072734898 + i32.ge_u + if + f64.const 1.4426950408889634 + get_local $0 + f64.mul + f64.const 0.5 + get_local $0 + f64.copysign + f64.add + i32.trunc_s/f64 + set_local $5 + else + i32.const 1 + get_local $2 + i32.const 1 + i32.shl + i32.sub + set_local $5 + end + get_local $0 + get_local $5 + f64.convert_s/i32 + f64.const 0.6931471803691238 + f64.mul + f64.sub + set_local $3 + get_local $5 + f64.convert_s/i32 + f64.const 1.9082149292705877e-10 + f64.mul + set_local $4 + get_local $3 + get_local $4 + f64.sub + set_local $0 + else + get_local $1 + i32.const 1043333120 + i32.gt_u + if + get_local $0 + set_local $3 + else + f64.const 1 + get_local $0 + f64.add + return + end + end + get_local $0 + get_local $0 + f64.mul + set_local $6 + get_local $0 + get_local $6 + f64.const 0.16666666666666602 + get_local $6 + f64.const -2.7777777777015593e-03 + get_local $6 + f64.const 6.613756321437934e-05 + get_local $6 + f64.const -1.6533902205465252e-06 + get_local $6 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + set_local $7 + f64.const 1 + get_local $0 + get_local $7 + f64.mul + f64.const 2 + get_local $7 + f64.sub + f64.div + get_local $4 + f64.sub + get_local $3 + f64.add + f64.add + set_local $8 + get_local $5 + i32.const 0 + i32.eq + if + get_local $8 + return + end + get_local $8 + get_local $5 + call $~lib/math/NativeMath.scalbn ) (func $~lib/math/NativeMath.cosh (; 90 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) (local $4 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.const 9223372036854775807) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1072049730) - ) - (block - (if - (i32.lt_u - (get_local $2) - (i32.sub - (i32.const 1072693248) - (i32.shl - (i32.const 26) - (i32.const 20) - ) - ) - ) - (return - (f64.const 1) - ) - ) - (set_local $3 - (call $~lib/math/NativeMath.expm1 - (get_local $0) - ) - ) - (return - (f64.add - (f64.const 1) - (f64.div - (f64.mul - (get_local $3) - (get_local $3) - ) - (f64.add - (f64.const 2) - (f64.mul - (f64.const 2) - (get_local $3) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 1082535490) - ) - (block - (set_local $3 - (call $~lib/math/NativeMath.exp - (get_local $0) - ) - ) - (return - (f64.mul - (f64.const 0.5) - (f64.add - (get_local $3) - (f64.div - (f64.const 1) - (get_local $3) - ) - ) - ) - ) - ) - ) - (set_local $3 - (block $~lib/math/expo2|inlined.0 (result f64) - (set_local $4 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_u/i32 - (i32.shl - (i32.add - (i32.const 1023) - (i32.div_u - (i32.const 2043) - (i32.const 2) - ) - ) - (i32.const 20) - ) - ) - (i64.const 32) - ) - ) - ) - (f64.mul - (f64.mul - (call $~lib/math/NativeMath.exp - (f64.sub - (get_local $0) - (f64.const 1416.0996898839683) - ) - ) - (get_local $4) - ) - (get_local $4) - ) - ) - ) - (get_local $3) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 9223372036854775807 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $0 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + get_local $2 + i32.const 1072049730 + i32.lt_u + if + get_local $2 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub + i32.lt_u + if + f64.const 1 + return + end + get_local $0 + call $~lib/math/NativeMath.expm1 + set_local $3 + f64.const 1 + get_local $3 + get_local $3 + f64.mul + f64.const 2 + f64.const 2 + get_local $3 + f64.mul + f64.add + f64.div + f64.add + return + end + get_local $2 + i32.const 1082535490 + i32.lt_u + if + get_local $0 + call $~lib/math/NativeMath.exp + set_local $3 + f64.const 0.5 + get_local $3 + f64.const 1 + get_local $3 + f64.div + f64.add + f64.mul + return + end + block $~lib/math/expo2|inlined.0 (result f64) + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_u/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $4 + get_local $0 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + get_local $4 + f64.mul + get_local $4 + f64.mul + end + set_local $3 + get_local $3 ) (func $std/math/test_cosh (; 91 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.cosh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/cosh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.cosh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/cosh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.expm1 (; 92 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) @@ -6747,406 +4858,284 @@ (local $13 f32) (local $14 f32) (local $15 i32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (set_local $3 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 1100331076) - ) - (block - (if - (i32.gt_u - (get_local $2) - (i32.const 2139095040) - ) - (return - (get_local $0) - ) - ) - (if - (get_local $3) - (return - (f32.const -1) - ) - ) - (if - (f32.gt - (get_local $0) - (f32.const 88.7216796875) - ) - (block - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 1701411834604692317316873e14) - ) - ) - (return - (get_local $0) - ) - ) - ) - ) - ) - (set_local $4 - (f32.const 0) - ) - (if - (i32.gt_u - (get_local $2) - (i32.const 1051816472) - ) - (block - (set_local $6 - (select - (i32.sub - (i32.const 1) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.trunc_s/f32 - (f32.add - (f32.mul - (f32.const 1.4426950216293335) - (get_local $0) - ) - (f32.copysign - (f32.const 0.5) - (get_local $0) - ) - ) - ) - (i32.lt_u - (get_local $2) - (i32.const 1065686418) - ) - ) - ) - (set_local $5 - (f32.convert_s/i32 - (get_local $6) - ) - ) - (set_local $7 - (f32.sub - (get_local $0) - (f32.mul - (get_local $5) - (f32.const 0.6931381225585938) - ) - ) - ) - (set_local $8 - (f32.mul - (get_local $5) - (f32.const 9.05800061445916e-06) - ) - ) - (set_local $0 - (f32.sub - (get_local $7) - (get_local $8) - ) - ) - (set_local $4 - (f32.sub - (f32.sub - (get_local $7) - (get_local $0) - ) - (get_local $8) - ) - ) - ) - (if - (i32.lt_u - (get_local $2) - (i32.const 855638016) - ) - (return - (get_local $0) - ) - (set_local $6 - (i32.const 0) - ) - ) - ) - (set_local $9 - (f32.mul - (f32.const 0.5) - (get_local $0) - ) - ) - (set_local $10 - (f32.mul - (get_local $0) - (get_local $9) - ) - ) - (set_local $11 - (f32.add - (f32.const 1) - (f32.mul - (get_local $10) - (f32.add - (f32.const -0.03333321213722229) - (f32.mul - (get_local $10) - (f32.const 1.5807170420885086e-03) - ) - ) - ) - ) - ) - (set_local $5 - (f32.sub - (f32.const 3) - (f32.mul - (get_local $11) - (get_local $9) - ) - ) - ) - (set_local $12 - (f32.mul - (get_local $10) - (f32.div - (f32.sub - (get_local $11) - (get_local $5) - ) - (f32.sub - (f32.const 6) - (f32.mul - (get_local $0) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 0) - ) - (return - (f32.sub - (get_local $0) - (f32.sub - (f32.mul - (get_local $0) - (get_local $12) - ) - (get_local $10) - ) - ) - ) - ) - (set_local $12 - (f32.sub - (f32.mul - (get_local $0) - (f32.sub - (get_local $12) - (get_local $4) - ) - ) - (get_local $4) - ) - ) - (set_local $12 - (f32.sub - (get_local $12) - (get_local $10) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const -1) - ) - (return - (f32.sub - (f32.mul - (f32.const 0.5) - (f32.sub - (get_local $0) - (get_local $12) - ) - ) - (f32.const 0.5) - ) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 1) - ) - (block - (if - (f32.lt - (get_local $0) - (f32.const -0.25) - ) - (return - (f32.mul - (f32.const -2) - (f32.sub - (get_local $12) - (f32.add - (get_local $0) - (f32.const 0.5) - ) - ) - ) - ) - ) - (return - (f32.add - (f32.const 1) - (f32.mul - (f32.const 2) - (f32.sub - (get_local $0) - (get_local $12) - ) - ) - ) - ) - ) - ) - (set_local $1 - (i32.shl - (i32.add - (i32.const 127) - (get_local $6) - ) - (i32.const 23) - ) - ) - (set_local $13 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (if - (if (result i32) - (tee_local $15 - (i32.lt_s - (get_local $6) - (i32.const 0) - ) - ) - (get_local $15) - (i32.gt_s - (get_local $6) - (i32.const 56) - ) - ) - (block - (set_local $14 - (f32.add - (f32.sub - (get_local $0) - (get_local $12) - ) - (f32.const 1) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 128) - ) - (set_local $14 - (f32.mul - (f32.mul - (get_local $14) - (f32.const 2) - ) - (f32.const 1701411834604692317316873e14) - ) - ) - (set_local $14 - (f32.mul - (get_local $14) - (get_local $13) - ) - ) - ) - (return - (f32.sub - (get_local $14) - (f32.const 1) - ) - ) - ) - ) - (set_local $1 - (i32.shl - (i32.sub - (i32.const 127) - (get_local $6) - ) - (i32.const 23) - ) - ) - (set_local $14 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (if - (i32.lt_s - (get_local $6) - (i32.const 20) - ) - (set_local $14 - (f32.sub - (f32.sub - (f32.const 1) - (get_local $14) - ) - (get_local $12) - ) - ) - (set_local $14 - (f32.sub - (f32.const 1) - (f32.add - (get_local $12) - (get_local $14) - ) - ) - ) - ) - (f32.mul - (f32.add - (get_local $0) - (get_local $14) - ) - (get_local $13) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $2 + get_local $1 + i32.const 31 + i32.shr_u + set_local $3 + get_local $2 + i32.const 1100331076 + i32.ge_u + if + get_local $2 + i32.const 2139095040 + i32.gt_u + if + get_local $0 + return + end + get_local $3 + if + f32.const -1 + return + end + get_local $0 + f32.const 88.7216796875 + f32.gt + if + get_local $0 + f32.const 1701411834604692317316873e14 + f32.mul + set_local $0 + get_local $0 + return + end + end + f32.const 0 + set_local $4 + get_local $2 + i32.const 1051816472 + i32.gt_u + if + i32.const 1 + get_local $3 + i32.const 1 + i32.shl + i32.sub + f32.const 1.4426950216293335 + get_local $0 + f32.mul + f32.const 0.5 + get_local $0 + f32.copysign + f32.add + i32.trunc_s/f32 + get_local $2 + i32.const 1065686418 + i32.lt_u + select + set_local $6 + get_local $6 + f32.convert_s/i32 + set_local $5 + get_local $0 + get_local $5 + f32.const 0.6931381225585938 + f32.mul + f32.sub + set_local $7 + get_local $5 + f32.const 9.05800061445916e-06 + f32.mul + set_local $8 + get_local $7 + get_local $8 + f32.sub + set_local $0 + get_local $7 + get_local $0 + f32.sub + get_local $8 + f32.sub + set_local $4 + else + get_local $2 + i32.const 855638016 + i32.lt_u + if + get_local $0 + return + else + i32.const 0 + set_local $6 + end + end + f32.const 0.5 + get_local $0 + f32.mul + set_local $9 + get_local $0 + get_local $9 + f32.mul + set_local $10 + f32.const 1 + get_local $10 + f32.const -0.03333321213722229 + get_local $10 + f32.const 1.5807170420885086e-03 + f32.mul + f32.add + f32.mul + f32.add + set_local $11 + f32.const 3 + get_local $11 + get_local $9 + f32.mul + f32.sub + set_local $5 + get_local $10 + get_local $11 + get_local $5 + f32.sub + f32.const 6 + get_local $0 + get_local $5 + f32.mul + f32.sub + f32.div + f32.mul + set_local $12 + get_local $6 + i32.const 0 + i32.eq + if + get_local $0 + get_local $0 + get_local $12 + f32.mul + get_local $10 + f32.sub + f32.sub + return + end + get_local $0 + get_local $12 + get_local $4 + f32.sub + f32.mul + get_local $4 + f32.sub + set_local $12 + get_local $12 + get_local $10 + f32.sub + set_local $12 + get_local $6 + i32.const -1 + i32.eq + if + f32.const 0.5 + get_local $0 + get_local $12 + f32.sub + f32.mul + f32.const 0.5 + f32.sub + return + end + get_local $6 + i32.const 1 + i32.eq + if + get_local $0 + f32.const -0.25 + f32.lt + if + f32.const -2 + get_local $12 + get_local $0 + f32.const 0.5 + f32.add + f32.sub + f32.mul + return + end + f32.const 1 + f32.const 2 + get_local $0 + get_local $12 + f32.sub + f32.mul + f32.add + return + end + i32.const 127 + get_local $6 + i32.add + i32.const 23 + i32.shl + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $13 + get_local $6 + i32.const 0 + i32.lt_s + tee_local $15 + if (result i32) + get_local $15 + else + get_local $6 + i32.const 56 + i32.gt_s + end + if + get_local $0 + get_local $12 + f32.sub + f32.const 1 + f32.add + set_local $14 + get_local $6 + i32.const 128 + i32.eq + if + get_local $14 + f32.const 2 + f32.mul + f32.const 1701411834604692317316873e14 + f32.mul + set_local $14 + else + get_local $14 + get_local $13 + f32.mul + set_local $14 + end + get_local $14 + f32.const 1 + f32.sub + return + end + i32.const 127 + get_local $6 + i32.sub + i32.const 23 + i32.shl + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $14 + get_local $6 + i32.const 20 + i32.lt_s + if + f32.const 1 + get_local $14 + f32.sub + get_local $12 + f32.sub + set_local $14 + else + f32.const 1 + get_local $12 + get_local $14 + f32.add + f32.sub + set_local $14 + end + get_local $0 + get_local $14 + f32.add + get_local $13 + f32.mul ) (func $~lib/math/NativeMathf.exp (; 93 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) @@ -7157,459 +5146,339 @@ (local $6 f32) (local $7 f32) (local $8 f32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 1118743632) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 1118925336) - ) - (if - (i32.eqz - (get_local $2) - ) - (block - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 1701411834604692317316873e14) - ) - ) - (return - (get_local $0) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 1120924085) - ) - (return - (f32.const 0) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1051816472) - ) - (block - (if - (i32.gt_u - (get_local $1) - (i32.const 1065686418) - ) - (set_local $5 - (i32.trunc_s/f32 - (f32.add - (f32.mul - (f32.const 1.4426950216293335) - (get_local $0) - ) - (f32.copysign - (f32.const 0.5) - (get_local $0) - ) - ) - ) - ) - (set_local $5 - (i32.sub - (i32.const 1) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - (set_local $3 - (f32.sub - (get_local $0) - (f32.mul - (f32.convert_s/i32 - (get_local $5) - ) - (f32.const 0.693145751953125) - ) - ) - ) - (set_local $4 - (f32.mul - (f32.convert_s/i32 - (get_local $5) - ) - (f32.const 1.428606765330187e-06) - ) - ) - (set_local $0 - (f32.sub - (get_local $3) - (get_local $4) - ) - ) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 956301312) - ) - (block - (set_local $5 - (i32.const 0) - ) - (set_local $3 - (get_local $0) - ) - (set_local $4 - (f32.const 0) - ) - ) - (return - (f32.add - (f32.const 1) - (get_local $0) - ) - ) - ) - ) - (set_local $6 - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - (set_local $7 - (f32.sub - (get_local $0) - (f32.mul - (get_local $6) - (f32.add - (f32.const 0.16666625440120697) - (f32.mul - (get_local $6) - (f32.const -2.7667332906275988e-03) - ) - ) - ) - ) - ) - (set_local $8 - (f32.add - (f32.const 1) - (f32.add - (f32.sub - (f32.div - (f32.mul - (get_local $0) - (get_local $7) - ) - (f32.sub - (f32.const 2) - (get_local $7) - ) - ) - (get_local $4) - ) - (get_local $3) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 0) - ) - (return - (get_local $8) - ) - ) - (call $~lib/math/NativeMathf.scalbn - (get_local $8) - (get_local $5) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const 31 + i32.shr_u + set_local $2 + get_local $1 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + i32.const 1118743632 + i32.ge_u + if + get_local $1 + i32.const 1118925336 + i32.ge_u + if + get_local $2 + i32.eqz + if + get_local $0 + f32.const 1701411834604692317316873e14 + f32.mul + set_local $0 + get_local $0 + return + else + get_local $1 + i32.const 1120924085 + i32.ge_u + if + f32.const 0 + return + end + end + end + end + get_local $1 + i32.const 1051816472 + i32.gt_u + if + get_local $1 + i32.const 1065686418 + i32.gt_u + if + f32.const 1.4426950216293335 + get_local $0 + f32.mul + f32.const 0.5 + get_local $0 + f32.copysign + f32.add + i32.trunc_s/f32 + set_local $5 + else + i32.const 1 + get_local $2 + i32.const 1 + i32.shl + i32.sub + set_local $5 + end + get_local $0 + get_local $5 + f32.convert_s/i32 + f32.const 0.693145751953125 + f32.mul + f32.sub + set_local $3 + get_local $5 + f32.convert_s/i32 + f32.const 1.428606765330187e-06 + f32.mul + set_local $4 + get_local $3 + get_local $4 + f32.sub + set_local $0 + else + get_local $1 + i32.const 956301312 + i32.gt_u + if + i32.const 0 + set_local $5 + get_local $0 + set_local $3 + f32.const 0 + set_local $4 + else + f32.const 1 + get_local $0 + f32.add + return + end + end + get_local $0 + get_local $0 + f32.mul + set_local $6 + get_local $0 + get_local $6 + f32.const 0.16666625440120697 + get_local $6 + f32.const -2.7667332906275988e-03 + f32.mul + f32.add + f32.mul + f32.sub + set_local $7 + f32.const 1 + get_local $0 + get_local $7 + f32.mul + f32.const 2 + get_local $7 + f32.sub + f32.div + get_local $4 + f32.sub + get_local $3 + f32.add + f32.add + set_local $8 + get_local $5 + i32.const 0 + i32.eq + if + get_local $8 + return + end + get_local $8 + get_local $5 + call $~lib/math/NativeMathf.scalbn ) (func $~lib/math/NativeMathf.cosh (; 94 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (set_local $0 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1060205079) - ) - (block - (if - (i32.lt_u - (get_local $1) - (i32.sub - (i32.const 1065353216) - (i32.shl - (i32.const 12) - (i32.const 23) - ) - ) - ) - (return - (f32.const 1) - ) - ) - (set_local $2 - (call $~lib/math/NativeMathf.expm1 - (get_local $0) - ) - ) - (return - (f32.add - (f32.const 1) - (f32.div - (f32.mul - (get_local $2) - (get_local $2) - ) - (f32.add - (f32.const 2) - (f32.mul - (f32.const 2) - (get_local $2) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1118925335) - ) - (block - (set_local $2 - (call $~lib/math/NativeMathf.exp - (get_local $0) - ) - ) - (return - (f32.add - (f32.mul - (f32.const 0.5) - (get_local $2) - ) - (f32.div - (f32.const 0.5) - (get_local $2) - ) - ) - ) - ) - ) - (block $~lib/math/expo2f|inlined.0 (result f32) - (set_local $2 - (f32.reinterpret/i32 - (i32.shl - (i32.add - (i32.const 127) - (i32.div_u - (i32.const 235) - (i32.const 2) - ) - ) - (i32.const 23) - ) - ) - ) - (f32.mul - (f32.mul - (call $~lib/math/NativeMathf.exp - (f32.sub - (get_local $0) - (f32.const 162.88958740234375) - ) - ) - (get_local $2) - ) - (get_local $2) - ) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $0 + get_local $1 + i32.const 1060205079 + i32.lt_u + if + get_local $1 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub + i32.lt_u + if + f32.const 1 + return + end + get_local $0 + call $~lib/math/NativeMathf.expm1 + set_local $2 + f32.const 1 + get_local $2 + get_local $2 + f32.mul + f32.const 2 + f32.const 2 + get_local $2 + f32.mul + f32.add + f32.div + f32.add + return + end + get_local $1 + i32.const 1118925335 + i32.lt_u + if + get_local $0 + call $~lib/math/NativeMathf.exp + set_local $2 + f32.const 0.5 + get_local $2 + f32.mul + f32.const 0.5 + get_local $2 + f32.div + f32.add + return + end + block $~lib/math/expo2f|inlined.0 (result f32) + i32.const 127 + i32.const 235 + i32.const 2 + i32.div_u + i32.add + i32.const 23 + i32.shl + f32.reinterpret/i32 + set_local $2 + get_local $0 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + get_local $2 + f32.mul + get_local $2 + f32.mul + end ) (func $std/math/test_coshf (; 95 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.cosh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.cosh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $std/math/test_exp (; 96 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.exp - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/exp - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.exp + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/exp + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $std/math/test_expf (; 97 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.exp - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.exp + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $std/math/test_expm1 (; 98 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.expm1 - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/expm1 - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.expm1 + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/expm1 + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $std/math/test_expm1f (; 99 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.expm1 - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.expm1 + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $std/math/test_floor (; 100 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (block $~lib/math/NativeMath.floor|inlined.0 (result f64) - (f64.floor - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/floor - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + block $~lib/math/NativeMath.floor|inlined.0 (result f64) + get_local $0 + f64.floor + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/floor + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $std/math/test_floorf (; 101 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (block $~lib/math/NativeMathf.floor|inlined.0 (result f32) - (f32.floor - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $~lib/math/NativeMathf.floor|inlined.0 (result f32) + get_local $0 + f32.floor + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.hypot (; 102 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -7626,558 +5495,397 @@ (local $13 f64) (local $14 f64) (local $15 f64) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $2 - (i64.and - (get_local $2) - (i64.const 9223372036854775807) - ) - ) - (set_local $3 - (i64.and - (get_local $3) - (i64.const 9223372036854775807) - ) - ) - (if - (i64.lt_u - (get_local $2) - (get_local $3) - ) - (block - (set_local $4 - (get_local $2) - ) - (set_local $2 - (get_local $3) - ) - (set_local $3 - (get_local $4) - ) - ) - ) - (set_local $5 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 52) - ) - ) - ) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.const 52) - ) - ) - ) - (set_local $1 - (f64.reinterpret/i64 - (get_local $3) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 2047) - ) - (return - (get_local $1) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $2) - ) - ) - (if - (if (result i32) - (tee_local $7 - (i32.eq - (get_local $5) - (i32.const 2047) - ) - ) - (get_local $7) - (i64.eq - (get_local $3) - (i64.const 0) - ) - ) - (return - (get_local $0) - ) - ) - (if - (i32.gt_s - (i32.sub - (get_local $5) - (get_local $6) - ) - (i32.const 64) - ) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $8 - (f64.const 1) - ) - (if - (i32.gt_s - (get_local $5) - (i32.add - (i32.const 1023) - (i32.const 510) - ) - ) - (block - (set_local $8 - (f64.const 5260135901548373507240989e186) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 1.90109156629516e-211) - ) - ) - (set_local $1 - (f64.mul - (get_local $1) - (f64.const 1.90109156629516e-211) - ) - ) - ) - (if - (i32.lt_s - (get_local $6) - (i32.sub - (i32.const 1023) - (i32.const 450) - ) - ) - (block - (set_local $8 - (f64.const 1.90109156629516e-211) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 5260135901548373507240989e186) - ) - ) - (set_local $1 - (f64.mul - (get_local $1) - (f64.const 5260135901548373507240989e186) - ) - ) - ) - ) - ) - (set_local $9 - (f64.mul - (get_local $0) - (f64.const 134217729) - ) - ) - (set_local $10 - (f64.add - (f64.sub - (get_local $0) - (get_local $9) - ) - (get_local $9) - ) - ) - (set_local $11 - (f64.sub - (get_local $0) - (get_local $10) - ) - ) - (set_local $12 - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - (set_local $13 - (f64.add - (f64.sub - (f64.mul - (get_local $10) - (get_local $10) - ) - (get_local $12) - ) - (f64.mul - (f64.add - (f64.mul - (f64.const 2) - (get_local $10) - ) - (get_local $11) - ) - (get_local $11) - ) - ) - ) - (set_local $9 - (f64.mul - (get_local $1) - (f64.const 134217729) - ) - ) - (set_local $10 - (f64.add - (f64.sub - (get_local $1) - (get_local $9) - ) - (get_local $9) - ) - ) - (set_local $11 - (f64.sub - (get_local $1) - (get_local $10) - ) - ) - (set_local $14 - (f64.mul - (get_local $1) - (get_local $1) - ) - ) - (set_local $15 - (f64.add - (f64.sub - (f64.mul - (get_local $10) - (get_local $10) - ) - (get_local $14) - ) - (f64.mul - (f64.add - (f64.mul - (f64.const 2) - (get_local $10) - ) - (get_local $11) - ) - (get_local $11) - ) - ) - ) - (f64.mul - (get_local $8) - (f64.sqrt - (f64.add - (f64.add - (f64.add - (get_local $15) - (get_local $13) - ) - (get_local $14) - ) - (get_local $12) - ) - ) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $2 + i64.const 9223372036854775807 + i64.and + set_local $2 + get_local $3 + i64.const 9223372036854775807 + i64.and + set_local $3 + get_local $2 + get_local $3 + i64.lt_u + if + get_local $2 + set_local $4 + get_local $3 + set_local $2 + get_local $4 + set_local $3 + end + get_local $2 + i64.const 52 + i64.shr_u + i32.wrap/i64 + set_local $5 + get_local $3 + i64.const 52 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $3 + f64.reinterpret/i64 + set_local $1 + get_local $6 + i32.const 2047 + i32.eq + if + get_local $1 + return + end + get_local $2 + f64.reinterpret/i64 + set_local $0 + get_local $5 + i32.const 2047 + i32.eq + tee_local $7 + if (result i32) + get_local $7 + else + get_local $3 + i64.const 0 + i64.eq + end + if + get_local $0 + return + end + get_local $5 + get_local $6 + i32.sub + i32.const 64 + i32.gt_s + if + get_local $0 + get_local $1 + f64.add + return + end + f64.const 1 + set_local $8 + get_local $5 + i32.const 1023 + i32.const 510 + i32.add + i32.gt_s + if + f64.const 5260135901548373507240989e186 + set_local $8 + get_local $0 + f64.const 1.90109156629516e-211 + f64.mul + set_local $0 + get_local $1 + f64.const 1.90109156629516e-211 + f64.mul + set_local $1 + else + get_local $6 + i32.const 1023 + i32.const 450 + i32.sub + i32.lt_s + if + f64.const 1.90109156629516e-211 + set_local $8 + get_local $0 + f64.const 5260135901548373507240989e186 + f64.mul + set_local $0 + get_local $1 + f64.const 5260135901548373507240989e186 + f64.mul + set_local $1 + end + end + get_local $0 + f64.const 134217729 + f64.mul + set_local $9 + get_local $0 + get_local $9 + f64.sub + get_local $9 + f64.add + set_local $10 + get_local $0 + get_local $10 + f64.sub + set_local $11 + get_local $0 + get_local $0 + f64.mul + set_local $12 + get_local $10 + get_local $10 + f64.mul + get_local $12 + f64.sub + f64.const 2 + get_local $10 + f64.mul + get_local $11 + f64.add + get_local $11 + f64.mul + f64.add + set_local $13 + get_local $1 + f64.const 134217729 + f64.mul + set_local $9 + get_local $1 + get_local $9 + f64.sub + get_local $9 + f64.add + set_local $10 + get_local $1 + get_local $10 + f64.sub + set_local $11 + get_local $1 + get_local $1 + f64.mul + set_local $14 + get_local $10 + get_local $10 + f64.mul + get_local $14 + f64.sub + f64.const 2 + get_local $10 + f64.mul + get_local $11 + f64.add + get_local $11 + f64.mul + f64.add + set_local $15 + get_local $8 + get_local $15 + get_local $13 + f64.add + get_local $14 + f64.add + get_local $12 + f64.add + f64.sqrt + f64.mul ) (func $std/math/test_hypot (; 103 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) - (if (result i32) - (tee_local $5 - (call $std/math/check - (call $~lib/math/NativeMath.hypot - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (if (result i32) - (tee_local $5 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $5) - (call $std/math/check - (call $~lib/bindings/Math/hypot - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (get_local $5) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.hypot + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + tee_local $5 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $5 + if (result i32) + get_local $5 + else + get_local $0 + get_local $1 + call $~lib/bindings/Math/hypot + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + end + else + get_local $5 + end ) (func $~lib/math/NativeMathf.hypot (; 104 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) - (set_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $3 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const 2147483647) - ) - ) - (set_local $3 - (i32.and - (get_local $3) - (i32.const 2147483647) - ) - ) - (if - (i32.lt_u - (get_local $2) - (get_local $3) - ) - (block - (set_local $4 - (get_local $2) - ) - (set_local $2 - (get_local $3) - ) - (set_local $3 - (get_local $4) - ) - ) - ) - (set_local $0 - (f32.reinterpret/i32 - (get_local $2) - ) - ) - (set_local $1 - (f32.reinterpret/i32 - (get_local $3) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.shl - (i32.const 255) - (i32.const 23) - ) - ) - (return - (get_local $1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (if (result i32) - (tee_local $4 - (i32.ge_u - (get_local $2) - (i32.shl - (i32.const 255) - (i32.const 23) - ) - ) - ) - (get_local $4) - (i32.eq - (get_local $3) - (i32.const 0) - ) - ) - ) - (get_local $4) - (i32.ge_u - (i32.sub - (get_local $2) - (get_local $3) - ) - (i32.shl - (i32.const 25) - (i32.const 23) - ) - ) - ) - (return - (f32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $5 - (f32.const 1) - ) - (if - (i32.ge_u - (get_local $2) - (i32.shl - (i32.add - (i32.const 127) - (i32.const 60) - ) - (i32.const 23) - ) - ) - (block - (set_local $5 - (f32.const 1237940039285380274899124e3) - ) - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 8.077935669463161e-28) - ) - ) - (set_local $1 - (f32.mul - (get_local $1) - (f32.const 8.077935669463161e-28) - ) - ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.shl - (i32.sub - (i32.const 127) - (i32.const 60) - ) - (i32.const 23) - ) - ) - (block - (set_local $5 - (f32.const 8.077935669463161e-28) - ) - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 1237940039285380274899124e3) - ) - ) - (set_local $1 - (f32.mul - (get_local $1) - (f32.const 1237940039285380274899124e3) - ) - ) - ) - ) - ) - (f32.mul - (get_local $5) - (f32.sqrt - (f32.demote/f64 - (f64.add - (f64.mul - (f64.promote/f32 - (get_local $0) - ) - (f64.promote/f32 - (get_local $0) - ) - ) - (f64.mul - (f64.promote/f32 - (get_local $1) - ) - (f64.promote/f32 - (get_local $1) - ) - ) - ) - ) - ) - ) + get_local $0 + i32.reinterpret/f32 + set_local $2 + get_local $1 + i32.reinterpret/f32 + set_local $3 + get_local $2 + i32.const 2147483647 + i32.and + set_local $2 + get_local $3 + i32.const 2147483647 + i32.and + set_local $3 + get_local $2 + get_local $3 + i32.lt_u + if + get_local $2 + set_local $4 + get_local $3 + set_local $2 + get_local $4 + set_local $3 + end + get_local $2 + f32.reinterpret/i32 + set_local $0 + get_local $3 + f32.reinterpret/i32 + set_local $1 + get_local $3 + i32.const 255 + i32.const 23 + i32.shl + i32.eq + if + get_local $1 + return + end + get_local $2 + i32.const 255 + i32.const 23 + i32.shl + i32.ge_u + tee_local $4 + if (result i32) + get_local $4 + else + get_local $3 + i32.const 0 + i32.eq + end + tee_local $4 + if (result i32) + get_local $4 + else + get_local $2 + get_local $3 + i32.sub + i32.const 25 + i32.const 23 + i32.shl + i32.ge_u + end + if + get_local $0 + get_local $1 + f32.add + return + end + f32.const 1 + set_local $5 + get_local $2 + i32.const 127 + i32.const 60 + i32.add + i32.const 23 + i32.shl + i32.ge_u + if + f32.const 1237940039285380274899124e3 + set_local $5 + get_local $0 + f32.const 8.077935669463161e-28 + f32.mul + set_local $0 + get_local $1 + f32.const 8.077935669463161e-28 + f32.mul + set_local $1 + else + get_local $3 + i32.const 127 + i32.const 60 + i32.sub + i32.const 23 + i32.shl + i32.lt_u + if + f32.const 8.077935669463161e-28 + set_local $5 + get_local $0 + f32.const 1237940039285380274899124e3 + f32.mul + set_local $0 + get_local $1 + f32.const 1237940039285380274899124e3 + f32.mul + set_local $1 + end + end + get_local $5 + get_local $0 + f64.promote/f32 + get_local $0 + f64.promote/f32 + f64.mul + get_local $1 + f64.promote/f32 + get_local $1 + f64.promote/f32 + f64.mul + f64.add + f32.demote/f64 + f32.sqrt + f32.mul ) (func $std/math/test_hypotf (; 105 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.hypot - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.hypot + get_local $2 + get_local $3 + get_local $4 + call $std/math/check ) (func $std/math/test_log (; 106 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.log - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/log - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.log + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/log + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $std/math/test_logf (; 107 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.log - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.log + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.log10 (; 108 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -8198,392 +5906,276 @@ (local $16 f64) (local $17 f64) (local $18 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.lt_u - (get_local $2) - (i32.const 1048576) - ) - ) - (get_local $4) - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (block - (if - (i64.eq - (i64.shl - (get_local $1) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 54) - ) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eq - (get_local $2) - (i32.const 1072693248) - ) - ) - (i64.eq - (i64.shl - (get_local $1) - (i64.const 32) - ) - (i64.const 0) - ) - (get_local $4) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.const 1072693248) - (i32.const 1072079006) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_u - (get_local $2) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $2 - (i32.add - (i32.and - (get_local $2) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (set_local $1 - (i64.or - (i64.shl - (i64.extend_u/i32 - (get_local $2) - ) - (i64.const 32) - ) - (i64.and - (get_local $1) - (i64.const 4294967295) - ) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $5 - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (set_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (set_local $7 - (f64.div - (get_local $5) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (set_local $9 - (f64.mul - (get_local $8) - (get_local $8) - ) - ) - (set_local $10 - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $9) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - (set_local $11 - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $9) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $12 - (f64.add - (get_local $11) - (get_local $10) - ) - ) - (set_local $13 - (f64.sub - (get_local $5) - (get_local $6) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $13) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.const -4294967296) - ) - ) - (set_local $13 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $14 - (f64.add - (f64.sub - (f64.sub - (get_local $5) - (get_local $13) - ) - (get_local $6) - ) - (f64.mul - (get_local $7) - (f64.add - (get_local $6) - (get_local $12) - ) - ) - ) - ) - (set_local $15 - (f64.mul - (get_local $13) - (f64.const 0.4342944818781689) - ) - ) - (set_local $16 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (set_local $17 - (f64.mul - (get_local $16) - (f64.const 0.30102999566361177) - ) - ) - (set_local $18 - (f64.add - (f64.add - (f64.mul - (get_local $16) - (f64.const 3.694239077158931e-13) - ) - (f64.mul - (f64.add - (get_local $14) - (get_local $13) - ) - (f64.const 2.5082946711645275e-11) - ) - ) - (f64.mul - (get_local $14) - (f64.const 0.4342944818781689) - ) - ) - ) - (set_local $9 - (f64.add - (get_local $17) - (get_local $15) - ) - ) - (set_local $18 - (f64.add - (get_local $18) - (f64.add - (f64.sub - (get_local $17) - (get_local $9) - ) - (get_local $15) - ) - ) - ) - (f64.add - (get_local $18) - (get_local $9) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + i32.const 0 + set_local $3 + get_local $2 + i32.const 1048576 + i32.lt_u + tee_local $4 + if (result i32) + get_local $4 + else + get_local $2 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $2 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $3 + i32.const 54 + i32.sub + set_local $3 + get_local $0 + f64.const 18014398509481984 + f64.mul + set_local $0 + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + else + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $2 + i32.const 1072693248 + i32.eq + tee_local $4 + if (result i32) + get_local $1 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + else + get_local $4 + end + if + f64.const 0 + return + end + end + end + get_local $2 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + set_local $2 + get_local $3 + get_local $2 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + i32.add + set_local $3 + get_local $2 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + set_local $2 + get_local $2 + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $1 + i64.const 4294967295 + i64.and + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $0 + get_local $0 + f64.const 1 + f64.sub + set_local $5 + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + set_local $6 + get_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + set_local $7 + get_local $7 + get_local $7 + f64.mul + set_local $8 + get_local $8 + get_local $8 + f64.mul + set_local $9 + get_local $9 + f64.const 0.3999999999940942 + get_local $9 + f64.const 0.22222198432149784 + get_local $9 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $10 + get_local $8 + f64.const 0.6666666666666735 + get_local $9 + f64.const 0.2857142874366239 + get_local $9 + f64.const 0.1818357216161805 + get_local $9 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $11 + get_local $11 + get_local $10 + f64.add + set_local $12 + get_local $5 + get_local $6 + f64.sub + set_local $13 + get_local $13 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const -4294967296 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $13 + get_local $5 + get_local $13 + f64.sub + get_local $6 + f64.sub + get_local $7 + get_local $6 + get_local $12 + f64.add + f64.mul + f64.add + set_local $14 + get_local $13 + f64.const 0.4342944818781689 + f64.mul + set_local $15 + get_local $3 + f64.convert_s/i32 + set_local $16 + get_local $16 + f64.const 0.30102999566361177 + f64.mul + set_local $17 + get_local $16 + f64.const 3.694239077158931e-13 + f64.mul + get_local $14 + get_local $13 + f64.add + f64.const 2.5082946711645275e-11 + f64.mul + f64.add + get_local $14 + f64.const 0.4342944818781689 + f64.mul + f64.add + set_local $18 + get_local $17 + get_local $15 + f64.add + set_local $9 + get_local $18 + get_local $17 + get_local $9 + f64.sub + get_local $15 + f64.add + f64.add + set_local $18 + get_local $18 + get_local $9 + f64.add ) (func $std/math/test_log10 (; 109 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.log10 - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/log10 - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.log10 + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/log10 + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.log10 (; 110 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) @@ -8600,328 +6192,235 @@ (local $12 f32) (local $13 f32) (local $14 f32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $3 - (i32.lt_u - (get_local $1) - (i32.const 8388608) - ) - ) - (get_local $3) - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - (block - (if - (i32.eq - (i32.shl - (get_local $1) - (i32.const 1) - ) - (i32.const 0) - ) - (return - (f32.div - (f32.const -1) - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f32.div - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.const 0) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 25) - ) - ) - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 33554432) - ) - ) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2139095040) - ) - (return - (get_local $0) - ) - (if - (i32.eq - (get_local $1) - (i32.const 1065353216) - ) - (return - (f32.const 0) - ) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.sub - (i32.const 1065353216) - (i32.const 1060439283) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.shr_u - (get_local $1) - (i32.const 23) - ) - (i32.const 127) - ) - ) - ) - (set_local $1 - (i32.add - (i32.and - (get_local $1) - (i32.const 8388607) - ) - (i32.const 1060439283) - ) - ) - (set_local $0 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (set_local $4 - (f32.sub - (get_local $0) - (f32.const 1) - ) - ) - (set_local $5 - (f32.div - (get_local $4) - (f32.add - (f32.const 2) - (get_local $4) - ) - ) - ) - (set_local $6 - (f32.mul - (get_local $5) - (get_local $5) - ) - ) - (set_local $7 - (f32.mul - (get_local $6) - (get_local $6) - ) - ) - (set_local $8 - (f32.mul - (get_local $7) - (f32.add - (f32.const 0.40000972151756287) - (f32.mul - (get_local $7) - (f32.const 0.24279078841209412) - ) - ) - ) - ) - (set_local $9 - (f32.mul - (get_local $6) - (f32.add - (f32.const 0.6666666269302368) - (f32.mul - (get_local $7) - (f32.const 0.2849878668785095) - ) - ) - ) - ) - (set_local $10 - (f32.add - (get_local $9) - (get_local $8) - ) - ) - (set_local $11 - (f32.mul - (f32.mul - (f32.const 0.5) - (get_local $4) - ) - (get_local $4) - ) - ) - (set_local $12 - (f32.sub - (get_local $4) - (get_local $11) - ) - ) - (set_local $1 - (i32.reinterpret/f32 - (get_local $12) - ) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const -4096) - ) - ) - (set_local $12 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (set_local $13 - (f32.add - (f32.sub - (f32.sub - (get_local $4) - (get_local $12) - ) - (get_local $11) - ) - (f32.mul - (get_local $5) - (f32.add - (get_local $11) - (get_local $10) - ) - ) - ) - ) - (set_local $14 - (f32.convert_s/i32 - (get_local $2) - ) - ) - (f32.add - (f32.add - (f32.add - (f32.add - (f32.mul - (get_local $14) - (f32.const 7.903415166765626e-07) - ) - (f32.mul - (f32.add - (get_local $13) - (get_local $12) - ) - (f32.const -3.168997136526741e-05) - ) - ) - (f32.mul - (get_local $13) - (f32.const 0.434326171875) - ) - ) - (f32.mul - (get_local $12) - (f32.const 0.434326171875) - ) - ) - (f32.mul - (get_local $14) - (f32.const 0.3010292053222656) - ) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + i32.const 0 + set_local $2 + get_local $1 + i32.const 8388608 + i32.lt_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $1 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + if + f32.const -1 + get_local $0 + get_local $0 + f32.mul + f32.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f32.sub + f32.const 0 + f32.div + return + end + get_local $2 + i32.const 25 + i32.sub + set_local $2 + get_local $0 + f32.const 33554432 + f32.mul + set_local $0 + get_local $0 + i32.reinterpret/f32 + set_local $1 + else + get_local $1 + i32.const 2139095040 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1065353216 + i32.eq + if + f32.const 0 + return + end + end + end + get_local $1 + i32.const 1065353216 + i32.const 1060439283 + i32.sub + i32.add + set_local $1 + get_local $2 + get_local $1 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + i32.add + set_local $2 + get_local $1 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $0 + get_local $0 + f32.const 1 + f32.sub + set_local $4 + get_local $4 + f32.const 2 + get_local $4 + f32.add + f32.div + set_local $5 + get_local $5 + get_local $5 + f32.mul + set_local $6 + get_local $6 + get_local $6 + f32.mul + set_local $7 + get_local $7 + f32.const 0.40000972151756287 + get_local $7 + f32.const 0.24279078841209412 + f32.mul + f32.add + f32.mul + set_local $8 + get_local $6 + f32.const 0.6666666269302368 + get_local $7 + f32.const 0.2849878668785095 + f32.mul + f32.add + f32.mul + set_local $9 + get_local $9 + get_local $8 + f32.add + set_local $10 + f32.const 0.5 + get_local $4 + f32.mul + get_local $4 + f32.mul + set_local $11 + get_local $4 + get_local $11 + f32.sub + set_local $12 + get_local $12 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const -4096 + i32.and + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $12 + get_local $4 + get_local $12 + f32.sub + get_local $11 + f32.sub + get_local $5 + get_local $11 + get_local $10 + f32.add + f32.mul + f32.add + set_local $13 + get_local $2 + f32.convert_s/i32 + set_local $14 + get_local $14 + f32.const 7.903415166765626e-07 + f32.mul + get_local $13 + get_local $12 + f32.add + f32.const -3.168997136526741e-05 + f32.mul + f32.add + get_local $13 + f32.const 0.434326171875 + f32.mul + f32.add + get_local $12 + f32.const 0.434326171875 + f32.mul + f32.add + get_local $14 + f32.const 0.3010292053222656 + f32.mul + f32.add ) (func $std/math/test_log10f (; 111 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.log10 - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.log10 + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $std/math/test_log1p (; 112 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.log1p - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/log1p - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.log1p + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/log1p + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $std/math/test_log1pf (; 113 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.log1p - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.log1p + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.log2 (; 114 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -8941,383 +6440,270 @@ (local $15 f64) (local $16 f64) (local $17 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.lt_u - (get_local $2) - (i32.const 1048576) - ) - ) - (get_local $4) - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (block - (if - (i64.eq - (i64.shl - (get_local $1) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (f64.div - (f64.const -1) - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 54) - ) - ) - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 18014398509481984) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 2146435072) - ) - (return - (get_local $0) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eq - (get_local $2) - (i32.const 1072693248) - ) - ) - (i64.eq - (i64.shl - (get_local $1) - (i64.const 32) - ) - (i64.const 0) - ) - (get_local $4) - ) - (return - (f64.const 0) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.const 1072693248) - (i32.const 1072079006) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.sub - (i32.shr_u - (get_local $2) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $2 - (i32.add - (i32.and - (get_local $2) - (i32.const 1048575) - ) - (i32.const 1072079006) - ) - ) - (set_local $1 - (i64.or - (i64.shl - (i64.extend_u/i32 - (get_local $2) - ) - (i64.const 32) - ) - (i64.and - (get_local $1) - (i64.const 4294967295) - ) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $5 - (f64.sub - (get_local $0) - (f64.const 1) - ) - ) - (set_local $6 - (f64.mul - (f64.mul - (f64.const 0.5) - (get_local $5) - ) - (get_local $5) - ) - ) - (set_local $7 - (f64.div - (get_local $5) - (f64.add - (f64.const 2) - (get_local $5) - ) - ) - ) - (set_local $8 - (f64.mul - (get_local $7) - (get_local $7) - ) - ) - (set_local $9 - (f64.mul - (get_local $8) - (get_local $8) - ) - ) - (set_local $10 - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.3999999999940942) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.22222198432149784) - (f64.mul - (get_local $9) - (f64.const 0.15313837699209373) - ) - ) - ) - ) - ) - ) - (set_local $11 - (f64.mul - (get_local $8) - (f64.add - (f64.const 0.6666666666666735) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.2857142874366239) - (f64.mul - (get_local $9) - (f64.add - (f64.const 0.1818357216161805) - (f64.mul - (get_local $9) - (f64.const 0.14798198605116586) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $12 - (f64.add - (get_local $11) - (get_local $10) - ) - ) - (set_local $13 - (f64.sub - (get_local $5) - (get_local $6) - ) - ) - (set_local $1 - (i64.reinterpret/f64 - (get_local $13) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.const -4294967296) - ) - ) - (set_local $13 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $14 - (f64.add - (f64.sub - (f64.sub - (get_local $5) - (get_local $13) - ) - (get_local $6) - ) - (f64.mul - (get_local $7) - (f64.add - (get_local $6) - (get_local $12) - ) - ) - ) - ) - (set_local $15 - (f64.mul - (get_local $13) - (f64.const 1.4426950407214463) - ) - ) - (set_local $16 - (f64.add - (f64.mul - (f64.add - (get_local $14) - (get_local $13) - ) - (f64.const 1.6751713164886512e-10) - ) - (f64.mul - (get_local $14) - (f64.const 1.4426950407214463) - ) - ) - ) - (set_local $17 - (f64.convert_s/i32 - (get_local $3) - ) - ) - (set_local $9 - (f64.add - (get_local $17) - (get_local $15) - ) - ) - (set_local $16 - (f64.add - (get_local $16) - (f64.add - (f64.sub - (get_local $17) - (get_local $9) - ) - (get_local $15) - ) - ) - ) - (set_local $15 - (get_local $9) - ) - (f64.add - (get_local $16) - (get_local $15) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + i32.const 0 + set_local $3 + get_local $2 + i32.const 1048576 + i32.lt_u + tee_local $4 + if (result i32) + get_local $4 + else + get_local $2 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + f64.const -1 + get_local $0 + get_local $0 + f64.mul + f64.div + return + end + get_local $2 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.div + return + end + get_local $3 + i32.const 54 + i32.sub + set_local $3 + get_local $0 + f64.const 18014398509481984 + f64.mul + set_local $0 + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + else + get_local $2 + i32.const 2146435072 + i32.ge_u + if + get_local $0 + return + else + get_local $2 + i32.const 1072693248 + i32.eq + tee_local $4 + if (result i32) + get_local $1 + i64.const 32 + i64.shl + i64.const 0 + i64.eq + else + get_local $4 + end + if + f64.const 0 + return + end + end + end + get_local $2 + i32.const 1072693248 + i32.const 1072079006 + i32.sub + i32.add + set_local $2 + get_local $3 + get_local $2 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + i32.add + set_local $3 + get_local $2 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + set_local $2 + get_local $2 + i64.extend_u/i32 + i64.const 32 + i64.shl + get_local $1 + i64.const 4294967295 + i64.and + i64.or + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $0 + get_local $0 + f64.const 1 + f64.sub + set_local $5 + f64.const 0.5 + get_local $5 + f64.mul + get_local $5 + f64.mul + set_local $6 + get_local $5 + f64.const 2 + get_local $5 + f64.add + f64.div + set_local $7 + get_local $7 + get_local $7 + f64.mul + set_local $8 + get_local $8 + get_local $8 + f64.mul + set_local $9 + get_local $9 + f64.const 0.3999999999940942 + get_local $9 + f64.const 0.22222198432149784 + get_local $9 + f64.const 0.15313837699209373 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $10 + get_local $8 + f64.const 0.6666666666666735 + get_local $9 + f64.const 0.2857142874366239 + get_local $9 + f64.const 0.1818357216161805 + get_local $9 + f64.const 0.14798198605116586 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $11 + get_local $11 + get_local $10 + f64.add + set_local $12 + get_local $5 + get_local $6 + f64.sub + set_local $13 + get_local $13 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const -4294967296 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $13 + get_local $5 + get_local $13 + f64.sub + get_local $6 + f64.sub + get_local $7 + get_local $6 + get_local $12 + f64.add + f64.mul + f64.add + set_local $14 + get_local $13 + f64.const 1.4426950407214463 + f64.mul + set_local $15 + get_local $14 + get_local $13 + f64.add + f64.const 1.6751713164886512e-10 + f64.mul + get_local $14 + f64.const 1.4426950407214463 + f64.mul + f64.add + set_local $16 + get_local $3 + f64.convert_s/i32 + set_local $17 + get_local $17 + get_local $15 + f64.add + set_local $9 + get_local $16 + get_local $17 + get_local $9 + f64.sub + get_local $15 + f64.add + f64.add + set_local $16 + get_local $9 + set_local $15 + get_local $16 + get_local $15 + f64.add ) (func $std/math/test_log2 (; 115 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.log2 - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/log2 - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.log2 + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/log2 + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.log2 (; 116 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) @@ -9335,375 +6721,278 @@ (local $13 i32) (local $14 f32) (local $15 f32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $2 - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $3 - (i32.lt_u - (get_local $1) - (i32.const 8388608) - ) - ) - (get_local $3) - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - ) - (block - (if - (i32.eq - (i32.shl - (get_local $1) - (i32.const 1) - ) - (i32.const 0) - ) - (return - (f32.div - (f32.const -1) - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (return - (f32.div - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.const 0) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 25) - ) - ) - (set_local $0 - (f32.mul - (get_local $0) - (f32.const 33554432) - ) - ) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 2139095040) - ) - (return - (get_local $0) - ) - (if - (i32.eq - (get_local $1) - (i32.const 1065353216) - ) - (return - (f32.const 0) - ) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.sub - (i32.const 1065353216) - (i32.const 1060439283) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.sub - (i32.shr_u - (get_local $1) - (i32.const 23) - ) - (i32.const 127) - ) - ) - ) - (set_local $1 - (i32.add - (i32.and - (get_local $1) - (i32.const 8388607) - ) - (i32.const 1060439283) - ) - ) - (set_local $0 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (set_local $4 - (f32.sub - (get_local $0) - (f32.const 1) - ) - ) - (set_local $5 - (f32.div - (get_local $4) - (f32.add - (f32.const 2) - (get_local $4) - ) - ) - ) - (set_local $6 - (f32.mul - (get_local $5) - (get_local $5) - ) - ) - (set_local $7 - (f32.mul - (get_local $6) - (get_local $6) - ) - ) - (set_local $8 - (f32.mul - (get_local $7) - (f32.add - (f32.const 0.40000972151756287) - (f32.mul - (get_local $7) - (f32.const 0.24279078841209412) - ) - ) - ) - ) - (set_local $9 - (f32.mul - (get_local $6) - (f32.add - (f32.const 0.6666666269302368) - (f32.mul - (get_local $7) - (f32.const 0.2849878668785095) - ) - ) - ) - ) - (set_local $10 - (f32.add - (get_local $9) - (get_local $8) - ) - ) - (set_local $11 - (f32.mul - (f32.mul - (f32.const 0.5) - (get_local $4) - ) - (get_local $4) - ) - ) - (set_local $12 - (f32.sub - (get_local $4) - (get_local $11) - ) - ) - (set_local $13 - (i32.reinterpret/f32 - (get_local $12) - ) - ) - (set_local $13 - (i32.and - (get_local $13) - (i32.const -4096) - ) - ) - (set_local $12 - (f32.reinterpret/i32 - (get_local $13) - ) - ) - (set_local $14 - (f32.add - (f32.sub - (f32.sub - (get_local $4) - (get_local $12) - ) - (get_local $11) - ) - (f32.mul - (get_local $5) - (f32.add - (get_local $11) - (get_local $10) - ) - ) - ) - ) - (set_local $15 - (f32.convert_s/i32 - (get_local $2) - ) - ) - (f32.add - (f32.add - (f32.add - (f32.mul - (f32.add - (get_local $14) - (get_local $12) - ) - (f32.const -1.7605285393074155e-04) - ) - (f32.mul - (get_local $14) - (f32.const 1.44287109375) - ) - ) - (f32.mul - (get_local $12) - (f32.const 1.44287109375) - ) - ) - (get_local $15) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + i32.const 0 + set_local $2 + get_local $1 + i32.const 8388608 + i32.lt_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $1 + i32.const 31 + i32.shr_u + end + if + get_local $1 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + if + f32.const -1 + get_local $0 + get_local $0 + f32.mul + f32.div + return + end + get_local $1 + i32.const 31 + i32.shr_u + if + get_local $0 + get_local $0 + f32.sub + f32.const 0 + f32.div + return + end + get_local $2 + i32.const 25 + i32.sub + set_local $2 + get_local $0 + f32.const 33554432 + f32.mul + set_local $0 + get_local $0 + i32.reinterpret/f32 + set_local $1 + else + get_local $1 + i32.const 2139095040 + i32.ge_u + if + get_local $0 + return + else + get_local $1 + i32.const 1065353216 + i32.eq + if + f32.const 0 + return + end + end + end + get_local $1 + i32.const 1065353216 + i32.const 1060439283 + i32.sub + i32.add + set_local $1 + get_local $2 + get_local $1 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + i32.add + set_local $2 + get_local $1 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $0 + get_local $0 + f32.const 1 + f32.sub + set_local $4 + get_local $4 + f32.const 2 + get_local $4 + f32.add + f32.div + set_local $5 + get_local $5 + get_local $5 + f32.mul + set_local $6 + get_local $6 + get_local $6 + f32.mul + set_local $7 + get_local $7 + f32.const 0.40000972151756287 + get_local $7 + f32.const 0.24279078841209412 + f32.mul + f32.add + f32.mul + set_local $8 + get_local $6 + f32.const 0.6666666269302368 + get_local $7 + f32.const 0.2849878668785095 + f32.mul + f32.add + f32.mul + set_local $9 + get_local $9 + get_local $8 + f32.add + set_local $10 + f32.const 0.5 + get_local $4 + f32.mul + get_local $4 + f32.mul + set_local $11 + get_local $4 + get_local $11 + f32.sub + set_local $12 + get_local $12 + i32.reinterpret/f32 + set_local $13 + get_local $13 + i32.const -4096 + i32.and + set_local $13 + get_local $13 + f32.reinterpret/i32 + set_local $12 + get_local $4 + get_local $12 + f32.sub + get_local $11 + f32.sub + get_local $5 + get_local $11 + get_local $10 + f32.add + f32.mul + f32.add + set_local $14 + get_local $2 + f32.convert_s/i32 + set_local $15 + get_local $14 + get_local $12 + f32.add + f32.const -1.7605285393074155e-04 + f32.mul + get_local $14 + f32.const 1.44287109375 + f32.mul + f32.add + get_local $12 + f32.const 1.44287109375 + f32.mul + f32.add + get_local $15 + f32.add ) (func $std/math/test_log2f (; 117 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.log2 - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.log2 + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $std/math/test_max (; 118 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) - (if (result i32) - (tee_local $5 - (call $std/math/check - (block $~lib/math/NativeMath.max|inlined.0 (result f64) - (f64.max - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (if (result i32) - (tee_local $5 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $5) - (call $std/math/check - (call $~lib/bindings/Math/max - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (get_local $5) - ) + block $~lib/math/NativeMath.max|inlined.0 (result f64) + get_local $0 + get_local $1 + f64.max + end + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + tee_local $5 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $5 + if (result i32) + get_local $5 + else + get_local $0 + get_local $1 + call $~lib/bindings/Math/max + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + end + else + get_local $5 + end ) (func $std/math/test_maxf (; 119 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (block $~lib/math/NativeMathf.max|inlined.0 (result f32) - (f32.max - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) + block $~lib/math/NativeMathf.max|inlined.0 (result f32) + get_local $0 + get_local $1 + f32.max + end + get_local $2 + get_local $3 + get_local $4 + call $std/math/check ) (func $std/math/test_min (; 120 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) - (if (result i32) - (tee_local $5 - (call $std/math/check - (block $~lib/math/NativeMath.min|inlined.0 (result f64) - (f64.min - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (if (result i32) - (tee_local $5 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $5) - (call $std/math/check - (call $~lib/bindings/Math/min - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (get_local $5) - ) + block $~lib/math/NativeMath.min|inlined.0 (result f64) + get_local $0 + get_local $1 + f64.min + end + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + tee_local $5 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $5 + if (result i32) + get_local $5 + else + get_local $0 + get_local $1 + call $~lib/bindings/Math/min + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + end + else + get_local $5 + end ) (func $std/math/test_minf (; 121 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (block $~lib/math/NativeMathf.min|inlined.0 (result f32) - (f32.min - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) + block $~lib/math/NativeMathf.min|inlined.0 (result f32) + get_local $0 + get_local $1 + f32.min + end + get_local $2 + get_local $3 + get_local $4 + call $std/math/check ) (func $~lib/math/NativeMath.mod (; 122 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -9715,399 +7004,279 @@ (local $8 i32) (local $9 i64) (local $10 i64) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $4 - (i64.and - (i64.shr_u - (get_local $2) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $5 - (i64.and - (i64.shr_u - (get_local $3) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $6 - (i64.shr_u - (get_local $2) - (i64.const 63) - ) - ) - (set_local $7 - (i64.shl - (get_local $3) - (i64.const 1) - ) - ) - (if - (i32.and - (if (result i32) - (tee_local $8 - (if (result i32) - (tee_local $8 - (i64.eq - (get_local $7) - (i64.const 0) - ) - ) - (get_local $8) - (i64.eq - (get_local $4) - (i64.const 2047) - ) - ) - ) - (get_local $8) - (block $~lib/builtins/isNaN|inlined.1 (result i32) - (f64.ne - (get_local $1) - (get_local $1) - ) - ) - ) - (i32.const 1) - ) - (return - (f64.div - (f64.mul - (get_local $0) - (get_local $1) - ) - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (set_local $9 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (if - (i64.le_u - (get_local $9) - (get_local $7) - ) - (block - (if - (i64.eq - (get_local $9) - (get_local $7) - ) - (return - (f64.mul - (f64.const 0) - (get_local $0) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i64.eqz - (get_local $4) - ) - (block - (set_local $4 - (i64.sub - (get_local $4) - (i64.clz - (i64.shl - (get_local $2) - (i64.const 12) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (get_local $4) - ) - (i64.const 1) - ) - ) - ) - ) - (block - (set_local $2 - (i64.and - (get_local $2) - (i64.shr_u - (i64.const -1) - (i64.const 12) - ) - ) - ) - (set_local $2 - (i64.or - (get_local $2) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - ) - ) - (if - (i64.eqz - (get_local $5) - ) - (block - (set_local $5 - (i64.sub - (get_local $5) - (i64.clz - (i64.shl - (get_local $3) - (i64.const 12) - ) - ) - ) - ) - (set_local $3 - (i64.shl - (get_local $3) - (i64.add - (i64.sub - (i64.const 0) - (get_local $5) - ) - (i64.const 1) - ) - ) - ) - ) - (block - (set_local $3 - (i64.and - (get_local $3) - (i64.shr_u - (i64.const -1) - (i64.const 12) - ) - ) - ) - (set_local $3 - (i64.or - (get_local $3) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i64.gt_s - (get_local $4) - (get_local $5) - ) - (block - (block - (if - (i64.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i64.eq - (get_local $2) - (get_local $3) - ) - (return - (f64.mul - (f64.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (set_local $4 - (i64.sub - (get_local $4) - (i64.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i64.eq - (get_local $2) - (get_local $3) - ) - (return - (f64.mul - (f64.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $10 - (i64.clz - (i64.shl - (get_local $2) - (i64.const 11) - ) - ) - ) - (set_local $4 - (i64.sub - (get_local $4) - (get_local $10) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (get_local $10) - ) - ) - (if - (i64.gt_s - (get_local $4) - (i64.const 0) - ) - (block - (set_local $2 - (i64.sub - (get_local $2) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - (set_local $2 - (i64.or - (get_local $2) - (i64.shl - (get_local $4) - (i64.const 52) - ) - ) - ) - ) - (set_local $2 - (i64.shr_u - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (get_local $4) - ) - (i64.const 1) - ) - ) - ) - ) - (set_local $2 - (i64.or - (get_local $2) - (i64.shl - (get_local $6) - (i64.const 63) - ) - ) - ) - (f64.reinterpret/i64 - (get_local $2) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $4 + get_local $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $5 + get_local $2 + i64.const 63 + i64.shr_u + set_local $6 + get_local $3 + i64.const 1 + i64.shl + set_local $7 + get_local $7 + i64.const 0 + i64.eq + tee_local $8 + if (result i32) + get_local $8 + else + get_local $4 + i64.const 2047 + i64.eq + end + tee_local $8 + if (result i32) + get_local $8 + else + get_local $1 + get_local $1 + f64.ne + end + i32.const 1 + i32.and + if + get_local $0 + get_local $1 + f64.mul + get_local $0 + get_local $1 + f64.mul + f64.div + return + end + get_local $2 + i64.const 1 + i64.shl + set_local $9 + get_local $9 + get_local $7 + i64.le_u + if + get_local $9 + get_local $7 + i64.eq + if + f64.const 0 + get_local $0 + f64.mul + return + end + get_local $0 + return + end + get_local $4 + i64.eqz + if + get_local $4 + get_local $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + set_local $4 + get_local $2 + i64.const 0 + get_local $4 + i64.sub + i64.const 1 + i64.add + i64.shl + set_local $2 + else + get_local $2 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + set_local $2 + get_local $2 + i64.const 1 + i64.const 52 + i64.shl + i64.or + set_local $2 + end + get_local $5 + i64.eqz + if + get_local $5 + get_local $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + set_local $5 + get_local $3 + i64.const 0 + get_local $5 + i64.sub + i64.const 1 + i64.add + i64.shl + set_local $3 + else + get_local $3 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + set_local $3 + get_local $3 + i64.const 1 + i64.const 52 + i64.shl + i64.or + set_local $3 + end + block $break|0 + loop $continue|0 + get_local $4 + get_local $5 + i64.gt_s + if + block + get_local $2 + get_local $3 + i64.ge_u + if + get_local $2 + get_local $3 + i64.eq + if + f64.const 0 + get_local $0 + f64.mul + return + end + get_local $2 + get_local $3 + i64.sub + set_local $2 + end + get_local $2 + i64.const 1 + i64.shl + set_local $2 + get_local $4 + i64.const 1 + i64.sub + set_local $4 + end + br $continue|0 + end + end + end + get_local $2 + get_local $3 + i64.ge_u + if + get_local $2 + get_local $3 + i64.eq + if + f64.const 0 + get_local $0 + f64.mul + return + end + get_local $2 + get_local $3 + i64.sub + set_local $2 + end + get_local $2 + i64.const 11 + i64.shl + i64.clz + set_local $10 + get_local $4 + get_local $10 + i64.sub + set_local $4 + get_local $2 + get_local $10 + i64.shl + set_local $2 + get_local $4 + i64.const 0 + i64.gt_s + if + get_local $2 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + set_local $2 + get_local $2 + get_local $4 + i64.const 52 + i64.shl + i64.or + set_local $2 + else + get_local $2 + i64.const 0 + get_local $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + set_local $2 + end + get_local $2 + get_local $6 + i64.const 63 + i64.shl + i64.or + set_local $2 + get_local $2 + f64.reinterpret/i64 ) (func $std/math/test_mod (; 123 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) - (if (result i32) - (tee_local $5 - (call $std/math/check - (call $~lib/math/NativeMath.mod - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (if (result i32) - (tee_local $5 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $5) - (call $std/math/check - (call $std/math/mod - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (get_local $5) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.mod + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + tee_local $5 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $5 + if (result i32) + get_local $5 + else + get_local $0 + get_local $1 + call $std/math/mod + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + end + else + get_local $5 + end ) (func $~lib/math/NativeMathf.mod (; 124 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) @@ -10119,373 +7288,257 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (set_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $3 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $4 - (i32.and - (i32.shr_u - (get_local $2) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $5 - (i32.and - (i32.shr_u - (get_local $3) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $6 - (i32.and - (get_local $2) - (i32.const -2147483648) - ) - ) - (set_local $7 - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (if - (i32.and - (if (result i32) - (tee_local $8 - (if (result i32) - (tee_local $8 - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - (get_local $8) - (i32.eq - (get_local $4) - (i32.const 255) - ) - ) - ) - (get_local $8) - (block $~lib/builtins/isNaN|inlined.1 (result i32) - (f32.ne - (get_local $1) - (get_local $1) - ) - ) - ) - (i32.const 1) - ) - (return - (f32.div - (f32.mul - (get_local $0) - (get_local $1) - ) - (f32.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (set_local $9 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (if - (i32.le_u - (get_local $9) - (get_local $7) - ) - (block - (if - (i32.eq - (get_local $9) - (get_local $7) - ) - (return - (f32.mul - (f32.const 0) - (get_local $0) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (block - (set_local $4 - (i32.sub - (get_local $4) - (i32.clz - (i32.shl - (get_local $2) - (i32.const 9) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (i32.add - (i32.sub - (i32.const 0) - (get_local $4) - ) - (i32.const 1) - ) - ) - ) - ) - (block - (set_local $2 - (i32.and - (get_local $2) - (i32.shr_u - (i32.const -1) - (i32.const 9) - ) - ) - ) - (set_local $2 - (i32.or - (get_local $2) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (block - (set_local $5 - (i32.sub - (get_local $5) - (i32.clz - (i32.shl - (get_local $3) - (i32.const 9) - ) - ) - ) - ) - (set_local $3 - (i32.shl - (get_local $3) - (i32.add - (i32.sub - (i32.const 0) - (get_local $5) - ) - (i32.const 1) - ) - ) - ) - ) - (block - (set_local $3 - (i32.and - (get_local $3) - (i32.shr_u - (i32.const -1) - (i32.const 9) - ) - ) - ) - (set_local $3 - (i32.or - (get_local $3) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.gt_s - (get_local $4) - (get_local $5) - ) - (block - (block - (if - (i32.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i32.eq - (get_local $2) - (get_local $3) - ) - (return - (f32.mul - (f32.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i32.eq - (get_local $2) - (get_local $3) - ) - (return - (f32.mul - (f32.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $10 - (i32.clz - (i32.shl - (get_local $2) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (get_local $10) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (get_local $10) - ) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 0) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - (set_local $2 - (i32.or - (get_local $2) - (i32.shl - (get_local $4) - (i32.const 23) - ) - ) - ) - ) - (set_local $2 - (i32.shr_u - (get_local $2) - (i32.add - (i32.sub - (i32.const 0) - (get_local $4) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $2 - (i32.or - (get_local $2) - (get_local $6) - ) - ) - (f32.reinterpret/i32 - (get_local $2) - ) + get_local $0 + i32.reinterpret/f32 + set_local $2 + get_local $1 + i32.reinterpret/f32 + set_local $3 + get_local $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $4 + get_local $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $5 + get_local $2 + i32.const -2147483648 + i32.and + set_local $6 + get_local $3 + i32.const 1 + i32.shl + set_local $7 + get_local $7 + i32.const 0 + i32.eq + tee_local $8 + if (result i32) + get_local $8 + else + get_local $4 + i32.const 255 + i32.eq + end + tee_local $8 + if (result i32) + get_local $8 + else + get_local $1 + get_local $1 + f32.ne + end + i32.const 1 + i32.and + if + get_local $0 + get_local $1 + f32.mul + get_local $0 + get_local $1 + f32.mul + f32.div + return + end + get_local $2 + i32.const 1 + i32.shl + set_local $9 + get_local $9 + get_local $7 + i32.le_u + if + get_local $9 + get_local $7 + i32.eq + if + f32.const 0 + get_local $0 + f32.mul + return + end + get_local $0 + return + end + get_local $4 + i32.eqz + if + get_local $4 + get_local $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + set_local $4 + get_local $2 + i32.const 0 + get_local $4 + i32.sub + i32.const 1 + i32.add + i32.shl + set_local $2 + else + get_local $2 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + set_local $2 + get_local $2 + i32.const 1 + i32.const 23 + i32.shl + i32.or + set_local $2 + end + get_local $5 + i32.eqz + if + get_local $5 + get_local $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + set_local $5 + get_local $3 + i32.const 0 + get_local $5 + i32.sub + i32.const 1 + i32.add + i32.shl + set_local $3 + else + get_local $3 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + set_local $3 + get_local $3 + i32.const 1 + i32.const 23 + i32.shl + i32.or + set_local $3 + end + block $break|0 + loop $continue|0 + get_local $4 + get_local $5 + i32.gt_s + if + block + get_local $2 + get_local $3 + i32.ge_u + if + get_local $2 + get_local $3 + i32.eq + if + f32.const 0 + get_local $0 + f32.mul + return + end + get_local $2 + get_local $3 + i32.sub + set_local $2 + end + get_local $2 + i32.const 1 + i32.shl + set_local $2 + get_local $4 + i32.const 1 + i32.sub + set_local $4 + end + br $continue|0 + end + end + end + get_local $2 + get_local $3 + i32.ge_u + if + get_local $2 + get_local $3 + i32.eq + if + f32.const 0 + get_local $0 + f32.mul + return + end + get_local $2 + get_local $3 + i32.sub + set_local $2 + end + get_local $2 + i32.const 8 + i32.shl + i32.clz + set_local $10 + get_local $4 + get_local $10 + i32.sub + set_local $4 + get_local $2 + get_local $10 + i32.shl + set_local $2 + get_local $4 + i32.const 0 + i32.gt_s + if + get_local $2 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + set_local $2 + get_local $2 + get_local $4 + i32.const 23 + i32.shl + i32.or + set_local $2 + else + get_local $2 + i32.const 0 + get_local $4 + i32.sub + i32.const 1 + i32.add + i32.shr_u + set_local $2 + end + get_local $2 + get_local $6 + i32.or + set_local $2 + get_local $2 + f32.reinterpret/i32 ) (func $std/math/test_modf (; 125 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.mod - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.mod + get_local $2 + get_local $3 + get_local $4 + call $std/math/check ) (func $~lib/math/NativeMath.pow (; 126 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -10527,1533 +7580,1081 @@ (local $38 f64) (local $39 f64) (local $40 i32) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $4 - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_local $2 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $5 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $6 - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_local $7 - (i32.and - (get_local $3) - (i32.const 2147483647) - ) - ) - (set_local $8 - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (i32.or - (get_local $8) - (get_local $6) - ) - (i32.const 0) - ) - (return - (f64.const 1) - ) - ) - (if - (if (result i32) - (tee_local $9 - (if (result i32) - (tee_local $9 - (if (result i32) - (tee_local $9 - (i32.gt_s - (get_local $7) - (i32.const 2146435072) - ) - ) - (get_local $9) - (if (result i32) - (tee_local $9 - (i32.eq - (get_local $7) - (i32.const 2146435072) - ) - ) - (i32.ne - (get_local $4) - (i32.const 0) - ) - (get_local $9) - ) - ) - ) - (get_local $9) - (i32.gt_s - (get_local $8) - (i32.const 2146435072) - ) - ) - ) - (get_local $9) - (if (result i32) - (tee_local $9 - (i32.eq - (get_local $8) - (i32.const 2146435072) - ) - ) - (i32.ne - (get_local $6) - (i32.const 0) - ) - (get_local $9) - ) - ) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $10 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (if - (i32.ge_s - (get_local $8) - (i32.const 1128267776) - ) - (set_local $10 - (i32.const 2) - ) - (if - (i32.ge_s - (get_local $8) - (i32.const 1072693248) - ) - (block - (set_local $11 - (i32.sub - (i32.shr_s - (get_local $8) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $9 - (i32.sub - (select - (i32.const 52) - (i32.const 20) - (i32.gt_s - (get_local $11) - (i32.const 20) - ) - ) - (get_local $11) - ) - ) - (set_local $12 - (select - (get_local $6) - (get_local $8) - (i32.gt_s - (get_local $11) - (i32.const 20) - ) - ) - ) - (set_local $13 - (i32.shr_s - (get_local $12) - (get_local $9) - ) - ) - (if - (i32.eq - (i32.shl - (get_local $13) - (get_local $9) - ) - (get_local $12) - ) - (set_local $10 - (i32.sub - (i32.const 2) - (i32.and - (get_local $13) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 0) - ) - (block - (if - (i32.eq - (get_local $8) - (i32.const 2146435072) - ) - (block - (if - (i32.eq - (i32.or - (i32.sub - (get_local $7) - (i32.const 1072693248) - ) - (get_local $4) - ) - (i32.const 0) - ) - (return - (f64.const nan:0x8000000000000) - ) - (if - (i32.ge_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (get_local $1) - (f64.const 0) - ) - ) - (return - (if (result f64) - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (f64.const 0) - (f64.neg - (get_local $1) - ) - ) - ) - ) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 1072693248) - ) - (block - (if - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1073741824) - ) - (return - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1071644672) - ) - (if - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (return - (f64.sqrt - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $14 - (f64.abs - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $13 - (if (result i32) - (tee_local $13 - (i32.eq - (get_local $7) - (i32.const 2146435072) - ) - ) - (get_local $13) - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - ) - (get_local $13) - (i32.eq - (get_local $7) - (i32.const 1072693248) - ) - ) - (block - (set_local $15 - (get_local $14) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (set_local $15 - (f64.div - (f64.const 1) - (get_local $15) - ) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $7) - (i32.const 1072693248) - ) - (get_local $10) - ) - (i32.const 0) - ) - (set_local $15 - (f64.div - (f64.sub - (get_local $15) - (get_local $15) - ) - (f64.sub - (get_local $15) - (get_local $15) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (i32.const 1) - ) - (set_local $15 - (f64.neg - (get_local $15) - ) - ) - ) - ) - ) - (return - (get_local $15) - ) - ) - ) - ) - (set_local $16 - (f64.const 1) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (block - (if - (i32.eq - (get_local $10) - (i32.const 0) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (i32.const 1) - ) - (set_local $16 - (f64.const -1) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $8) - (i32.const 1105199104) - ) - (block - (if - (i32.gt_s - (get_local $8) - (i32.const 1139802112) - ) - (block - (if - (i32.le_s - (get_local $7) - (i32.const 1072693247) - ) - (return - (if (result f64) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.const 1.e+300) - (f64.const 1.e+300) - ) - (f64.mul - (f64.const 1e-300) - (f64.const 1e-300) - ) - ) - ) - ) - (if - (i32.ge_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.const 1.e+300) - (f64.const 1.e+300) - ) - (f64.mul - (f64.const 1e-300) - (f64.const 1e-300) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 1072693247) - ) - (return - (if (result f64) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - (set_local $22 - (f64.sub - (get_local $14) - (f64.const 1) - ) - ) - (set_local $25 - (f64.mul - (f64.mul - (get_local $22) - (get_local $22) - ) - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $22) - (f64.sub - (f64.const 0.3333333333333333) - (f64.mul - (get_local $22) - (f64.const 0.25) - ) - ) - ) - ) - ) - ) - (set_local $23 - (f64.mul - (f64.const 1.4426950216293335) - (get_local $22) - ) - ) - (set_local $24 - (f64.sub - (f64.mul - (get_local $22) - (f64.const 1.9259629911266175e-08) - ) - (f64.mul - (get_local $25) - (f64.const 1.4426950408889634) - ) - ) - ) - (set_local $17 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $17 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $17) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $18 - (f64.sub - (get_local $24) - (f64.sub - (get_local $17) - (get_local $23) - ) - ) - ) - ) - (block - (set_local $27 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 1048576) - ) - (block - (set_local $14 - (f64.mul - (get_local $14) - (f64.const 9007199254740992) - ) - ) - (set_local $27 - (i32.sub - (get_local $27) - (i32.const 53) - ) - ) - (set_local $7 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $14) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (set_local $27 - (i32.add - (get_local $27) - (i32.sub - (i32.shr_s - (get_local $7) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $26 - (i32.and - (get_local $7) - (i32.const 1048575) - ) - ) - (set_local $7 - (i32.or - (get_local $26) - (i32.const 1072693248) - ) - ) - (if - (i32.le_s - (get_local $26) - (i32.const 235662) - ) - (set_local $11 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $26) - (i32.const 767610) - ) - (set_local $11 - (i32.const 1) - ) - (block - (set_local $11 - (i32.const 0) - ) - (set_local $27 - (i32.add - (get_local $27) - (i32.const 1) - ) - ) - (set_local $7 - (i32.sub - (get_local $7) - (i32.const 1048576) - ) - ) - ) - ) - ) - (set_local $14 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $14) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $7) - ) - (i64.const 32) - ) - ) - ) - ) - (set_local $34 - (select - (f64.const 1.5) - (f64.const 1) - (get_local $11) - ) - ) - (set_local $23 - (f64.sub - (get_local $14) - (get_local $34) - ) - ) - (set_local $24 - (f64.div - (f64.const 1) - (f64.add - (get_local $14) - (get_local $34) - ) - ) - ) - (set_local $28 - (f64.mul - (get_local $23) - (get_local $24) - ) - ) - (set_local $30 - (get_local $28) - ) - (set_local $30 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $30) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $32 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.add - (i32.add - (i32.or - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - (i32.const 536870912) - ) - (i32.const 524288) - ) - (i32.shl - (get_local $11) - (i32.const 18) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $33 - (f64.sub - (get_local $14) - (f64.sub - (get_local $32) - (get_local $34) - ) - ) - ) - (set_local $31 - (f64.mul - (get_local $24) - (f64.sub - (f64.sub - (get_local $23) - (f64.mul - (get_local $30) - (get_local $32) - ) - ) - (f64.mul - (get_local $30) - (get_local $33) - ) - ) - ) - ) - (set_local $29 - (f64.mul - (get_local $28) - (get_local $28) - ) - ) - (set_local $21 - (f64.mul - (f64.mul - (get_local $29) - (get_local $29) - ) - (f64.add - (f64.const 0.5999999999999946) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.4285714285785502) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.33333332981837743) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.272728123808534) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.23066074577556175) - (f64.mul - (get_local $29) - (f64.const 0.20697501780033842) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $21 - (f64.add - (get_local $21) - (f64.mul - (get_local $31) - (f64.add - (get_local $30) - (get_local $28) - ) - ) - ) - ) - (set_local $29 - (f64.mul - (get_local $30) - (get_local $30) - ) - ) - (set_local $32 - (f64.add - (f64.add - (f64.const 3) - (get_local $29) - ) - (get_local $21) - ) - ) - (set_local $32 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $32) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $33 - (f64.sub - (get_local $21) - (f64.sub - (f64.sub - (get_local $32) - (f64.const 3) - ) - (get_local $29) - ) - ) - ) - (set_local $23 - (f64.mul - (get_local $30) - (get_local $32) - ) - ) - (set_local $24 - (f64.add - (f64.mul - (get_local $31) - (get_local $32) - ) - (f64.mul - (get_local $33) - (get_local $28) - ) - ) - ) - (set_local $19 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $19 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $19) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $20 - (f64.sub - (get_local $24) - (f64.sub - (get_local $19) - (get_local $23) - ) - ) - ) - (set_local $35 - (f64.mul - (f64.const 0.9617967009544373) - (get_local $19) - ) - ) - (set_local $36 - (select - (f64.const 1.350039202129749e-08) - (f64.const 0) - (get_local $11) - ) - ) - (set_local $37 - (f64.add - (f64.add - (f64.mul - (f64.const -7.028461650952758e-09) - (get_local $19) - ) - (f64.mul - (get_local $20) - (f64.const 0.9617966939259756) - ) - ) - (get_local $36) - ) - ) - (set_local $22 - (f64.convert_s/i32 - (get_local $27) - ) - ) - (set_local $38 - (select - (f64.const 0.5849624872207642) - (f64.const 0) - (get_local $11) - ) - ) - (set_local $17 - (f64.add - (f64.add - (f64.add - (get_local $35) - (get_local $37) - ) - (get_local $38) - ) - (get_local $22) - ) - ) - (set_local $17 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $17) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $18 - (f64.sub - (get_local $37) - (f64.sub - (f64.sub - (f64.sub - (get_local $17) - (get_local $22) - ) - (get_local $38) - ) - (get_local $35) - ) - ) - ) - ) - ) - (set_local $39 - (get_local $1) - ) - (set_local $39 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $39) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $20 - (f64.add - (f64.mul - (f64.sub - (get_local $1) - (get_local $39) - ) - (get_local $17) - ) - (f64.mul - (get_local $1) - (get_local $18) - ) - ) - ) - (set_local $19 - (f64.mul - (get_local $39) - (get_local $17) - ) - ) - (set_local $15 - (f64.add - (get_local $20) - (get_local $19) - ) - ) - (set_local $2 - (i64.reinterpret/f64 - (get_local $15) - ) - ) - (set_local $26 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $40 - (i32.wrap/i64 - (get_local $2) - ) - ) - (if - (i32.ge_s - (get_local $26) - (i32.const 1083179008) - ) - (block - (if - (i32.ne - (i32.or - (i32.sub - (get_local $26) - (i32.const 1083179008) - ) - (get_local $40) - ) - (i32.const 0) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - ) - ) - (if - (f64.gt - (f64.add - (get_local $20) - (f64.const 8.008566259537294e-17) - ) - (f64.sub - (get_local $15) - (get_local $19) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - ) - ) - ) - (if - (i32.ge_s - (i32.and - (get_local $26) - (i32.const 2147483647) - ) - (i32.const 1083231232) - ) - (block - (if - (i32.ne - (i32.or - (i32.sub - (get_local $26) - (i32.const -1064252416) - ) - (get_local $40) - ) - (i32.const 0) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - (if - (f64.le - (get_local $20) - (f64.sub - (get_local $15) - (get_local $19) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - ) - ) - (set_local $40 - (i32.and - (get_local $26) - (i32.const 2147483647) - ) - ) - (set_local $11 - (i32.sub - (i32.shr_s - (get_local $40) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $27 - (i32.const 0) - ) - (if - (i32.gt_s - (get_local $40) - (i32.const 1071644672) - ) - (block - (set_local $27 - (i32.add - (get_local $26) - (i32.shr_s - (i32.const 1048576) - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - ) - ) - (set_local $11 - (i32.sub - (i32.shr_s - (i32.and - (get_local $27) - (i32.const 2147483647) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $22 - (f64.const 0) - ) - (set_local $22 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.and - (get_local $27) - (i32.xor - (i32.shr_s - (i32.const 1048575) - (get_local $11) - ) - (i32.const -1) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $27 - (i32.shr_s - (i32.or - (i32.and - (get_local $27) - (i32.const 1048575) - ) - (i32.const 1048576) - ) - (i32.sub - (i32.const 20) - (get_local $11) - ) - ) - ) - (if - (i32.lt_s - (get_local $26) - (i32.const 0) - ) - (set_local $27 - (i32.sub - (i32.const 0) - (get_local $27) - ) - ) - ) - (set_local $19 - (f64.sub - (get_local $19) - (get_local $22) - ) - ) - ) - ) - (set_local $22 - (f64.add - (get_local $20) - (get_local $19) - ) - ) - (set_local $22 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $22) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $23 - (f64.mul - (get_local $22) - (f64.const 0.6931471824645996) - ) - ) - (set_local $24 - (f64.add - (f64.mul - (f64.sub - (get_local $20) - (f64.sub - (get_local $22) - (get_local $19) - ) - ) - (f64.const 0.6931471805599453) - ) - (f64.mul - (get_local $22) - (f64.const -1.904654299957768e-09) - ) - ) - ) - (set_local $15 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $25 - (f64.sub - (get_local $24) - (f64.sub - (get_local $15) - (get_local $23) - ) - ) - ) - (set_local $22 - (f64.mul - (get_local $15) - (get_local $15) - ) - ) - (set_local $17 - (f64.sub - (get_local $15) - (f64.mul - (get_local $22) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $22) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $22) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $22) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $22) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $21 - (f64.sub - (f64.div - (f64.mul - (get_local $15) - (get_local $17) - ) - (f64.sub - (get_local $17) - (f64.const 2) - ) - ) - (f64.add - (get_local $25) - (f64.mul - (get_local $15) - (get_local $25) - ) - ) - ) - ) - (set_local $15 - (f64.sub - (f64.const 1) - (f64.sub - (get_local $21) - (get_local $15) - ) - ) - ) - (set_local $26 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $15) - ) - (i64.const 32) - ) - ) - ) - (set_local $26 - (i32.add - (get_local $26) - (i32.shl - (get_local $27) - (i32.const 20) - ) - ) - ) - (if - (i32.le_s - (i32.shr_s - (get_local $26) - (i32.const 20) - ) - (i32.const 0) - ) - (set_local $15 - (call $~lib/math/NativeMath.scalbn - (get_local $15) - (get_local $27) - ) - ) - (set_local $15 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $15) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $26) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (f64.mul - (get_local $16) - (get_local $15) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $3 + get_local $2 + i32.wrap/i64 + set_local $4 + get_local $1 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $5 + get_local $2 + i32.wrap/i64 + set_local $6 + get_local $3 + i32.const 2147483647 + i32.and + set_local $7 + get_local $5 + i32.const 2147483647 + i32.and + set_local $8 + get_local $8 + get_local $6 + i32.or + i32.const 0 + i32.eq + if + f64.const 1 + return + end + get_local $7 + i32.const 2146435072 + i32.gt_s + tee_local $9 + if (result i32) + get_local $9 + else + get_local $7 + i32.const 2146435072 + i32.eq + tee_local $9 + if (result i32) + get_local $4 + i32.const 0 + i32.ne + else + get_local $9 + end + end + tee_local $9 + if (result i32) + get_local $9 + else + get_local $8 + i32.const 2146435072 + i32.gt_s + end + tee_local $9 + if (result i32) + get_local $9 + else + get_local $8 + i32.const 2146435072 + i32.eq + tee_local $9 + if (result i32) + get_local $6 + i32.const 0 + i32.ne + else + get_local $9 + end + end + if + get_local $0 + get_local $1 + f64.add + return + end + i32.const 0 + set_local $10 + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $8 + i32.const 1128267776 + i32.ge_s + if + i32.const 2 + set_local $10 + else + get_local $8 + i32.const 1072693248 + i32.ge_s + if + get_local $8 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + i32.const 52 + i32.const 20 + get_local $11 + i32.const 20 + i32.gt_s + select + get_local $11 + i32.sub + set_local $9 + get_local $6 + get_local $8 + get_local $11 + i32.const 20 + i32.gt_s + select + set_local $12 + get_local $12 + get_local $9 + i32.shr_s + set_local $13 + get_local $13 + get_local $9 + i32.shl + get_local $12 + i32.eq + if + i32.const 2 + get_local $13 + i32.const 1 + i32.and + i32.sub + set_local $10 + end + end + end + end + get_local $6 + i32.const 0 + i32.eq + if + get_local $8 + i32.const 2146435072 + i32.eq + if + get_local $7 + i32.const 1072693248 + i32.sub + get_local $4 + i32.or + i32.const 0 + i32.eq + if + f64.const nan:0x8000000000000 + return + else + get_local $7 + i32.const 1072693248 + i32.ge_s + if + get_local $5 + i32.const 0 + i32.ge_s + if (result f64) + get_local $1 + else + f64.const 0 + end + return + else + get_local $5 + i32.const 0 + i32.ge_s + if (result f64) + f64.const 0 + else + get_local $1 + f64.neg + end + return + end + unreachable + end + unreachable + unreachable + end + get_local $8 + i32.const 1072693248 + i32.eq + if + get_local $5 + i32.const 0 + i32.ge_s + if + get_local $0 + return + end + f64.const 1 + get_local $0 + f64.div + return + end + get_local $5 + i32.const 1073741824 + i32.eq + if + get_local $0 + get_local $0 + f64.mul + return + end + get_local $5 + i32.const 1071644672 + i32.eq + if + get_local $3 + i32.const 0 + i32.ge_s + if + get_local $0 + f64.sqrt + return + end + end + end + get_local $0 + f64.abs + set_local $14 + get_local $4 + i32.const 0 + i32.eq + if + get_local $7 + i32.const 2146435072 + i32.eq + tee_local $13 + if (result i32) + get_local $13 + else + get_local $7 + i32.const 0 + i32.eq + end + tee_local $13 + if (result i32) + get_local $13 + else + get_local $7 + i32.const 1072693248 + i32.eq + end + if + get_local $14 + set_local $15 + get_local $5 + i32.const 0 + i32.lt_s + if + f64.const 1 + get_local $15 + f64.div + set_local $15 + end + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $7 + i32.const 1072693248 + i32.sub + get_local $10 + i32.or + i32.const 0 + i32.eq + if + get_local $15 + get_local $15 + f64.sub + get_local $15 + get_local $15 + f64.sub + f64.div + set_local $15 + else + get_local $10 + i32.const 1 + i32.eq + if + get_local $15 + f64.neg + set_local $15 + end + end + end + get_local $15 + return + end + end + f64.const 1 + set_local $16 + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $10 + i32.const 0 + i32.eq + if + get_local $0 + get_local $0 + f64.sub + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $10 + i32.const 1 + i32.eq + if + f64.const -1 + set_local $16 + end + end + get_local $8 + i32.const 1105199104 + i32.gt_s + if + get_local $8 + i32.const 1139802112 + i32.gt_s + if + get_local $7 + i32.const 1072693247 + i32.le_s + if + get_local $5 + i32.const 0 + i32.lt_s + if (result f64) + f64.const 1.e+300 + f64.const 1.e+300 + f64.mul + else + f64.const 1e-300 + f64.const 1e-300 + f64.mul + end + return + end + get_local $7 + i32.const 1072693248 + i32.ge_s + if + get_local $5 + i32.const 0 + i32.gt_s + if (result f64) + f64.const 1.e+300 + f64.const 1.e+300 + f64.mul + else + f64.const 1e-300 + f64.const 1e-300 + f64.mul + end + return + end + end + get_local $7 + i32.const 1072693247 + i32.lt_s + if + get_local $5 + i32.const 0 + i32.lt_s + if (result f64) + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + return + end + get_local $7 + i32.const 1072693248 + i32.gt_s + if + get_local $5 + i32.const 0 + i32.gt_s + if (result f64) + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + return + end + get_local $14 + f64.const 1 + f64.sub + set_local $22 + get_local $22 + get_local $22 + f64.mul + f64.const 0.5 + get_local $22 + f64.const 0.3333333333333333 + get_local $22 + f64.const 0.25 + f64.mul + f64.sub + f64.mul + f64.sub + f64.mul + set_local $25 + f64.const 1.4426950216293335 + get_local $22 + f64.mul + set_local $23 + get_local $22 + f64.const 1.9259629911266175e-08 + f64.mul + get_local $25 + f64.const 1.4426950408889634 + f64.mul + f64.sub + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $17 + get_local $17 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $17 + get_local $24 + get_local $17 + get_local $23 + f64.sub + f64.sub + set_local $18 + else + i32.const 0 + set_local $27 + get_local $7 + i32.const 1048576 + i32.lt_s + if + get_local $14 + f64.const 9007199254740992 + f64.mul + set_local $14 + get_local $27 + i32.const 53 + i32.sub + set_local $27 + get_local $14 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $7 + end + get_local $27 + get_local $7 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $27 + get_local $7 + i32.const 1048575 + i32.and + set_local $26 + get_local $26 + i32.const 1072693248 + i32.or + set_local $7 + get_local $26 + i32.const 235662 + i32.le_s + if + i32.const 0 + set_local $11 + else + get_local $26 + i32.const 767610 + i32.lt_s + if + i32.const 1 + set_local $11 + else + i32.const 0 + set_local $11 + get_local $27 + i32.const 1 + i32.add + set_local $27 + get_local $7 + i32.const 1048576 + i32.sub + set_local $7 + end + end + get_local $14 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $7 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + set_local $14 + f64.const 1.5 + f64.const 1 + get_local $11 + select + set_local $34 + get_local $14 + get_local $34 + f64.sub + set_local $23 + f64.const 1 + get_local $14 + get_local $34 + f64.add + f64.div + set_local $24 + get_local $23 + get_local $24 + f64.mul + set_local $28 + get_local $28 + set_local $30 + get_local $30 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $30 + get_local $7 + i32.const 1 + i32.shr_s + i32.const 536870912 + i32.or + i32.const 524288 + i32.add + get_local $11 + i32.const 18 + i32.shl + i32.add + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $32 + get_local $14 + get_local $32 + get_local $34 + f64.sub + f64.sub + set_local $33 + get_local $24 + get_local $23 + get_local $30 + get_local $32 + f64.mul + f64.sub + get_local $30 + get_local $33 + f64.mul + f64.sub + f64.mul + set_local $31 + get_local $28 + get_local $28 + f64.mul + set_local $29 + get_local $29 + get_local $29 + f64.mul + f64.const 0.5999999999999946 + get_local $29 + f64.const 0.4285714285785502 + get_local $29 + f64.const 0.33333332981837743 + get_local $29 + f64.const 0.272728123808534 + get_local $29 + f64.const 0.23066074577556175 + get_local $29 + f64.const 0.20697501780033842 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $21 + get_local $21 + get_local $31 + get_local $30 + get_local $28 + f64.add + f64.mul + f64.add + set_local $21 + get_local $30 + get_local $30 + f64.mul + set_local $29 + f64.const 3 + get_local $29 + f64.add + get_local $21 + f64.add + set_local $32 + get_local $32 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $32 + get_local $21 + get_local $32 + f64.const 3 + f64.sub + get_local $29 + f64.sub + f64.sub + set_local $33 + get_local $30 + get_local $32 + f64.mul + set_local $23 + get_local $31 + get_local $32 + f64.mul + get_local $33 + get_local $28 + f64.mul + f64.add + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $19 + get_local $19 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $19 + get_local $24 + get_local $19 + get_local $23 + f64.sub + f64.sub + set_local $20 + f64.const 0.9617967009544373 + get_local $19 + f64.mul + set_local $35 + f64.const 1.350039202129749e-08 + f64.const 0 + get_local $11 + select + set_local $36 + f64.const -7.028461650952758e-09 + get_local $19 + f64.mul + get_local $20 + f64.const 0.9617966939259756 + f64.mul + f64.add + get_local $36 + f64.add + set_local $37 + get_local $27 + f64.convert_s/i32 + set_local $22 + f64.const 0.5849624872207642 + f64.const 0 + get_local $11 + select + set_local $38 + get_local $35 + get_local $37 + f64.add + get_local $38 + f64.add + get_local $22 + f64.add + set_local $17 + get_local $17 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $17 + get_local $37 + get_local $17 + get_local $22 + f64.sub + get_local $38 + f64.sub + get_local $35 + f64.sub + f64.sub + set_local $18 + end + get_local $1 + set_local $39 + get_local $39 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $39 + get_local $1 + get_local $39 + f64.sub + get_local $17 + f64.mul + get_local $1 + get_local $18 + f64.mul + f64.add + set_local $20 + get_local $39 + get_local $17 + f64.mul + set_local $19 + get_local $20 + get_local $19 + f64.add + set_local $15 + get_local $15 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $26 + get_local $2 + i32.wrap/i64 + set_local $40 + get_local $26 + i32.const 1083179008 + i32.ge_s + if + get_local $26 + i32.const 1083179008 + i32.sub + get_local $40 + i32.or + i32.const 0 + i32.ne + if + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + return + end + get_local $20 + f64.const 8.008566259537294e-17 + f64.add + get_local $15 + get_local $19 + f64.sub + f64.gt + if + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + return + end + else + get_local $26 + i32.const 2147483647 + i32.and + i32.const 1083231232 + i32.ge_s + if + get_local $26 + i32.const -1064252416 + i32.sub + get_local $40 + i32.or + i32.const 0 + i32.ne + if + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + get_local $20 + get_local $15 + get_local $19 + f64.sub + f64.le + if + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + end + end + get_local $26 + i32.const 2147483647 + i32.and + set_local $40 + get_local $40 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + i32.const 0 + set_local $27 + get_local $40 + i32.const 1071644672 + i32.gt_s + if + get_local $26 + i32.const 1048576 + get_local $11 + i32.const 1 + i32.add + i32.shr_s + i32.add + set_local $27 + get_local $27 + i32.const 2147483647 + i32.and + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + f64.const 0 + set_local $22 + get_local $27 + i32.const 1048575 + get_local $11 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $22 + get_local $27 + i32.const 1048575 + i32.and + i32.const 1048576 + i32.or + i32.const 20 + get_local $11 + i32.sub + i32.shr_s + set_local $27 + get_local $26 + i32.const 0 + i32.lt_s + if + i32.const 0 + get_local $27 + i32.sub + set_local $27 + end + get_local $19 + get_local $22 + f64.sub + set_local $19 + end + get_local $20 + get_local $19 + f64.add + set_local $22 + get_local $22 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $22 + get_local $22 + f64.const 0.6931471824645996 + f64.mul + set_local $23 + get_local $20 + get_local $22 + get_local $19 + f64.sub + f64.sub + f64.const 0.6931471805599453 + f64.mul + get_local $22 + f64.const -1.904654299957768e-09 + f64.mul + f64.add + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $15 + get_local $24 + get_local $15 + get_local $23 + f64.sub + f64.sub + set_local $25 + get_local $15 + get_local $15 + f64.mul + set_local $22 + get_local $15 + get_local $22 + f64.const 0.16666666666666602 + get_local $22 + f64.const -2.7777777777015593e-03 + get_local $22 + f64.const 6.613756321437934e-05 + get_local $22 + f64.const -1.6533902205465252e-06 + get_local $22 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + set_local $17 + get_local $15 + get_local $17 + f64.mul + get_local $17 + f64.const 2 + f64.sub + f64.div + get_local $25 + get_local $15 + get_local $25 + f64.mul + f64.add + f64.sub + set_local $21 + f64.const 1 + get_local $21 + get_local $15 + f64.sub + f64.sub + set_local $15 + get_local $15 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $26 + get_local $26 + get_local $27 + i32.const 20 + i32.shl + i32.add + set_local $26 + get_local $26 + i32.const 20 + i32.shr_s + i32.const 0 + i32.le_s + if + get_local $15 + get_local $27 + call $~lib/math/NativeMath.scalbn + set_local $15 + else + get_local $15 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $26 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + set_local $15 + end + get_local $16 + get_local $15 + f64.mul ) (func $std/math/test_pow (; 127 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 i32) - (if (result i32) - (tee_local $5 - (call $std/math/check - (call $~lib/math/NativeMath.pow - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (if (result i32) - (tee_local $5 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $5) - (call $std/math/check - (call $~lib/bindings/Math/pow - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - (get_local $5) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.pow + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + tee_local $5 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $5 + if (result i32) + get_local $5 + else + get_local $0 + get_local $1 + call $~lib/bindings/Math/pow + get_local $2 + get_local $3 + get_local $4 + call $std/math/check + end + else + get_local $5 + end ) (func $~lib/math/NativeMathf.pow (; 128 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) @@ -12091,1706 +8692,1216 @@ (local $34 f32) (local $35 f32) (local $36 i32) - (set_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $3 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $4 - (i32.and - (get_local $2) - (i32.const 2147483647) - ) - ) - (set_local $5 - (i32.and - (get_local $3) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 0) - ) - (return - (f32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $6 - (i32.gt_s - (get_local $4) - (i32.const 2139095040) - ) - ) - (get_local $6) - (i32.gt_s - (get_local $5) - (i32.const 2139095040) - ) - ) - (return - (f32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $7 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (if - (i32.ge_s - (get_local $5) - (i32.const 1266679808) - ) - (set_local $7 - (i32.const 2) - ) - (if - (i32.ge_s - (get_local $5) - (i32.const 1065353216) - ) - (block - (set_local $9 - (i32.sub - (i32.shr_s - (get_local $5) - (i32.const 23) - ) - (i32.const 127) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $5) - (i32.sub - (i32.const 23) - (get_local $9) - ) - ) - ) - (if - (i32.eq - (i32.shl - (get_local $8) - (i32.sub - (i32.const 23) - (get_local $9) - ) - ) - (get_local $5) - ) - (set_local $7 - (i32.sub - (i32.const 2) - (i32.and - (get_local $8) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 2139095040) - ) - (block - (if - (i32.eq - (get_local $4) - (i32.const 1065353216) - ) - (return - (f32.const nan:0x400000) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 1065353216) - ) - (return - (if (result f32) - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (get_local $1) - (f32.const 0) - ) - ) - (return - (if (result f32) - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (f32.const 0) - (f32.neg - (get_local $1) - ) - ) - ) - ) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1065353216) - ) - (return - (if (result f32) - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (get_local $0) - (f32.div - (f32.const 1) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1073741824) - ) - (return - (f32.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 1056964608) - ) - (if - (i32.ge_s - (get_local $2) - (i32.const 0) - ) - (return - (f32.sqrt - (get_local $0) - ) - ) - ) - ) - (set_local $10 - (f32.abs - (get_local $0) - ) - ) - (if - (if (result i32) - (tee_local $6 - (if (result i32) - (tee_local $6 - (i32.eq - (get_local $4) - (i32.const 2139095040) - ) - ) - (get_local $6) - (i32.eq - (get_local $4) - (i32.const 0) - ) - ) - ) - (get_local $6) - (i32.eq - (get_local $4) - (i32.const 1065353216) - ) - ) - (block - (set_local $11 - (get_local $10) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (set_local $11 - (f32.div - (f32.const 1) - (get_local $11) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $4) - (i32.const 1065353216) - ) - (get_local $7) - ) - (i32.const 0) - ) - (set_local $11 - (f32.div - (f32.sub - (get_local $11) - (get_local $11) - ) - (f32.sub - (get_local $11) - (get_local $11) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 1) - ) - (set_local $11 - (f32.neg - (get_local $11) - ) - ) - ) - ) - ) - (return - (get_local $11) - ) - ) - ) - (set_local $12 - (f32.const 1) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (block - (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (return - (f32.div - (f32.sub - (get_local $0) - (get_local $0) - ) - (f32.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 1) - ) - (set_local $12 - (f32.const -1) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $5) - (i32.const 1291845632) - ) - (block - (if - (i32.lt_s - (get_local $4) - (i32.const 1065353208) - ) - (return - (if (result f32) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 1065353223) - ) - (return - (if (result f32) - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) - ) - ) - ) - (set_local $17 - (f32.sub - (get_local $10) - (f32.const 1) - ) - ) - (set_local $20 - (f32.mul - (f32.mul - (get_local $17) - (get_local $17) - ) - (f32.sub - (f32.const 0.5) - (f32.mul - (get_local $17) - (f32.sub - (f32.const 0.3333333432674408) - (f32.mul - (get_local $17) - (f32.const 0.25) - ) - ) - ) - ) - ) - ) - (set_local $18 - (f32.mul - (f32.const 1.44268798828125) - (get_local $17) - ) - ) - (set_local $19 - (f32.sub - (f32.mul - (get_local $17) - (f32.const 7.052607543300837e-06) - ) - (f32.mul - (get_local $20) - (f32.const 1.4426950216293335) - ) - ) - ) - (set_local $13 - (f32.add - (get_local $18) - (get_local $19) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $13) - ) - ) - (set_local $13 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $14 - (f32.sub - (get_local $19) - (f32.sub - (get_local $13) - (get_local $18) - ) - ) - ) - ) - (block - (set_local $23 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 8388608) - ) - (block - (set_local $10 - (f32.mul - (get_local $10) - (f32.const 16777216) - ) - ) - (set_local $23 - (i32.sub - (get_local $23) - (i32.const 24) - ) - ) - (set_local $4 - (i32.reinterpret/f32 - (get_local $10) - ) - ) - ) - ) - (set_local $23 - (i32.add - (get_local $23) - (i32.sub - (i32.shr_s - (get_local $4) - (i32.const 23) - ) - (i32.const 127) - ) - ) - ) - (set_local $8 - (i32.and - (get_local $4) - (i32.const 8388607) - ) - ) - (set_local $4 - (i32.or - (get_local $8) - (i32.const 1065353216) - ) - ) - (if - (i32.le_s - (get_local $8) - (i32.const 1885297) - ) - (set_local $9 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $8) - (i32.const 6140887) - ) - (set_local $9 - (i32.const 1) - ) - (block - (set_local $9 - (i32.const 0) - ) - (set_local $23 - (i32.add - (get_local $23) - (i32.const 1) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 8388608) - ) - ) - ) - ) - ) - (set_local $10 - (f32.reinterpret/i32 - (get_local $4) - ) - ) - (set_local $30 - (select - (f32.const 1.5) - (f32.const 1) - (get_local $9) - ) - ) - (set_local $18 - (f32.sub - (get_local $10) - (get_local $30) - ) - ) - (set_local $19 - (f32.div - (f32.const 1) - (f32.add - (get_local $10) - (get_local $30) - ) - ) - ) - (set_local $16 - (f32.mul - (get_local $18) - (get_local $19) - ) - ) - (set_local $26 - (get_local $16) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $26) - ) - ) - (set_local $26 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $24 - (i32.or - (i32.and - (i32.shr_s - (get_local $4) - (i32.const 1) - ) - (i32.const -4096) - ) - (i32.const 536870912) - ) - ) - (set_local $28 - (f32.reinterpret/i32 - (i32.add - (i32.add - (get_local $24) - (i32.const 4194304) - ) - (i32.shl - (get_local $9) - (i32.const 21) - ) - ) - ) - ) - (set_local $29 - (f32.sub - (get_local $10) - (f32.sub - (get_local $28) - (get_local $30) - ) - ) - ) - (set_local $27 - (f32.mul - (get_local $19) - (f32.sub - (f32.sub - (get_local $18) - (f32.mul - (get_local $26) - (get_local $28) - ) - ) - (f32.mul - (get_local $26) - (get_local $29) - ) - ) - ) - ) - (set_local $25 - (f32.mul - (get_local $16) - (get_local $16) - ) - ) - (set_local $15 - (f32.mul - (f32.mul - (get_local $25) - (get_local $25) - ) - (f32.add - (f32.const 0.6000000238418579) - (f32.mul - (get_local $25) - (f32.add - (f32.const 0.4285714328289032) - (f32.mul - (get_local $25) - (f32.add - (f32.const 0.3333333432674408) - (f32.mul - (get_local $25) - (f32.add - (f32.const 0.2727281153202057) - (f32.mul - (get_local $25) - (f32.add - (f32.const 0.23066075146198273) - (f32.mul - (get_local $25) - (f32.const 0.20697501301765442) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $15 - (f32.add - (get_local $15) - (f32.mul - (get_local $27) - (f32.add - (get_local $26) - (get_local $16) - ) - ) - ) - ) - (set_local $25 - (f32.mul - (get_local $26) - (get_local $26) - ) - ) - (set_local $28 - (f32.add - (f32.add - (f32.const 3) - (get_local $25) - ) - (get_local $15) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $28) - ) - ) - (set_local $28 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $29 - (f32.sub - (get_local $15) - (f32.sub - (f32.sub - (get_local $28) - (f32.const 3) - ) - (get_local $25) - ) - ) - ) - (set_local $18 - (f32.mul - (get_local $26) - (get_local $28) - ) - ) - (set_local $19 - (f32.add - (f32.mul - (get_local $27) - (get_local $28) - ) - (f32.mul - (get_local $29) - (get_local $16) - ) - ) - ) - (set_local $21 - (f32.add - (get_local $18) - (get_local $19) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $21) - ) - ) - (set_local $21 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $22 - (f32.sub - (get_local $19) - (f32.sub - (get_local $21) - (get_local $18) - ) - ) - ) - (set_local $31 - (f32.mul - (f32.const 0.9619140625) - (get_local $21) - ) - ) - (set_local $32 - (select - (f32.const 1.5632208487659227e-06) - (f32.const 0) - (get_local $9) - ) - ) - (set_local $33 - (f32.add - (f32.add - (f32.mul - (f32.const -1.1736857413779944e-04) - (get_local $21) - ) - (f32.mul - (get_local $22) - (f32.const 0.9617967009544373) - ) - ) - (get_local $32) - ) - ) - (set_local $17 - (f32.convert_s/i32 - (get_local $23) - ) - ) - (set_local $34 - (select - (f32.const 0.5849609375) - (f32.const 0) - (get_local $9) - ) - ) - (set_local $13 - (f32.add - (f32.add - (f32.add - (get_local $31) - (get_local $33) - ) - (get_local $34) - ) - (get_local $17) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $13) - ) - ) - (set_local $13 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $14 - (f32.sub - (get_local $33) - (f32.sub - (f32.sub - (f32.sub - (get_local $13) - (get_local $17) - ) - (get_local $34) - ) - (get_local $31) - ) - ) - ) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $35 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -4096) - ) - ) - ) - (set_local $22 - (f32.add - (f32.mul - (f32.sub - (get_local $1) - (get_local $35) - ) - (get_local $13) - ) - (f32.mul - (get_local $1) - (get_local $14) - ) - ) - ) - (set_local $21 - (f32.mul - (get_local $35) - (get_local $13) - ) - ) - (set_local $11 - (f32.add - (get_local $22) - (get_local $21) - ) - ) - (set_local $8 - (i32.reinterpret/f32 - (get_local $11) - ) - ) - (if - (i32.gt_s - (get_local $8) - (i32.const 1124073472) - ) - (return - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 1124073472) - ) - (if - (f32.gt - (f32.add - (get_local $22) - (f32.const 4.299566569443414e-08) - ) - (f32.sub - (get_local $11) - (get_local $21) - ) - ) - (return - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1000000015047466219876688e6) - ) - (f32.const 1000000015047466219876688e6) - ) - ) - ) - (if - (i32.gt_s - (i32.and - (get_local $8) - (i32.const 2147483647) - ) - (i32.const 1125515264) - ) - (return - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const -1021968384) - ) - (if - (f32.le - (get_local $22) - (f32.sub - (get_local $11) - (get_local $21) - ) - ) - (return - (f32.mul - (f32.mul - (get_local $12) - (f32.const 1.0000000031710769e-30) - ) - (f32.const 1.0000000031710769e-30) - ) - ) - ) - ) - ) - ) - ) - (set_local $36 - (i32.and - (get_local $8) - (i32.const 2147483647) - ) - ) - (set_local $9 - (i32.sub - (i32.shr_s - (get_local $36) - (i32.const 23) - ) - (i32.const 127) - ) - ) - (set_local $23 - (i32.const 0) - ) - (if - (i32.gt_s - (get_local $36) - (i32.const 1056964608) - ) - (block - (set_local $23 - (i32.add - (get_local $8) - (i32.shr_s - (i32.const 8388608) - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - ) - ) - (set_local $9 - (i32.sub - (i32.shr_s - (i32.and - (get_local $23) - (i32.const 2147483647) - ) - (i32.const 23) - ) - (i32.const 127) - ) - ) - (set_local $17 - (f32.reinterpret/i32 - (i32.and - (get_local $23) - (i32.xor - (i32.shr_s - (i32.const 8388607) - (get_local $9) - ) - (i32.const -1) - ) - ) - ) - ) - (set_local $23 - (i32.shr_s - (i32.or - (i32.and - (get_local $23) - (i32.const 8388607) - ) - (i32.const 8388608) - ) - (i32.sub - (i32.const 23) - (get_local $9) - ) - ) - ) - (if - (i32.lt_s - (get_local $8) - (i32.const 0) - ) - (set_local $23 - (i32.sub - (i32.const 0) - (get_local $23) - ) - ) - ) - (set_local $21 - (f32.sub - (get_local $21) - (get_local $17) - ) - ) - ) - ) - (set_local $17 - (f32.add - (get_local $22) - (get_local $21) - ) - ) - (set_local $24 - (i32.reinterpret/f32 - (get_local $17) - ) - ) - (set_local $17 - (f32.reinterpret/i32 - (i32.and - (get_local $24) - (i32.const -32768) - ) - ) - ) - (set_local $18 - (f32.mul - (get_local $17) - (f32.const 0.693145751953125) - ) - ) - (set_local $19 - (f32.add - (f32.mul - (f32.sub - (get_local $22) - (f32.sub - (get_local $17) - (get_local $21) - ) - ) - (f32.const 0.6931471824645996) - ) - (f32.mul - (get_local $17) - (f32.const 1.4286065379565116e-06) - ) - ) - ) - (set_local $11 - (f32.add - (get_local $18) - (get_local $19) - ) - ) - (set_local $20 - (f32.sub - (get_local $19) - (f32.sub - (get_local $11) - (get_local $18) - ) - ) - ) - (set_local $17 - (f32.mul - (get_local $11) - (get_local $11) - ) - ) - (set_local $13 - (f32.sub - (get_local $11) - (f32.mul - (get_local $17) - (f32.add - (f32.const 0.1666666716337204) - (f32.mul - (get_local $17) - (f32.add - (f32.const -2.7777778450399637e-03) - (f32.mul - (get_local $17) - (f32.add - (f32.const 6.61375597701408e-05) - (f32.mul - (get_local $17) - (f32.add - (f32.const -1.6533901998627698e-06) - (f32.mul - (get_local $17) - (f32.const 4.138136944220605e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $15 - (f32.sub - (f32.div - (f32.mul - (get_local $11) - (get_local $13) - ) - (f32.sub - (get_local $13) - (f32.const 2) - ) - ) - (f32.add - (get_local $20) - (f32.mul - (get_local $11) - (get_local $20) - ) - ) - ) - ) - (set_local $11 - (f32.sub - (f32.const 1) - (f32.sub - (get_local $15) - (get_local $11) - ) - ) - ) - (set_local $8 - (i32.reinterpret/f32 - (get_local $11) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.shl - (get_local $23) - (i32.const 23) - ) - ) - ) - (if - (i32.le_s - (i32.shr_s - (get_local $8) - (i32.const 23) - ) - (i32.const 0) - ) - (set_local $11 - (call $~lib/math/NativeMathf.scalbn - (get_local $11) - (get_local $23) - ) - ) - (set_local $11 - (f32.reinterpret/i32 - (get_local $8) - ) - ) - ) - (f32.mul - (get_local $12) - (get_local $11) - ) + get_local $0 + i32.reinterpret/f32 + set_local $2 + get_local $1 + i32.reinterpret/f32 + set_local $3 + get_local $2 + i32.const 2147483647 + i32.and + set_local $4 + get_local $3 + i32.const 2147483647 + i32.and + set_local $5 + get_local $5 + i32.const 0 + i32.eq + if + f32.const 1 + return + end + get_local $4 + i32.const 2139095040 + i32.gt_s + tee_local $6 + if (result i32) + get_local $6 + else + get_local $5 + i32.const 2139095040 + i32.gt_s + end + if + get_local $0 + get_local $1 + f32.add + return + end + i32.const 0 + set_local $7 + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $5 + i32.const 1266679808 + i32.ge_s + if + i32.const 2 + set_local $7 + else + get_local $5 + i32.const 1065353216 + i32.ge_s + if + get_local $5 + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + set_local $9 + get_local $5 + i32.const 23 + get_local $9 + i32.sub + i32.shr_s + set_local $8 + get_local $8 + i32.const 23 + get_local $9 + i32.sub + i32.shl + get_local $5 + i32.eq + if + i32.const 2 + get_local $8 + i32.const 1 + i32.and + i32.sub + set_local $7 + end + end + end + end + get_local $5 + i32.const 2139095040 + i32.eq + if + get_local $4 + i32.const 1065353216 + i32.eq + if + f32.const nan:0x400000 + return + else + get_local $4 + i32.const 1065353216 + i32.gt_s + if + get_local $3 + i32.const 0 + i32.ge_s + if (result f32) + get_local $1 + else + f32.const 0 + end + return + else + get_local $3 + i32.const 0 + i32.ge_s + if (result f32) + f32.const 0 + else + get_local $1 + f32.neg + end + return + end + unreachable + end + unreachable + unreachable + end + get_local $5 + i32.const 1065353216 + i32.eq + if + get_local $3 + i32.const 0 + i32.ge_s + if (result f32) + get_local $0 + else + f32.const 1 + get_local $0 + f32.div + end + return + end + get_local $3 + i32.const 1073741824 + i32.eq + if + get_local $0 + get_local $0 + f32.mul + return + end + get_local $3 + i32.const 1056964608 + i32.eq + if + get_local $2 + i32.const 0 + i32.ge_s + if + get_local $0 + f32.sqrt + return + end + end + get_local $0 + f32.abs + set_local $10 + get_local $4 + i32.const 2139095040 + i32.eq + tee_local $6 + if (result i32) + get_local $6 + else + get_local $4 + i32.const 0 + i32.eq + end + tee_local $6 + if (result i32) + get_local $6 + else + get_local $4 + i32.const 1065353216 + i32.eq + end + if + get_local $10 + set_local $11 + get_local $3 + i32.const 0 + i32.lt_s + if + f32.const 1 + get_local $11 + f32.div + set_local $11 + end + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $4 + i32.const 1065353216 + i32.sub + get_local $7 + i32.or + i32.const 0 + i32.eq + if + get_local $11 + get_local $11 + f32.sub + get_local $11 + get_local $11 + f32.sub + f32.div + set_local $11 + else + get_local $7 + i32.const 1 + i32.eq + if + get_local $11 + f32.neg + set_local $11 + end + end + end + get_local $11 + return + end + f32.const 1 + set_local $12 + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $7 + i32.const 0 + i32.eq + if + get_local $0 + get_local $0 + f32.sub + get_local $0 + get_local $0 + f32.sub + f32.div + return + end + get_local $7 + i32.const 1 + i32.eq + if + f32.const -1 + set_local $12 + end + end + get_local $5 + i32.const 1291845632 + i32.gt_s + if + get_local $4 + i32.const 1065353208 + i32.lt_s + if + get_local $3 + i32.const 0 + i32.lt_s + if (result f32) + get_local $12 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + else + get_local $12 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul + end + return + end + get_local $4 + i32.const 1065353223 + i32.gt_s + if + get_local $3 + i32.const 0 + i32.gt_s + if (result f32) + get_local $12 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + else + get_local $12 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul + end + return + end + get_local $10 + f32.const 1 + f32.sub + set_local $17 + get_local $17 + get_local $17 + f32.mul + f32.const 0.5 + get_local $17 + f32.const 0.3333333432674408 + get_local $17 + f32.const 0.25 + f32.mul + f32.sub + f32.mul + f32.sub + f32.mul + set_local $20 + f32.const 1.44268798828125 + get_local $17 + f32.mul + set_local $18 + get_local $17 + f32.const 7.052607543300837e-06 + f32.mul + get_local $20 + f32.const 1.4426950216293335 + f32.mul + f32.sub + set_local $19 + get_local $18 + get_local $19 + f32.add + set_local $13 + get_local $13 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $13 + get_local $19 + get_local $13 + get_local $18 + f32.sub + f32.sub + set_local $14 + else + i32.const 0 + set_local $23 + get_local $4 + i32.const 8388608 + i32.lt_s + if + get_local $10 + f32.const 16777216 + f32.mul + set_local $10 + get_local $23 + i32.const 24 + i32.sub + set_local $23 + get_local $10 + i32.reinterpret/f32 + set_local $4 + end + get_local $23 + get_local $4 + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + i32.add + set_local $23 + get_local $4 + i32.const 8388607 + i32.and + set_local $8 + get_local $8 + i32.const 1065353216 + i32.or + set_local $4 + get_local $8 + i32.const 1885297 + i32.le_s + if + i32.const 0 + set_local $9 + else + get_local $8 + i32.const 6140887 + i32.lt_s + if + i32.const 1 + set_local $9 + else + i32.const 0 + set_local $9 + get_local $23 + i32.const 1 + i32.add + set_local $23 + get_local $4 + i32.const 8388608 + i32.sub + set_local $4 + end + end + get_local $4 + f32.reinterpret/i32 + set_local $10 + f32.const 1.5 + f32.const 1 + get_local $9 + select + set_local $30 + get_local $10 + get_local $30 + f32.sub + set_local $18 + f32.const 1 + get_local $10 + get_local $30 + f32.add + f32.div + set_local $19 + get_local $18 + get_local $19 + f32.mul + set_local $16 + get_local $16 + set_local $26 + get_local $26 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $26 + get_local $4 + i32.const 1 + i32.shr_s + i32.const -4096 + i32.and + i32.const 536870912 + i32.or + set_local $24 + get_local $24 + i32.const 4194304 + i32.add + get_local $9 + i32.const 21 + i32.shl + i32.add + f32.reinterpret/i32 + set_local $28 + get_local $10 + get_local $28 + get_local $30 + f32.sub + f32.sub + set_local $29 + get_local $19 + get_local $18 + get_local $26 + get_local $28 + f32.mul + f32.sub + get_local $26 + get_local $29 + f32.mul + f32.sub + f32.mul + set_local $27 + get_local $16 + get_local $16 + f32.mul + set_local $25 + get_local $25 + get_local $25 + f32.mul + f32.const 0.6000000238418579 + get_local $25 + f32.const 0.4285714328289032 + get_local $25 + f32.const 0.3333333432674408 + get_local $25 + f32.const 0.2727281153202057 + get_local $25 + f32.const 0.23066075146198273 + get_local $25 + f32.const 0.20697501301765442 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + set_local $15 + get_local $15 + get_local $27 + get_local $26 + get_local $16 + f32.add + f32.mul + f32.add + set_local $15 + get_local $26 + get_local $26 + f32.mul + set_local $25 + f32.const 3 + get_local $25 + f32.add + get_local $15 + f32.add + set_local $28 + get_local $28 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $28 + get_local $15 + get_local $28 + f32.const 3 + f32.sub + get_local $25 + f32.sub + f32.sub + set_local $29 + get_local $26 + get_local $28 + f32.mul + set_local $18 + get_local $27 + get_local $28 + f32.mul + get_local $29 + get_local $16 + f32.mul + f32.add + set_local $19 + get_local $18 + get_local $19 + f32.add + set_local $21 + get_local $21 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $21 + get_local $19 + get_local $21 + get_local $18 + f32.sub + f32.sub + set_local $22 + f32.const 0.9619140625 + get_local $21 + f32.mul + set_local $31 + f32.const 1.5632208487659227e-06 + f32.const 0 + get_local $9 + select + set_local $32 + f32.const -1.1736857413779944e-04 + get_local $21 + f32.mul + get_local $22 + f32.const 0.9617967009544373 + f32.mul + f32.add + get_local $32 + f32.add + set_local $33 + get_local $23 + f32.convert_s/i32 + set_local $17 + f32.const 0.5849609375 + f32.const 0 + get_local $9 + select + set_local $34 + get_local $31 + get_local $33 + f32.add + get_local $34 + f32.add + get_local $17 + f32.add + set_local $13 + get_local $13 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $13 + get_local $33 + get_local $13 + get_local $17 + f32.sub + get_local $34 + f32.sub + get_local $31 + f32.sub + f32.sub + set_local $14 + end + get_local $1 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -4096 + i32.and + f32.reinterpret/i32 + set_local $35 + get_local $1 + get_local $35 + f32.sub + get_local $13 + f32.mul + get_local $1 + get_local $14 + f32.mul + f32.add + set_local $22 + get_local $35 + get_local $13 + f32.mul + set_local $21 + get_local $22 + get_local $21 + f32.add + set_local $11 + get_local $11 + i32.reinterpret/f32 + set_local $8 + get_local $8 + i32.const 1124073472 + i32.gt_s + if + get_local $12 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + return + else + get_local $8 + i32.const 1124073472 + i32.eq + if + get_local $22 + f32.const 4.299566569443414e-08 + f32.add + get_local $11 + get_local $21 + f32.sub + f32.gt + if + get_local $12 + f32.const 1000000015047466219876688e6 + f32.mul + f32.const 1000000015047466219876688e6 + f32.mul + return + end + else + get_local $8 + i32.const 2147483647 + i32.and + i32.const 1125515264 + i32.gt_s + if + get_local $12 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul + return + else + get_local $8 + i32.const -1021968384 + i32.eq + if + get_local $22 + get_local $11 + get_local $21 + f32.sub + f32.le + if + get_local $12 + f32.const 1.0000000031710769e-30 + f32.mul + f32.const 1.0000000031710769e-30 + f32.mul + return + end + end + end + end + end + get_local $8 + i32.const 2147483647 + i32.and + set_local $36 + get_local $36 + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + set_local $9 + i32.const 0 + set_local $23 + get_local $36 + i32.const 1056964608 + i32.gt_s + if + get_local $8 + i32.const 8388608 + get_local $9 + i32.const 1 + i32.add + i32.shr_s + i32.add + set_local $23 + get_local $23 + i32.const 2147483647 + i32.and + i32.const 23 + i32.shr_s + i32.const 127 + i32.sub + set_local $9 + get_local $23 + i32.const 8388607 + get_local $9 + i32.shr_s + i32.const -1 + i32.xor + i32.and + f32.reinterpret/i32 + set_local $17 + get_local $23 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i32.const 23 + get_local $9 + i32.sub + i32.shr_s + set_local $23 + get_local $8 + i32.const 0 + i32.lt_s + if + i32.const 0 + get_local $23 + i32.sub + set_local $23 + end + get_local $21 + get_local $17 + f32.sub + set_local $21 + end + get_local $22 + get_local $21 + f32.add + set_local $17 + get_local $17 + i32.reinterpret/f32 + set_local $24 + get_local $24 + i32.const -32768 + i32.and + f32.reinterpret/i32 + set_local $17 + get_local $17 + f32.const 0.693145751953125 + f32.mul + set_local $18 + get_local $22 + get_local $17 + get_local $21 + f32.sub + f32.sub + f32.const 0.6931471824645996 + f32.mul + get_local $17 + f32.const 1.4286065379565116e-06 + f32.mul + f32.add + set_local $19 + get_local $18 + get_local $19 + f32.add + set_local $11 + get_local $19 + get_local $11 + get_local $18 + f32.sub + f32.sub + set_local $20 + get_local $11 + get_local $11 + f32.mul + set_local $17 + get_local $11 + get_local $17 + f32.const 0.1666666716337204 + get_local $17 + f32.const -2.7777778450399637e-03 + get_local $17 + f32.const 6.61375597701408e-05 + get_local $17 + f32.const -1.6533901998627698e-06 + get_local $17 + f32.const 4.138136944220605e-08 + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.add + f32.mul + f32.sub + set_local $13 + get_local $11 + get_local $13 + f32.mul + get_local $13 + f32.const 2 + f32.sub + f32.div + get_local $20 + get_local $11 + get_local $20 + f32.mul + f32.add + f32.sub + set_local $15 + f32.const 1 + get_local $15 + get_local $11 + f32.sub + f32.sub + set_local $11 + get_local $11 + i32.reinterpret/f32 + set_local $8 + get_local $8 + get_local $23 + i32.const 23 + i32.shl + i32.add + set_local $8 + get_local $8 + i32.const 23 + i32.shr_s + i32.const 0 + i32.le_s + if + get_local $11 + get_local $23 + call $~lib/math/NativeMathf.scalbn + set_local $11 + else + get_local $8 + f32.reinterpret/i32 + set_local $11 + end + get_local $12 + get_local $11 + f32.mul ) (func $std/math/test_powf (; 129 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.pow - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.pow + get_local $2 + get_local $3 + get_local $4 + call $std/math/check ) (func $~lib/math/murmurHash3 (; 130 ;) (type $II) (param $0 i64) (result i64) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (i64.const -49064778989728563) - ) - ) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (i64.const -4265267296055464877) - ) - ) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $0) - (i64.const 33) - ) - ) - ) - (get_local $0) + get_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor + set_local $0 + get_local $0 + i64.const -49064778989728563 + i64.mul + set_local $0 + get_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor + set_local $0 + get_local $0 + i64.const -4265267296055464877 + i64.mul + set_local $0 + get_local $0 + get_local $0 + i64.const 33 + i64.shr_u + i64.xor + set_local $0 + get_local $0 ) (func $~lib/math/splitMix32 (; 131 ;) (type $ii) (param $0 i32) (result i32) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1831565813) - ) - ) - (set_local $0 - (i32.mul - (i32.xor - (get_local $0) - (i32.shr_u - (get_local $0) - (i32.const 15) - ) - ) - (i32.or - (get_local $0) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i32.xor - (get_local $0) - (i32.add - (get_local $0) - (i32.mul - (i32.xor - (get_local $0) - (i32.shr_u - (get_local $0) - (i32.const 7) - ) - ) - (i32.or - (get_local $0) - (i32.const 61) - ) - ) - ) - ) - ) - (i32.xor - (get_local $0) - (i32.shr_u - (get_local $0) - (i32.const 14) - ) - ) + get_local $0 + i32.const 1831565813 + i32.add + set_local $0 + get_local $0 + get_local $0 + i32.const 15 + i32.shr_u + i32.xor + get_local $0 + i32.const 1 + i32.or + i32.mul + set_local $0 + get_local $0 + get_local $0 + get_local $0 + get_local $0 + i32.const 7 + i32.shr_u + i32.xor + get_local $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + set_local $0 + get_local $0 + get_local $0 + i32.const 14 + i32.shr_u + i32.xor ) (func $~lib/math/NativeMath.seedRandom (; 132 ;) (type $Iv) (param $0 i64) - (if - (i64.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 955) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_global $~lib/math/random_seeded - (i32.const 1) - ) - (set_global $~lib/math/random_state0_64 - (call $~lib/math/murmurHash3 - (get_local $0) - ) - ) - (set_global $~lib/math/random_state1_64 - (call $~lib/math/murmurHash3 - (i64.xor - (get_global $~lib/math/random_state0_64) - (i64.const -1) - ) - ) - ) - (set_global $~lib/math/random_state0_32 - (call $~lib/math/splitMix32 - (i32.wrap/i64 - (get_local $0) - ) - ) - ) - (set_global $~lib/math/random_state1_32 - (call $~lib/math/splitMix32 - (get_global $~lib/math/random_state0_32) - ) - ) + get_local $0 + i64.eqz + if + i32.const 0 + i32.const 40 + i32.const 955 + i32.const 4 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~lib/math/random_seeded + get_local $0 + call $~lib/math/murmurHash3 + set_global $~lib/math/random_state0_64 + get_global $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + set_global $~lib/math/random_state1_64 + get_local $0 + i32.wrap/i64 + call $~lib/math/splitMix32 + set_global $~lib/math/random_state0_32 + get_global $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + set_global $~lib/math/random_state1_32 ) (func $~lib/math/NativeMath.random (; 133 ;) (type $F) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) - (if - (i32.eqz - (get_global $~lib/math/random_seeded) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 964) - (i32.const 24) - ) - (unreachable) - ) - ) - (set_local $0 - (get_global $~lib/math/random_state0_64) - ) - (set_local $1 - (get_global $~lib/math/random_state1_64) - ) - (set_global $~lib/math/random_state0_64 - (get_local $1) - ) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shl - (get_local $0) - (i64.const 23) - ) - ) - ) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $0) - (i64.const 17) - ) - ) - ) - (set_local $0 - (i64.xor - (get_local $0) - (get_local $1) - ) - ) - (set_local $0 - (i64.xor - (get_local $0) - (i64.shr_u - (get_local $1) - (i64.const 26) - ) - ) - ) - (set_global $~lib/math/random_state1_64 - (get_local $0) - ) - (set_local $2 - (i64.or - (i64.and - (i64.add - (get_local $1) - (get_local $0) - ) - (i64.const 4503599627370495) - ) - (i64.const 4607182418800017408) - ) - ) - (f64.sub - (f64.reinterpret/i64 - (get_local $2) - ) - (f64.const 1) - ) + get_global $~lib/math/random_seeded + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 964 + i32.const 24 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/random_state0_64 + set_local $0 + get_global $~lib/math/random_state1_64 + set_local $1 + get_local $1 + set_global $~lib/math/random_state0_64 + get_local $0 + get_local $0 + i64.const 23 + i64.shl + i64.xor + set_local $0 + get_local $0 + get_local $0 + i64.const 17 + i64.shr_u + i64.xor + set_local $0 + get_local $0 + get_local $1 + i64.xor + set_local $0 + get_local $0 + get_local $1 + i64.const 26 + i64.shr_u + i64.xor + set_local $0 + get_local $0 + set_global $~lib/math/random_state1_64 + get_local $1 + get_local $0 + i64.add + i64.const 4503599627370495 + i64.and + i64.const 4607182418800017408 + i64.or + set_local $2 + get_local $2 + f64.reinterpret/i64 + f64.const 1 + f64.sub ) (func $~lib/math/NativeMathf.random (; 134 ;) (type $f) (result f32) (local $0 i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (get_global $~lib/math/random_seeded) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 40) - (i32.const 2018) - (i32.const 24) - ) - (unreachable) - ) - ) - (set_local $0 - (get_global $~lib/math/random_state0_32) - ) - (set_local $1 - (get_global $~lib/math/random_state1_32) - ) - (set_local $2 - (i32.mul - (i32.rotl - (i32.mul - (get_local $0) - (i32.const -1640531525) - ) - (i32.const 5) - ) - (i32.const 5) - ) - ) - (set_local $1 - (i32.xor - (get_local $1) - (get_local $0) - ) - ) - (set_global $~lib/math/random_state0_32 - (i32.xor - (i32.xor - (i32.rotl - (get_local $0) - (i32.const 26) - ) - (get_local $1) - ) - (i32.shl - (get_local $1) - (i32.const 9) - ) - ) - ) - (set_global $~lib/math/random_state1_32 - (i32.rotl - (get_local $1) - (i32.const 13) - ) - ) - (f32.sub - (f32.reinterpret/i32 - (i32.or - (i32.shr_u - (get_local $2) - (i32.const 9) - ) - (i32.shl - (i32.const 127) - (i32.const 23) - ) - ) - ) - (f32.const 1) - ) + get_global $~lib/math/random_seeded + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 2018 + i32.const 24 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/random_state0_32 + set_local $0 + get_global $~lib/math/random_state1_32 + set_local $1 + get_local $0 + i32.const -1640531525 + i32.mul + i32.const 5 + i32.rotl + i32.const 5 + i32.mul + set_local $2 + get_local $1 + get_local $0 + i32.xor + set_local $1 + get_local $0 + i32.const 26 + i32.rotl + get_local $1 + i32.xor + get_local $1 + i32.const 9 + i32.shl + i32.xor + set_global $~lib/math/random_state0_32 + get_local $1 + i32.const 13 + i32.rotl + set_global $~lib/math/random_state1_32 + get_local $2 + i32.const 9 + i32.shr_u + i32.const 127 + i32.const 23 + i32.shl + i32.or + f32.reinterpret/i32 + f32.const 1 + f32.sub ) (func $std/math/test_round (; 135 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) - (call $std/math/check - (block $~lib/math/NativeMath.round|inlined.0 (result f64) - (f64.copysign - (f64.floor - (f64.add - (get_local $0) - (f64.const 0.5) - ) - ) - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $~lib/math/NativeMath.round|inlined.0 (result f64) + get_local $0 + f64.const 0.5 + f64.add + f64.floor + get_local $0 + f64.copysign + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $std/math/test_roundf (; 136 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (block $~lib/math/NativeMathf.round|inlined.0 (result f32) - (f32.copysign - (f32.floor - (f32.add - (get_local $0) - (f32.const 0.5) - ) - ) - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $~lib/math/NativeMathf.round|inlined.0 (result f32) + get_local $0 + f32.const 0.5 + f32.add + f32.floor + get_local $0 + f32.copysign + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $std/math/test_sign (; 137 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (block $~lib/math/NativeMath.sign|inlined.0 (result f64) - (br $~lib/math/NativeMath.sign|inlined.0 - (if (result f64) - (f64.gt - (get_local $0) - (f64.const 0) - ) - (f64.const 1) - (if (result f64) - (f64.lt - (get_local $0) - (f64.const 0) - ) - (f64.const -1) - (get_local $0) - ) - ) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/sign - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + block $~lib/math/NativeMath.sign|inlined.0 (result f64) + get_local $0 + f64.const 0 + f64.gt + if (result f64) + f64.const 1 + else + get_local $0 + f64.const 0 + f64.lt + if (result f64) + f64.const -1 + else + get_local $0 + end + end + br $~lib/math/NativeMath.sign|inlined.0 + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/sign + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $std/math/test_signf (; 138 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (block $~lib/math/NativeMathf.sign|inlined.0 (result f32) - (br $~lib/math/NativeMathf.sign|inlined.0 - (if (result f32) - (f32.gt - (get_local $0) - (f32.const 0) - ) - (f32.const 1) - (if (result f32) - (f32.lt - (get_local $0) - (f32.const 0) - ) - (f32.const -1) - (get_local $0) - ) - ) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $~lib/math/NativeMathf.sign|inlined.0 (result f32) + get_local $0 + f32.const 0 + f32.gt + if (result f32) + f32.const 1 + else + get_local $0 + f32.const 0 + f32.lt + if (result f32) + f32.const -1 + else + get_local $0 + end + end + br $~lib/math/NativeMathf.sign|inlined.0 + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.rem (; 139 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -13803,452 +9914,325 @@ (local $9 i32) (local $10 i64) (local $11 f64) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $4 - (i64.and - (i64.shr_u - (get_local $2) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $5 - (i64.and - (i64.shr_u - (get_local $3) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $6 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 63) - ) - ) - ) - (if - (if (result i32) - (tee_local $7 - (if (result i32) - (tee_local $7 - (i64.eq - (i64.shl - (get_local $3) - (i64.const 1) - ) - (i64.const 0) - ) - ) - (get_local $7) - (i64.eq - (get_local $4) - (i64.const 2047) - ) - ) - ) - (get_local $7) - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - (return - (f64.div - (f64.mul - (get_local $0) - (get_local $1) - ) - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (if - (i64.eq - (i64.shl - (get_local $2) - (i64.const 1) - ) - (i64.const 0) - ) - (return - (get_local $0) - ) - ) - (set_local $8 - (get_local $2) - ) - (if - (i64.eqz - (get_local $4) - ) - (block - (set_local $4 - (i64.sub - (get_local $4) - (i64.clz - (i64.shl - (get_local $8) - (i64.const 12) - ) - ) - ) - ) - (set_local $8 - (i64.shl - (get_local $8) - (i64.add - (i64.sub - (i64.const 0) - (get_local $4) - ) - (i64.const 1) - ) - ) - ) - ) - (block - (set_local $8 - (i64.and - (get_local $8) - (i64.shr_u - (i64.const -1) - (i64.const 12) - ) - ) - ) - (set_local $8 - (i64.or - (get_local $8) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - ) - ) - (if - (i64.eqz - (get_local $5) - ) - (block - (set_local $5 - (i64.sub - (get_local $5) - (i64.clz - (i64.shl - (get_local $3) - (i64.const 12) - ) - ) - ) - ) - (set_local $3 - (i64.shl - (get_local $3) - (i64.add - (i64.sub - (i64.const 0) - (get_local $5) - ) - (i64.const 1) - ) - ) - ) - ) - (block - (set_local $3 - (i64.and - (get_local $3) - (i64.shr_u - (i64.const -1) - (i64.const 12) - ) - ) - ) - (set_local $3 - (i64.or - (get_local $3) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - ) - ) - (set_local $9 - (i32.const 0) - ) - (block $break|0 - (loop $continue|0 - (if - (i64.lt_s - (get_local $4) - (get_local $5) - ) - (block - (if - (i64.eq - (i64.add - (get_local $4) - (i64.const 1) - ) - (get_local $5) - ) - (br $break|0) - ) - (return - (get_local $0) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i64.gt_s - (get_local $4) - (get_local $5) - ) - (block - (block - (if - (i64.ge_u - (get_local $8) - (get_local $3) - ) - (block - (set_local $8 - (i64.sub - (get_local $8) - (get_local $3) - ) - ) - (set_local $9 - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - ) - ) - (set_local $8 - (i64.shl - (get_local $8) - (i64.const 1) - ) - ) - (set_local $9 - (i32.shl - (get_local $9) - (i32.const 1) - ) - ) - (set_local $4 - (i64.sub - (get_local $4) - (i64.const 1) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i64.ge_u - (get_local $8) - (get_local $3) - ) - (block - (set_local $8 - (i64.sub - (get_local $8) - (get_local $3) - ) - ) - (set_local $9 - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - ) - ) - (if - (i64.eq - (get_local $8) - (i64.const 0) - ) - (set_local $4 - (i64.const -60) - ) - (block - (set_local $10 - (i64.clz - (i64.shl - (get_local $8) - (i64.const 11) - ) - ) - ) - (set_local $4 - (i64.sub - (get_local $4) - (get_local $10) - ) - ) - (set_local $8 - (i64.shl - (get_local $8) - (get_local $10) - ) - ) - ) - ) - (br $break|0) - ) - (unreachable) - ) - (if - (i64.gt_s - (get_local $4) - (i64.const 0) - ) - (block - (set_local $8 - (i64.sub - (get_local $8) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - (set_local $8 - (i64.or - (get_local $8) - (i64.shl - (get_local $4) - (i64.const 52) - ) - ) - ) - ) - (set_local $8 - (i64.shr_u - (get_local $8) - (i64.add - (i64.sub - (i64.const 0) - (get_local $4) - ) - (i64.const 1) - ) - ) - ) - ) - (set_local $0 - (f64.reinterpret/i64 - (get_local $8) - ) - ) - (set_local $1 - (f64.abs - (get_local $1) - ) - ) - (set_local $11 - (f64.add - (get_local $0) - (get_local $0) - ) - ) - (if - (if (result i32) - (tee_local $7 - (i64.eq - (get_local $4) - (get_local $5) - ) - ) - (get_local $7) - (if (result i32) - (tee_local $7 - (i64.eq - (i64.add - (get_local $4) - (i64.const 1) - ) - (get_local $5) - ) - ) - (if (result i32) - (tee_local $7 - (f64.gt - (get_local $11) - (get_local $1) - ) - ) - (get_local $7) - (if (result i32) - (tee_local $7 - (f64.eq - (get_local $11) - (get_local $1) - ) - ) - (i32.and - (get_local $9) - (i32.const 1) - ) - (get_local $7) - ) - ) - (get_local $7) - ) - ) - (set_local $0 - (f64.sub - (get_local $0) - (get_local $1) - ) - ) - ) - (if (result f64) - (get_local $6) - (f64.neg - (get_local $0) - ) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $4 + get_local $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $5 + get_local $2 + i64.const 63 + i64.shr_u + i32.wrap/i64 + set_local $6 + get_local $3 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + tee_local $7 + if (result i32) + get_local $7 + else + get_local $4 + i64.const 2047 + i64.eq + end + tee_local $7 + if (result i32) + get_local $7 + else + get_local $1 + call $~lib/builtins/isNaN + end + if + get_local $0 + get_local $1 + f64.mul + get_local $0 + get_local $1 + f64.mul + f64.div + return + end + get_local $2 + i64.const 1 + i64.shl + i64.const 0 + i64.eq + if + get_local $0 + return + end + get_local $2 + set_local $8 + get_local $4 + i64.eqz + if + get_local $4 + get_local $8 + i64.const 12 + i64.shl + i64.clz + i64.sub + set_local $4 + get_local $8 + i64.const 0 + get_local $4 + i64.sub + i64.const 1 + i64.add + i64.shl + set_local $8 + else + get_local $8 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + set_local $8 + get_local $8 + i64.const 1 + i64.const 52 + i64.shl + i64.or + set_local $8 + end + get_local $5 + i64.eqz + if + get_local $5 + get_local $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + set_local $5 + get_local $3 + i64.const 0 + get_local $5 + i64.sub + i64.const 1 + i64.add + i64.shl + set_local $3 + else + get_local $3 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + set_local $3 + get_local $3 + i64.const 1 + i64.const 52 + i64.shl + i64.or + set_local $3 + end + i32.const 0 + set_local $9 + block $break|0 + loop $continue|0 + get_local $4 + get_local $5 + i64.lt_s + if + get_local $4 + i64.const 1 + i64.add + get_local $5 + i64.eq + if + br $break|0 + end + get_local $0 + return + end + block $break|1 + loop $continue|1 + get_local $4 + get_local $5 + i64.gt_s + if + block + get_local $8 + get_local $3 + i64.ge_u + if + get_local $8 + get_local $3 + i64.sub + set_local $8 + get_local $9 + i32.const 1 + i32.add + set_local $9 + end + get_local $8 + i64.const 1 + i64.shl + set_local $8 + get_local $9 + i32.const 1 + i32.shl + set_local $9 + get_local $4 + i64.const 1 + i64.sub + set_local $4 + end + br $continue|1 + end + end + end + get_local $8 + get_local $3 + i64.ge_u + if + get_local $8 + get_local $3 + i64.sub + set_local $8 + get_local $9 + i32.const 1 + i32.add + set_local $9 + end + get_local $8 + i64.const 0 + i64.eq + if + i64.const -60 + set_local $4 + else + get_local $8 + i64.const 11 + i64.shl + i64.clz + set_local $10 + get_local $4 + get_local $10 + i64.sub + set_local $4 + get_local $8 + get_local $10 + i64.shl + set_local $8 + end + br $break|0 + unreachable + end + unreachable + unreachable + end + get_local $4 + i64.const 0 + i64.gt_s + if + get_local $8 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + set_local $8 + get_local $8 + get_local $4 + i64.const 52 + i64.shl + i64.or + set_local $8 + else + get_local $8 + i64.const 0 + get_local $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + set_local $8 + end + get_local $8 + f64.reinterpret/i64 + set_local $0 + get_local $1 + f64.abs + set_local $1 + get_local $0 + get_local $0 + f64.add + set_local $11 + get_local $4 + get_local $5 + i64.eq + tee_local $7 + if (result i32) + get_local $7 + else + get_local $4 + i64.const 1 + i64.add + get_local $5 + i64.eq + tee_local $7 + if (result i32) + get_local $11 + get_local $1 + f64.gt + tee_local $7 + if (result i32) + get_local $7 + else + get_local $11 + get_local $1 + f64.eq + tee_local $7 + if (result i32) + get_local $9 + i32.const 1 + i32.and + else + get_local $7 + end + end + else + get_local $7 + end + end + if + get_local $0 + get_local $1 + f64.sub + set_local $0 + end + get_local $6 + if (result f64) + get_local $0 + f64.neg + else + get_local $0 + end ) (func $std/math/test_rem (; 140 ;) (type $FFFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMath.rem - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.rem + get_local $2 + get_local $3 + get_local $4 + call $std/math/check ) (func $~lib/math/NativeMathf.rem (; 141 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) @@ -14260,450 +10244,324 @@ (local $8 i32) (local $9 i32) (local $10 f32) - (set_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $3 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $4 - (i32.and - (i32.shr_u - (get_local $2) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $5 - (i32.and - (i32.shr_u - (get_local $3) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $6 - (i32.shr_u - (get_local $2) - (i32.const 31) - ) - ) - (set_local $7 - (get_local $2) - ) - (if - (if (result i32) - (tee_local $8 - (if (result i32) - (tee_local $8 - (i32.eq - (i32.shl - (get_local $3) - (i32.const 1) - ) - (i32.const 0) - ) - ) - (get_local $8) - (i32.eq - (get_local $4) - (i32.const 255) - ) - ) - ) - (get_local $8) - (call $~lib/builtins/isNaN - (get_local $1) - ) - ) - (return - (f32.div - (f32.mul - (get_local $0) - (get_local $1) - ) - (f32.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (if - (i32.eq - (i32.shl - (get_local $2) - (i32.const 1) - ) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (block - (set_local $4 - (i32.sub - (get_local $4) - (i32.clz - (i32.shl - (get_local $7) - (i32.const 9) - ) - ) - ) - ) - (set_local $7 - (i32.shl - (get_local $7) - (i32.add - (i32.sub - (i32.const 0) - (get_local $4) - ) - (i32.const 1) - ) - ) - ) - ) - (block - (set_local $7 - (i32.and - (get_local $7) - (i32.shr_u - (i32.const -1) - (i32.const 9) - ) - ) - ) - (set_local $7 - (i32.or - (get_local $7) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (block - (set_local $5 - (i32.sub - (get_local $5) - (i32.clz - (i32.shl - (get_local $3) - (i32.const 9) - ) - ) - ) - ) - (set_local $3 - (i32.shl - (get_local $3) - (i32.add - (i32.sub - (i32.const 0) - (get_local $5) - ) - (i32.const 1) - ) - ) - ) - ) - (block - (set_local $3 - (i32.and - (get_local $3) - (i32.shr_u - (i32.const -1) - (i32.const 9) - ) - ) - ) - (set_local $3 - (i32.or - (get_local $3) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - ) - ) - (set_local $9 - (i32.const 0) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.lt_s - (get_local $4) - (get_local $5) - ) - (block - (if - (i32.eq - (i32.add - (get_local $4) - (i32.const 1) - ) - (get_local $5) - ) - (br $break|0) - ) - (return - (get_local $0) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.gt_s - (get_local $4) - (get_local $5) - ) - (block - (block - (if - (i32.ge_u - (get_local $7) - (get_local $3) - ) - (block - (set_local $7 - (i32.sub - (get_local $7) - (get_local $3) - ) - ) - (set_local $9 - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - ) - ) - (set_local $7 - (i32.shl - (get_local $7) - (i32.const 1) - ) - ) - (set_local $9 - (i32.shl - (get_local $9) - (i32.const 1) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $7) - (get_local $3) - ) - (block - (set_local $7 - (i32.sub - (get_local $7) - (get_local $3) - ) - ) - (set_local $9 - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (set_local $4 - (i32.const -30) - ) - (block - (set_local $8 - (i32.clz - (i32.shl - (get_local $7) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (get_local $8) - ) - ) - (set_local $7 - (i32.shl - (get_local $7) - (get_local $8) - ) - ) - ) - ) - (br $break|0) - ) - (unreachable) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 0) - ) - (block - (set_local $7 - (i32.sub - (get_local $7) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - (set_local $7 - (i32.or - (get_local $7) - (i32.shl - (get_local $4) - (i32.const 23) - ) - ) - ) - ) - (set_local $7 - (i32.shr_u - (get_local $7) - (i32.add - (i32.sub - (i32.const 0) - (get_local $4) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (f32.reinterpret/i32 - (get_local $7) - ) - ) - (set_local $1 - (f32.abs - (get_local $1) - ) - ) - (set_local $10 - (f32.add - (get_local $0) - (get_local $0) - ) - ) - (if - (if (result i32) - (tee_local $8 - (i32.eq - (get_local $4) - (get_local $5) - ) - ) - (get_local $8) - (if (result i32) - (tee_local $8 - (i32.eq - (i32.add - (get_local $4) - (i32.const 1) - ) - (get_local $5) - ) - ) - (if (result i32) - (tee_local $8 - (f32.gt - (get_local $10) - (get_local $1) - ) - ) - (get_local $8) - (if (result i32) - (tee_local $8 - (f32.eq - (get_local $10) - (get_local $1) - ) - ) - (i32.and - (get_local $9) - (i32.const 1) - ) - (get_local $8) - ) - ) - (get_local $8) - ) - ) - (set_local $0 - (f32.sub - (get_local $0) - (get_local $1) - ) - ) - ) - (if (result f32) - (get_local $6) - (f32.neg - (get_local $0) - ) - (get_local $0) - ) + get_local $0 + i32.reinterpret/f32 + set_local $2 + get_local $1 + i32.reinterpret/f32 + set_local $3 + get_local $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $4 + get_local $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $5 + get_local $2 + i32.const 31 + i32.shr_u + set_local $6 + get_local $2 + set_local $7 + get_local $3 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + tee_local $8 + if (result i32) + get_local $8 + else + get_local $4 + i32.const 255 + i32.eq + end + tee_local $8 + if (result i32) + get_local $8 + else + get_local $1 + call $~lib/builtins/isNaN + end + if + get_local $0 + get_local $1 + f32.mul + get_local $0 + get_local $1 + f32.mul + f32.div + return + end + get_local $2 + i32.const 1 + i32.shl + i32.const 0 + i32.eq + if + get_local $0 + return + end + get_local $4 + i32.eqz + if + get_local $4 + get_local $7 + i32.const 9 + i32.shl + i32.clz + i32.sub + set_local $4 + get_local $7 + i32.const 0 + get_local $4 + i32.sub + i32.const 1 + i32.add + i32.shl + set_local $7 + else + get_local $7 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + set_local $7 + get_local $7 + i32.const 1 + i32.const 23 + i32.shl + i32.or + set_local $7 + end + get_local $5 + i32.eqz + if + get_local $5 + get_local $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + set_local $5 + get_local $3 + i32.const 0 + get_local $5 + i32.sub + i32.const 1 + i32.add + i32.shl + set_local $3 + else + get_local $3 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + set_local $3 + get_local $3 + i32.const 1 + i32.const 23 + i32.shl + i32.or + set_local $3 + end + i32.const 0 + set_local $9 + block $break|0 + loop $continue|0 + get_local $4 + get_local $5 + i32.lt_s + if + get_local $4 + i32.const 1 + i32.add + get_local $5 + i32.eq + if + br $break|0 + end + get_local $0 + return + end + block $break|1 + loop $continue|1 + get_local $4 + get_local $5 + i32.gt_s + if + block + get_local $7 + get_local $3 + i32.ge_u + if + get_local $7 + get_local $3 + i32.sub + set_local $7 + get_local $9 + i32.const 1 + i32.add + set_local $9 + end + get_local $7 + i32.const 1 + i32.shl + set_local $7 + get_local $9 + i32.const 1 + i32.shl + set_local $9 + get_local $4 + i32.const 1 + i32.sub + set_local $4 + end + br $continue|1 + end + end + end + get_local $7 + get_local $3 + i32.ge_u + if + get_local $7 + get_local $3 + i32.sub + set_local $7 + get_local $9 + i32.const 1 + i32.add + set_local $9 + end + get_local $7 + i32.const 0 + i32.eq + if + i32.const -30 + set_local $4 + else + get_local $7 + i32.const 8 + i32.shl + i32.clz + set_local $8 + get_local $4 + get_local $8 + i32.sub + set_local $4 + get_local $7 + get_local $8 + i32.shl + set_local $7 + end + br $break|0 + unreachable + end + unreachable + unreachable + end + get_local $4 + i32.const 0 + i32.gt_s + if + get_local $7 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + set_local $7 + get_local $7 + get_local $4 + i32.const 23 + i32.shl + i32.or + set_local $7 + else + get_local $7 + i32.const 0 + get_local $4 + i32.sub + i32.const 1 + i32.add + i32.shr_u + set_local $7 + end + get_local $7 + f32.reinterpret/i32 + set_local $0 + get_local $1 + f32.abs + set_local $1 + get_local $0 + get_local $0 + f32.add + set_local $10 + get_local $4 + get_local $5 + i32.eq + tee_local $8 + if (result i32) + get_local $8 + else + get_local $4 + i32.const 1 + i32.add + get_local $5 + i32.eq + tee_local $8 + if (result i32) + get_local $10 + get_local $1 + f32.gt + tee_local $8 + if (result i32) + get_local $8 + else + get_local $10 + get_local $1 + f32.eq + tee_local $8 + if (result i32) + get_local $9 + i32.const 1 + i32.and + else + get_local $8 + end + end + else + get_local $8 + end + end + if + get_local $0 + get_local $1 + f32.sub + set_local $0 + end + get_local $6 + if (result f32) + get_local $0 + f32.neg + else + get_local $0 + end ) (func $std/math/test_remf (; 142 ;) (type $ffffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.rem - (get_local $0) - (get_local $1) - ) - (get_local $2) - (get_local $3) - (get_local $4) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.rem + get_local $2 + get_local $3 + get_local $4 + call $std/math/check ) (func $~lib/math/NativeMath.sinh (; 143 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) @@ -14712,179 +10570,126 @@ (local $4 f64) (local $5 f64) (local $6 f64) - (set_local $1 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const 9223372036854775807) - ) - ) - (set_local $2 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $3 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (set_local $5 - (f64.copysign - (f64.const 0.5) - (get_local $0) - ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 1082535490) - ) - (block - (set_local $4 - (call $~lib/math/NativeMath.expm1 - (get_local $2) - ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 1072693248) - ) - (block - (if - (i32.lt_u - (get_local $3) - (i32.sub - (i32.const 1072693248) - (i32.shl - (i32.const 26) - (i32.const 20) - ) - ) - ) - (return - (get_local $0) - ) - ) - (return - (f64.mul - (get_local $5) - (f64.sub - (f64.mul - (f64.const 2) - (get_local $4) - ) - (f64.div - (f64.mul - (get_local $4) - (get_local $4) - ) - (f64.add - (get_local $4) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - (return - (f64.mul - (get_local $5) - (f64.add - (get_local $4) - (f64.div - (get_local $4) - (f64.add - (get_local $4) - (f64.const 1) - ) - ) - ) - ) - ) - ) - ) - (set_local $4 - (f64.mul - (f64.mul - (f64.const 2) - (get_local $5) - ) - (block $~lib/math/expo2|inlined.1 (result f64) - (set_local $6 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_u/i32 - (i32.shl - (i32.add - (i32.const 1023) - (i32.div_u - (i32.const 2043) - (i32.const 2) - ) - ) - (i32.const 20) - ) - ) - (i64.const 32) - ) - ) - ) - (f64.mul - (f64.mul - (call $~lib/math/NativeMath.exp - (f64.sub - (get_local $2) - (f64.const 1416.0996898839683) - ) - ) - (get_local $6) - ) - (get_local $6) - ) - ) - ) - ) - (get_local $4) + get_local $0 + i64.reinterpret/f64 + i64.const 9223372036854775807 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $2 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $3 + f64.const 0.5 + get_local $0 + f64.copysign + set_local $5 + get_local $3 + i32.const 1082535490 + i32.lt_u + if + get_local $2 + call $~lib/math/NativeMath.expm1 + set_local $4 + get_local $3 + i32.const 1072693248 + i32.lt_u + if + get_local $3 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub + i32.lt_u + if + get_local $0 + return + end + get_local $5 + f64.const 2 + get_local $4 + f64.mul + get_local $4 + get_local $4 + f64.mul + get_local $4 + f64.const 1 + f64.add + f64.div + f64.sub + f64.mul + return + end + get_local $5 + get_local $4 + get_local $4 + get_local $4 + f64.const 1 + f64.add + f64.div + f64.add + f64.mul + return + end + f64.const 2 + get_local $5 + f64.mul + block $~lib/math/expo2|inlined.1 (result f64) + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_u/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $6 + get_local $2 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + get_local $6 + f64.mul + get_local $6 + f64.mul + end + f64.mul + set_local $4 + get_local $4 ) (func $std/math/test_sinh (; 144 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.sinh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/sinh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.sinh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/sinh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.sinh (; 145 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) @@ -14892,847 +10697,622 @@ (local $3 f32) (local $4 f32) (local $5 f32) - (set_local $1 - (i32.and - (i32.reinterpret/f32 - (get_local $0) - ) - (i32.const 2147483647) - ) - ) - (set_local $2 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (set_local $4 - (f32.copysign - (f32.const 0.5) - (get_local $0) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1118925335) - ) - (block - (set_local $3 - (call $~lib/math/NativeMathf.expm1 - (get_local $2) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 1065353216) - ) - (block - (if - (i32.lt_u - (get_local $1) - (i32.sub - (i32.const 1065353216) - (i32.shl - (i32.const 12) - (i32.const 23) - ) - ) - ) - (return - (get_local $0) - ) - ) - (return - (f32.mul - (get_local $4) - (f32.sub - (f32.mul - (f32.const 2) - (get_local $3) - ) - (f32.div - (f32.mul - (get_local $3) - (get_local $3) - ) - (f32.add - (get_local $3) - (f32.const 1) - ) - ) - ) - ) - ) - ) - ) - (return - (f32.mul - (get_local $4) - (f32.add - (get_local $3) - (f32.div - (get_local $3) - (f32.add - (get_local $3) - (f32.const 1) - ) - ) - ) - ) - ) - ) - ) - (set_local $3 - (f32.mul - (f32.mul - (f32.const 2) - (get_local $4) - ) - (block $~lib/math/expo2f|inlined.1 (result f32) - (set_local $5 - (f32.reinterpret/i32 - (i32.shl - (i32.add - (i32.const 127) - (i32.div_u - (i32.const 235) - (i32.const 2) - ) - ) - (i32.const 23) - ) - ) - ) - (f32.mul - (f32.mul - (call $~lib/math/NativeMathf.exp - (f32.sub - (get_local $2) - (f32.const 162.88958740234375) - ) - ) - (get_local $5) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) + get_local $0 + i32.reinterpret/f32 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $2 + f32.const 0.5 + get_local $0 + f32.copysign + set_local $4 + get_local $1 + i32.const 1118925335 + i32.lt_u + if + get_local $2 + call $~lib/math/NativeMathf.expm1 + set_local $3 + get_local $1 + i32.const 1065353216 + i32.lt_u + if + get_local $1 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub + i32.lt_u + if + get_local $0 + return + end + get_local $4 + f32.const 2 + get_local $3 + f32.mul + get_local $3 + get_local $3 + f32.mul + get_local $3 + f32.const 1 + f32.add + f32.div + f32.sub + f32.mul + return + end + get_local $4 + get_local $3 + get_local $3 + get_local $3 + f32.const 1 + f32.add + f32.div + f32.add + f32.mul + return + end + f32.const 2 + get_local $4 + f32.mul + block $~lib/math/expo2f|inlined.1 (result f32) + i32.const 127 + i32.const 235 + i32.const 2 + i32.div_u + i32.add + i32.const 23 + i32.shl + f32.reinterpret/i32 + set_local $5 + get_local $2 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + get_local $5 + f32.mul + get_local $5 + f32.mul + end + f32.mul + set_local $3 + get_local $3 ) (func $std/math/test_sinhf (; 146 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.sinh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.sinh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $std/math/test_sqrt (; 147 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) - (f64.sqrt - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/sqrt - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) + get_local $0 + f64.sqrt + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/sqrt + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $std/math/test_sqrtf (; 148 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (block $~lib/math/NativeMathf.sqrt|inlined.0 (result f32) - (f32.sqrt - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $~lib/math/NativeMathf.sqrt|inlined.0 (result f32) + get_local $0 + f32.sqrt + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/NativeMath.tanh (; 149 ;) (type $FF) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) (local $4 f64) - (set_local $1 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $1 - (i64.and - (get_local $1) - (i64.const 9223372036854775807) - ) - ) - (set_local $2 - (f64.reinterpret/i64 - (get_local $1) - ) - ) - (set_local $3 - (i32.wrap/i64 - (i64.shr_u - (get_local $1) - (i64.const 32) - ) - ) - ) - (if - (i32.gt_u - (get_local $3) - (i32.const 1071748074) - ) - (if - (i32.gt_u - (get_local $3) - (i32.const 1077149696) - ) - (set_local $4 - (f64.sub - (f64.const 1) - (f64.div - (f64.const 0) - (get_local $2) - ) - ) - ) - (block - (set_local $4 - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const 2) - (get_local $2) - ) - ) - ) - (set_local $4 - (f64.sub - (f64.const 1) - (f64.div - (f64.const 2) - (f64.add - (get_local $4) - (f64.const 2) - ) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $3) - (i32.const 1070618798) - ) - (block - (set_local $4 - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const 2) - (get_local $2) - ) - ) - ) - (set_local $4 - (f64.div - (get_local $4) - (f64.add - (get_local $4) - (f64.const 2) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $3) - (i32.const 1048576) - ) - (block - (set_local $4 - (call $~lib/math/NativeMath.expm1 - (f64.mul - (f64.const -2) - (get_local $2) - ) - ) - ) - (set_local $4 - (f64.div - (f64.neg - (get_local $4) - ) - (f64.add - (get_local $4) - (f64.const 2) - ) - ) - ) - ) - (set_local $4 - (get_local $2) - ) - ) - ) - ) - (f64.copysign - (get_local $4) - (get_local $0) - ) + get_local $0 + i64.reinterpret/f64 + set_local $1 + get_local $1 + i64.const 9223372036854775807 + i64.and + set_local $1 + get_local $1 + f64.reinterpret/i64 + set_local $2 + get_local $1 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $3 + get_local $3 + i32.const 1071748074 + i32.gt_u + if + get_local $3 + i32.const 1077149696 + i32.gt_u + if + f64.const 1 + f64.const 0 + get_local $2 + f64.div + f64.sub + set_local $4 + else + f64.const 2 + get_local $2 + f64.mul + call $~lib/math/NativeMath.expm1 + set_local $4 + f64.const 1 + f64.const 2 + get_local $4 + f64.const 2 + f64.add + f64.div + f64.sub + set_local $4 + end + else + get_local $3 + i32.const 1070618798 + i32.gt_u + if + f64.const 2 + get_local $2 + f64.mul + call $~lib/math/NativeMath.expm1 + set_local $4 + get_local $4 + get_local $4 + f64.const 2 + f64.add + f64.div + set_local $4 + else + get_local $3 + i32.const 1048576 + i32.ge_u + if + f64.const -2 + get_local $2 + f64.mul + call $~lib/math/NativeMath.expm1 + set_local $4 + get_local $4 + f64.neg + get_local $4 + f64.const 2 + f64.add + f64.div + set_local $4 + else + get_local $2 + set_local $4 + end + end + end + get_local $4 + get_local $0 + f64.copysign ) (func $std/math/test_tanh (; 150 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (call $~lib/math/NativeMath.tanh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/tanh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + get_local $0 + call $~lib/math/NativeMath.tanh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/tanh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $~lib/math/NativeMathf.tanh (; 151 ;) (type $ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) - (set_local $1 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $1 - (i32.and - (get_local $1) - (i32.const 2147483647) - ) - ) - (set_local $2 - (f32.reinterpret/i32 - (get_local $1) - ) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1057791828) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1092616192) - ) - (set_local $3 - (f32.add - (f32.const 1) - (f32.div - (f32.const 0) - (get_local $2) - ) - ) - ) - (block - (set_local $3 - (call $~lib/math/NativeMathf.expm1 - (f32.mul - (f32.const 2) - (get_local $2) - ) - ) - ) - (set_local $3 - (f32.sub - (f32.const 1) - (f32.div - (f32.const 2) - (f32.add - (get_local $3) - (f32.const 2) - ) - ) - ) - ) - ) - ) - (if - (i32.gt_u - (get_local $1) - (i32.const 1048757624) - ) - (block - (set_local $3 - (call $~lib/math/NativeMathf.expm1 - (f32.mul - (f32.const 2) - (get_local $2) - ) - ) - ) - (set_local $3 - (f32.div - (get_local $3) - (f32.add - (get_local $3) - (f32.const 2) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 8388608) - ) - (block - (set_local $3 - (call $~lib/math/NativeMathf.expm1 - (f32.mul - (f32.const -2) - (get_local $2) - ) - ) - ) - (set_local $3 - (f32.div - (f32.neg - (get_local $3) - ) - (f32.add - (get_local $3) - (f32.const 2) - ) - ) - ) - ) - (set_local $3 - (get_local $2) - ) - ) - ) - ) - (f32.copysign - (get_local $3) - (get_local $0) - ) + get_local $0 + i32.reinterpret/f32 + set_local $1 + get_local $1 + i32.const 2147483647 + i32.and + set_local $1 + get_local $1 + f32.reinterpret/i32 + set_local $2 + get_local $1 + i32.const 1057791828 + i32.gt_u + if + get_local $1 + i32.const 1092616192 + i32.gt_u + if + f32.const 1 + f32.const 0 + get_local $2 + f32.div + f32.add + set_local $3 + else + f32.const 2 + get_local $2 + f32.mul + call $~lib/math/NativeMathf.expm1 + set_local $3 + f32.const 1 + f32.const 2 + get_local $3 + f32.const 2 + f32.add + f32.div + f32.sub + set_local $3 + end + else + get_local $1 + i32.const 1048757624 + i32.gt_u + if + f32.const 2 + get_local $2 + f32.mul + call $~lib/math/NativeMathf.expm1 + set_local $3 + get_local $3 + get_local $3 + f32.const 2 + f32.add + f32.div + set_local $3 + else + get_local $1 + i32.const 8388608 + i32.ge_u + if + f32.const -2 + get_local $2 + f32.mul + call $~lib/math/NativeMathf.expm1 + set_local $3 + get_local $3 + f32.neg + get_local $3 + f32.const 2 + f32.add + f32.div + set_local $3 + else + get_local $2 + set_local $3 + end + end + end + get_local $3 + get_local $0 + f32.copysign ) (func $std/math/test_tanhf (; 152 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (call $~lib/math/NativeMathf.tanh - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + get_local $0 + call $~lib/math/NativeMathf.tanh + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $std/math/test_trunc (; 153 ;) (type $FFFii) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 i32) - (if (result i32) - (tee_local $4 - (call $std/math/check - (block $~lib/math/NativeMath.trunc|inlined.0 (result f64) - (f64.trunc - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (if (result i32) - (tee_local $4 - (i32.eqz - (get_global $std/math/js) - ) - ) - (get_local $4) - (call $std/math/check - (call $~lib/bindings/Math/trunc - (get_local $0) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - (get_local $4) - ) + block $~lib/math/NativeMath.trunc|inlined.0 (result f64) + get_local $0 + f64.trunc + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + tee_local $4 + if (result i32) + get_global $std/math/js + i32.eqz + tee_local $4 + if (result i32) + get_local $4 + else + get_local $0 + call $~lib/bindings/Math/trunc + get_local $1 + get_local $2 + get_local $3 + call $std/math/check + end + else + get_local $4 + end ) (func $std/math/test_truncf (; 154 ;) (type $fffii) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) - (call $std/math/check - (block $~lib/math/NativeMathf.trunc|inlined.0 (result f32) - (f32.trunc - (get_local $0) - ) - ) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $~lib/math/NativeMathf.trunc|inlined.0 (result f32) + get_local $0 + f32.trunc + end + get_local $1 + get_local $2 + get_local $3 + call $std/math/check ) (func $~lib/math/ipow64 (; 155 ;) (type $IiI) (param $0 i64) (param $1 i32) (result i64) (local $2 i64) (local $3 i32) (local $4 i32) - (set_local $2 - (i64.const 1) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (return - (i64.const 0) - ) - ) - (block $break|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $3 - (get_local $1) - ) - (br_if $case0|0 - (i32.eq - (get_local $3) - (i32.const 0) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $3) - (i32.const 1) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $3) - (i32.const 2) - ) - ) - (br $break|0) - ) - (return - (i64.const 1) - ) - ) - (return - (get_local $0) - ) - ) - (return - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.sub - (i32.const 32) - (i32.clz - (get_local $1) - ) - ) - ) - (if - (i32.le_s - (get_local $3) - (i32.const 6) - ) - (block - (block $break|1 - (block $case5|1 - (block $case4|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (block $case0|1 - (set_local $4 - (get_local $3) - ) - (br_if $case0|1 - (i32.eq - (get_local $4) - (i32.const 6) - ) - ) - (br_if $case1|1 - (i32.eq - (get_local $4) - (i32.const 5) - ) - ) - (br_if $case2|1 - (i32.eq - (get_local $4) - (i32.const 4) - ) - ) - (br_if $case3|1 - (i32.eq - (get_local $4) - (i32.const 3) - ) - ) - (br_if $case4|1 - (i32.eq - (get_local $4) - (i32.const 2) - ) - ) - (br_if $case5|1 - (i32.eq - (get_local $4) - (i32.const 1) - ) - ) - (br $break|1) - ) - (block - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (block - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (block - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (block - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (block - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - ) - (return - (get_local $2) - ) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (i32.gt_s - (get_local $1) - (i32.const 0) - ) - (block - (block - (if - (i32.and - (get_local $1) - (i32.const 1) - ) - (set_local $2 - (i64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.shr_s - (get_local $1) - (i32.const 1) - ) - ) - (set_local $0 - (i64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (get_local $2) + i64.const 1 + set_local $2 + get_local $1 + i32.const 0 + i32.lt_s + if + i64.const 0 + return + end + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $1 + set_local $3 + get_local $3 + i32.const 0 + i32.eq + br_if $case0|0 + get_local $3 + i32.const 1 + i32.eq + br_if $case1|0 + get_local $3 + i32.const 2 + i32.eq + br_if $case2|0 + br $break|0 + end + i64.const 1 + return + end + get_local $0 + return + end + get_local $0 + get_local $0 + i64.mul + return + end + i32.const 32 + get_local $1 + i32.clz + i32.sub + set_local $3 + get_local $3 + i32.const 6 + i32.le_s + if + block $break|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + get_local $3 + set_local $4 + get_local $4 + i32.const 6 + i32.eq + br_if $case0|1 + get_local $4 + i32.const 5 + i32.eq + br_if $case1|1 + get_local $4 + i32.const 4 + i32.eq + br_if $case2|1 + get_local $4 + i32.const 3 + i32.eq + br_if $case3|1 + get_local $4 + i32.const 2 + i32.eq + br_if $case4|1 + get_local $4 + i32.const 1 + i32.eq + br_if $case5|1 + br $break|1 + end + block + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + end + block + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + end + block + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + end + block + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + end + block + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + end + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + end + get_local $2 + return + end + block $break|2 + loop $continue|2 + get_local $1 + i32.const 0 + i32.gt_s + if + block + get_local $1 + i32.const 1 + i32.and + if + get_local $2 + get_local $0 + i64.mul + set_local $2 + end + get_local $1 + i32.const 1 + i32.shr_s + set_local $1 + get_local $0 + get_local $0 + i64.mul + set_local $0 + end + br $continue|2 + end + end + end + get_local $2 ) (func $start (; 156 ;) (type $v) (local $0 i32) @@ -15740,40580 +11320,29982 @@ (local $2 i32) (local $3 i64) (local $4 f32) - (if - (i32.eqz - (f64.eq - (get_global $~lib/math/NativeMath.E) - (get_global $~lib/math/NativeMath.E) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (get_global $~lib/math/NativeMathf.E) - (get_global $~lib/math/NativeMathf.E) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMath.E) - (get_global $~lib/bindings/Math/E) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMath.LN2) - (get_global $~lib/bindings/Math/LN2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMath.LN10) - (get_global $~lib/bindings/Math/LN10) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 118) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMath.LOG2E) - (get_global $~lib/bindings/Math/LOG2E) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 119) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMath.PI) - (get_global $~lib/bindings/Math/PI) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 120) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMath.SQRT1_2) - (get_global $~lib/bindings/Math/SQRT1_2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 121) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMath.SQRT2) - (get_global $~lib/bindings/Math/SQRT2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMathf.E) - (f32.demote/f64 - (get_global $~lib/bindings/Math/E) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMathf.LN2) - (f32.demote/f64 - (get_global $~lib/bindings/Math/LN2) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 125) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMathf.LN10) - (f32.demote/f64 - (get_global $~lib/bindings/Math/LN10) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMathf.LOG2E) - (f32.demote/f64 - (get_global $~lib/bindings/Math/LOG2E) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMathf.PI) - (f32.demote/f64 - (get_global $~lib/bindings/Math/PI) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMathf.SQRT1_2) - (f32.demote/f64 - (get_global $~lib/bindings/Math/SQRT1_2) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/check - (get_global $~lib/math/NativeMathf.SQRT2) - (f32.demote/f64 - (get_global $~lib/bindings/Math/SQRT2) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -8.06684839057968) - (i32.const -2) - (f64.const -2.01671209764492) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 141) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 4.345239849338305) - (i32.const -1) - (f64.const 2.1726199246691524) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 142) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -8.38143342755525) - (i32.const 0) - (f64.const -8.38143342755525) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 143) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -6.531673581913484) - (i32.const 1) - (f64.const -13.063347163826968) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 144) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 9.267056966972586) - (i32.const 2) - (f64.const 37.06822786789034) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 145) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0.6619858980995045) - (i32.const 3) - (f64.const 5.295887184796036) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 146) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -0.4066039223853553) - (i32.const 4) - (f64.const -6.505662758165685) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 147) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0.5617597462207241) - (i32.const 5) - (f64.const 17.97631187906317) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 148) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0.7741522965913037) - (i32.const 6) - (f64.const 49.545746981843436) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 149) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -0.6787637026394024) - (i32.const 7) - (f64.const -86.88175393784351) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 150) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0) - (i32.const 2147483647) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 153) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0) - (i32.const -2147483647) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 154) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const -0) - (i32.const 2147483647) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const nan:0x8000000000000) - (i32.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 156) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const inf) - (i32.const 0) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 157) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.neg - (f64.const inf) - ) - (i32.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 158) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 1) - (i32.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 1) - (i32.const 1) - (f64.const 2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 160) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 1) - (i32.const -1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 161) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 1) - (i32.const 2147483647) - (f64.const inf) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/OVERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 162) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const nan:0x8000000000000) - (i32.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 163) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const inf) - (i32.const 2147483647) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 164) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const inf) - (i32.const -2147483647) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.neg - (f64.const inf) - ) - (i32.const 2147483647) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 166) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 8988465674311579538646525e283) - (i32.const -2097) - (f64.const 5e-324) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 167) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 5e-324) - (i32.const 2097) - (f64.const 8988465674311579538646525e283) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 168) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 1.000244140625) - (i32.const -1074) - (f64.const 5e-324) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 169) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0.7499999999999999) - (i32.const -1073) - (f64.const 5e-324) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 170) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbn - (f64.const 0.5000000000000012) - (i32.const -1024) - (f64.const 2.781342323134007e-309) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 171) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -8.066848754882812) - (i32.const -2) - (f32.const -2.016712188720703) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 180) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 4.345239639282227) - (i32.const -1) - (f32.const 2.1726198196411133) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 181) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -8.381433486938477) - (i32.const 0) - (f32.const -8.381433486938477) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 182) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -6.531673431396484) - (i32.const 1) - (f32.const -13.063346862792969) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 183) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 9.267057418823242) - (i32.const 2) - (f32.const 37.06822967529297) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 184) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0.6619858741760254) - (i32.const 3) - (f32.const 5.295886993408203) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 185) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -0.40660393238067627) - (i32.const 4) - (f32.const -6.50566291809082) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 186) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0.5617597699165344) - (i32.const 5) - (f32.const 17.9763126373291) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 187) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0.7741522789001465) - (i32.const 6) - (f32.const 49.545745849609375) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 188) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -0.6787636876106262) - (i32.const 7) - (f32.const -86.88175201416016) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 189) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0) - (i32.const 2147483647) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 192) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0) - (i32.const -2147483647) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 193) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const -0) - (i32.const 2147483647) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 194) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const nan:0x400000) - (i32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 195) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const inf) - (i32.const 0) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 196) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.neg - (f32.const inf) - ) - (i32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 197) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1) - (i32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 198) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1) - (i32.const 1) - (f32.const 2) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 199) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1) - (i32.const -1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 200) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1) - (i32.const 2147483647) - (f32.const inf) - (f32.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/OVERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 201) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const nan:0x400000) - (i32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 202) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const inf) - (i32.const 2147483647) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 203) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const inf) - (i32.const -2147483647) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 204) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.neg - (f32.const inf) - ) - (i32.const 2147483647) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 205) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1701411834604692317316873e14) - (i32.const -276) - (f32.const 1.401298464324817e-45) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 206) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1.401298464324817e-45) - (i32.const 276) - (f32.const 1701411834604692317316873e14) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 207) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 1.000244140625) - (i32.const -149) - (f32.const 1.401298464324817e-45) - (f32.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 208) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0.7499999403953552) - (i32.const -148) - (f32.const 1.401298464324817e-45) - (f32.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 209) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_scalbnf - (f32.const 0.5000006556510925) - (i32.const -128) - (f32.const 1.4693693398263237e-39) - (f32.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 210) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -8.06684839057968) - (f64.const 8.06684839057968) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 222) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 4.345239849338305) - (f64.const 4.345239849338305) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 223) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -8.38143342755525) - (f64.const 8.38143342755525) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 224) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -6.531673581913484) - (f64.const 6.531673581913484) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 225) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 9.267056966972586) - (f64.const 9.267056966972586) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 226) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 0.6619858980995045) - (f64.const 0.6619858980995045) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 227) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -0.4066039223853553) - (f64.const 0.4066039223853553) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 228) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 0.5617597462207241) - (f64.const 0.5617597462207241) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 229) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 0.7741522965913037) - (f64.const 0.7741522965913037) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 230) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -0.6787637026394024) - (f64.const 0.6787637026394024) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 231) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 234) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 235) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 236) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const -1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 237) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 238) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 239) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_abs - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 240) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -8.066848754882812) - (f32.const 8.066848754882812) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 249) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 4.345239639282227) - (f32.const 4.345239639282227) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 250) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -8.381433486938477) - (f32.const 8.381433486938477) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 251) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -6.531673431396484) - (f32.const 6.531673431396484) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 252) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 9.267057418823242) - (f32.const 9.267057418823242) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 253) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 0.6619858741760254) - (f32.const 0.6619858741760254) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 254) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -0.40660393238067627) - (f32.const 0.40660393238067627) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 255) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 0.5617597699165344) - (f32.const 0.5617597699165344) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 256) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 0.7741522789001465) - (f32.const 0.7741522789001465) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 257) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -0.6787636876106262) - (f32.const 0.6787636876106262) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 258) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 261) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 262) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 263) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const -1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 264) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 265) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 266) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_absf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 267) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 279) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 4.345239849338305) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 280) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 281) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 282) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 9.267056966972586) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 283) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 0.6619858980995045) - (f64.const 0.8473310828433507) - (f64.const -0.41553276777267456) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 284) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -0.4066039223853553) - (f64.const 1.989530071088669) - (f64.const 0.4973946213722229) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 285) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 0.5617597462207241) - (f64.const 0.9742849645674904) - (f64.const -0.4428897500038147) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 286) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 0.7741522965913037) - (f64.const 0.6854215158636222) - (f64.const -0.12589527666568756) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 287) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -0.6787637026394024) - (f64.const 2.316874138205964) - (f64.const -0.17284949123859406) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 288) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 0) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 291) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -1) - (f64.const 3.141592653589793) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 292) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 293) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 1.0000000000000002) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 294) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -1.0000000000000002) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 295) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 296) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 297) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 298) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const -0.5309227209592985) - (f64.const 2.1304853799705463) - (f64.const 0.1391008496284485) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 299) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acos - (f64.const 0.4939556746399746) - (f64.const 1.0541629875851946) - (f64.const 0.22054767608642578) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 300) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 309) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 4.345239639282227) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 310) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 311) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 312) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 9.267057418823242) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 313) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 0.6619858741760254) - (f32.const 0.8473311066627502) - (f32.const -0.13588131964206696) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 314) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -0.40660393238067627) - (f32.const 1.989530086517334) - (f32.const 0.03764917701482773) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 315) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 0.5617597699165344) - (f32.const 0.9742849469184875) - (f32.const 0.18443739414215088) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 316) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 0.7741522789001465) - (f32.const 0.6854215264320374) - (f32.const -0.29158344864845276) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 317) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -0.6787636876106262) - (f32.const 2.3168740272521973) - (f32.const -0.3795364499092102) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 318) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 0) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 321) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -1) - (f32.const 3.1415927410125732) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 322) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 323) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 1.0000001192092896) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 324) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -1.0000001192092896) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 325) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 326) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 327) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 328) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const 0.49965065717697144) - (f32.const 1.0476008653640747) - (f32.const -0.21161814033985138) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 329) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -0.5051405429840088) - (f32.const 2.1003410816192627) - (f32.const -0.20852705836296082) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 330) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosf - (f32.const -0.5189794898033142) - (f32.const 2.116452932357788) - (f32.const -0.14600826799869537) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 331) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 343) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 4.345239849338305) - (f64.const 2.1487163980597503) - (f64.const -0.291634738445282) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 344) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 345) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 346) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 9.267056966972586) - (f64.const 2.91668914109908) - (f64.const -0.24191908538341522) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 347) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 0.6619858980995045) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 348) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -0.4066039223853553) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 349) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 0.5617597462207241) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 350) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 0.7741522965913037) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 351) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -0.6787637026394024) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 352) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 355) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 356) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 357) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 0.9999923706054688) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 358) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 359) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 360) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 361) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 1.1060831199926429) - (f64.const 0.4566373404384803) - (f64.const -0.29381608963012695) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 377) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 1.1089809557628658) - (f64.const 0.4627246859959428) - (f64.const -0.3990095555782318) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 379) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acosh - (f64.const 1.1169429159875521) - (f64.const 0.47902433134075284) - (f64.const -0.321674108505249) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 380) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 389) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 4.345239639282227) - (f32.const 2.148716449737549) - (f32.const 0.4251045286655426) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 390) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 391) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 392) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 9.267057418823242) - (f32.const 2.916689157485962) - (f32.const -0.1369788944721222) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 393) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 0.6619858741760254) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 394) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -0.40660393238067627) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 395) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 0.5617597699165344) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 396) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 0.7741522789001465) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 397) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -0.6787636876106262) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 398) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 401) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 402) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 403) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 0.9999923706054688) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 404) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 405) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 406) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 407) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_acoshf - (f32.const -1125899906842624) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 408) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 420) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 4.345239849338305) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 421) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 422) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 423) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 9.267056966972586) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 424) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 0.6619858980995045) - (f64.const 0.7234652439515459) - (f64.const -0.13599912822246552) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 425) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -0.4066039223853553) - (f64.const -0.41873374429377225) - (f64.const -0.09264230728149414) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 426) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 0.5617597462207241) - (f64.const 0.5965113622274062) - (f64.const -0.10864213854074478) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 427) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 0.7741522965913037) - (f64.const 0.8853748109312743) - (f64.const -0.4256366193294525) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 428) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -0.6787637026394024) - (f64.const -0.7460778114110673) - (f64.const 0.13986606895923615) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 429) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 1) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 432) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -1) - (f64.const -1.5707963267948966) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 433) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 434) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 435) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 1.0000000000000002) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 436) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const -1.0000000000000002) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 437) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 438) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 439) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 440) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asin - (f64.const 0.5073043929119148) - (f64.const 0.5320538997772349) - (f64.const -0.16157317161560059) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 441) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 450) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 4.345239639282227) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 451) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 452) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 453) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 9.267057418823242) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 454) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 0.6619858741760254) - (f32.const 0.7234652042388916) - (f32.const -0.1307632476091385) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 455) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -0.40660393238067627) - (f32.const -0.41873374581336975) - (f32.const 0.3161141574382782) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 456) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 0.5617597699165344) - (f32.const 0.5965113639831543) - (f32.const -0.4510819613933563) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 457) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 0.7741522789001465) - (f32.const 0.8853747844696045) - (f32.const 0.02493886835873127) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 458) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -0.6787636876106262) - (f32.const -0.7460777759552002) - (f32.const 0.2515012323856354) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 459) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 1) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 462) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -1) - (f32.const -1.5707963705062866) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 463) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 464) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 465) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 1.0000001192092896) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 466) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const -1.0000001192092896) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 467) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 468) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 469) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 470) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinf - (f32.const 0.5004770159721375) - (f32.const 0.5241496562957764) - (f32.const -0.29427099227905273) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 471) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -8.06684839057968) - (f64.const -2.784729878387861) - (f64.const -0.4762189984321594) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 483) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 4.345239849338305) - (f64.const 2.175213389013164) - (f64.const -0.02728751301765442) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 484) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -8.38143342755525) - (f64.const -2.822706083697696) - (f64.const 0.20985257625579834) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 485) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -6.531673581913484) - (f64.const -2.575619446591922) - (f64.const 0.3113134205341339) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 486) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 9.267056966972586) - (f64.const 2.9225114951048674) - (f64.const 0.4991756081581116) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 487) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 0.6619858980995045) - (f64.const 0.6212462762707166) - (f64.const -0.4697347581386566) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 488) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -0.4066039223853553) - (f64.const -0.39615990393192035) - (f64.const -0.40814438462257385) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 489) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 0.5617597462207241) - (f64.const 0.5357588870255474) - (f64.const 0.3520713150501251) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 490) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 0.7741522965913037) - (f64.const 0.7123571263197349) - (f64.const 0.13371451199054718) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 491) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -0.6787637026394024) - (f64.const -0.635182348903198) - (f64.const 0.04749670997262001) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 492) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 495) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 496) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 497) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 498) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinh - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 499) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -8.066848754882812) - (f32.const -2.7847299575805664) - (f32.const -0.14418013393878937) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 528) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 4.345239639282227) - (f32.const 2.17521333694458) - (f32.const -0.020796965807676315) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 529) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -8.381433486938477) - (f32.const -2.8227059841156006) - (f32.const 0.44718533754348755) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 530) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -6.531673431396484) - (f32.const -2.5756194591522217) - (f32.const -0.14822272956371307) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 531) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 9.267057418823242) - (f32.const 2.922511577606201) - (f32.const 0.14270681142807007) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 532) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 0.6619858741760254) - (f32.const 0.6212462782859802) - (f32.const 0.3684912919998169) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 533) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -0.40660393238067627) - (f32.const -0.39615991711616516) - (f32.const -0.13170306384563446) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 534) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 0.5617597699165344) - (f32.const 0.535758912563324) - (f32.const 0.08184859901666641) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 535) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 0.7741522789001465) - (f32.const 0.7123571038246155) - (f32.const -0.14270737767219543) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 536) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -0.6787636876106262) - (f32.const -0.6351823210716248) - (f32.const 0.2583143711090088) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 537) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 540) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 541) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 542) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 543) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_asinhf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 544) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -8.06684839057968) - (f64.const -1.4474613762633468) - (f64.const 0.14857111871242523) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 556) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 4.345239849338305) - (f64.const 1.344597927114538) - (f64.const -0.08170335739850998) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 557) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -8.38143342755525) - (f64.const -1.4520463463295539) - (f64.const -0.07505480200052261) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 558) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -6.531673581913484) - (f64.const -1.4188758658752532) - (f64.const -0.057633496820926666) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 559) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 9.267056966972586) - (f64.const 1.463303145448706) - (f64.const 0.1606956422328949) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 560) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 0.6619858980995045) - (f64.const 0.5847550670238325) - (f64.const 0.4582556486129761) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 561) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -0.4066039223853553) - (f64.const -0.3861864177552131) - (f64.const -0.2574281692504883) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 562) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 0.5617597462207241) - (f64.const 0.5118269531628881) - (f64.const -0.11444277316331863) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 563) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 0.7741522965913037) - (f64.const 0.6587802431653822) - (f64.const -0.11286488175392151) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 564) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -0.6787637026394024) - (f64.const -0.5963307826973472) - (f64.const -0.2182842344045639) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 565) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 568) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 569) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 1) - (f64.const 0.7853981633974483) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 570) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const -1) - (f64.const -0.7853981633974483) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 571) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const inf) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 572) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.neg - (f64.const inf) - ) - (f64.const -1.5707963267948966) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 573) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 574) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan - (f64.const 0.6929821535674624) - (f64.const 0.6060004555152562) - (f64.const -0.17075790464878082) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 575) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -8.066848754882812) - (f32.const -1.4474613666534424) - (f32.const 0.12686480581760406) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 584) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 4.345239639282227) - (f32.const 1.3445979356765747) - (f32.const 0.16045434772968292) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 585) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -8.381433486938477) - (f32.const -1.4520463943481445) - (f32.const -0.39581751823425293) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 586) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -6.531673431396484) - (f32.const -1.418875813484192) - (f32.const 0.410570353269577) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 587) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 9.267057418823242) - (f32.const 1.4633032083511353) - (f32.const 0.48403501510620117) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 588) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 0.6619858741760254) - (f32.const 0.5847550630569458) - (f32.const 0.2125193476676941) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 589) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -0.40660393238067627) - (f32.const -0.386186420917511) - (f32.const 0.18169628083705902) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 590) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 0.5617597699165344) - (f32.const 0.5118269920349121) - (f32.const 0.3499770760536194) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 591) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 0.7741522789001465) - (f32.const 0.6587802171707153) - (f32.const -0.2505330741405487) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 592) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -0.6787636876106262) - (f32.const -0.5963307619094849) - (f32.const 0.17614826560020447) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 593) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 596) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 597) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const 1) - (f32.const 0.7853981852531433) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 598) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const -1) - (f32.const -0.7853981852531433) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 599) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const inf) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 600) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.neg - (f32.const inf) - ) - (f32.const -1.5707963705062866) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 601) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 602) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 614) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 4.345239849338305) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 615) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 616) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 617) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 9.267056966972586) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 618) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 0.6619858980995045) - (f64.const 0.7963404371347943) - (f64.const 0.21338365972042084) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 619) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -0.4066039223853553) - (f64.const -0.43153570730602897) - (f64.const -0.4325666129589081) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 620) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 0.5617597462207241) - (f64.const 0.6354006111644578) - (f64.const -0.06527865678071976) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 621) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 0.7741522965913037) - (f64.const 1.0306085575277995) - (f64.const 0.14632052183151245) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 622) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -0.6787637026394024) - (f64.const -0.8268179645205255) - (f64.const 0.1397128701210022) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 623) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 626) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 627) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 628) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 629) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 630) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 1) - (f64.const inf) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 631) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 632) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 1.0000152587890625) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 633) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -1.0000152587890625) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 634) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 1.3552527156068805e-20) - (f64.const 1.3552527156068805e-20) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 635) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 9.332636185032189e-302) - (f64.const 9.332636185032189e-302) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 636) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 5.562684646268003e-309) - (f64.const 5.562684646268003e-309) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 637) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const -5.562684646268003e-309) - (f64.const -5.562684646268003e-309) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 638) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanh - (f64.const 8988465674311579538646525e283) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 639) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 648) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 4.345239639282227) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 649) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 650) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 651) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 9.267057418823242) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 652) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 0.6619858741760254) - (f32.const 0.7963404059410095) - (f32.const 0.19112196564674377) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 653) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -0.40660393238067627) - (f32.const -0.4315357208251953) - (f32.const -0.05180925130844116) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 654) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 0.5617597699165344) - (f32.const 0.635400652885437) - (f32.const 0.11911056190729141) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 655) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 0.7741522789001465) - (f32.const 1.0306085348129272) - (f32.const 0.1798270344734192) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 656) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -0.6787636876106262) - (f32.const -0.8268179297447205) - (f32.const 0.11588983237743378) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 657) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 660) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 661) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 662) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 663) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 664) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 1) - (f32.const inf) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 665) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 666) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 1.0000152587890625) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 667) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -1.0000152587890625) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 668) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 1.3552527156068805e-20) - (f32.const 1.3552527156068805e-20) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 669) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 7.888609052210118e-31) - (f32.const 7.888609052210118e-31) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 670) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 2.938735877055719e-39) - (f32.const 2.938735877055719e-39) - (f32.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 671) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const -2.938735877055719e-39) - (f32.const -2.938735877055719e-39) - (f32.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 672) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atanhf - (f32.const 1701411834604692317316873e14) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 673) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const -1.0585895402489023) - (f64.const 0.09766263514757156) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 685) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 2.6868734126013067) - (f64.const 0.35833948850631714) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 686) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const -1.889300091849528) - (f64.const -0.46235957741737366) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 687) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const -0.9605469021111489) - (f64.const -0.21524477005004883) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 688) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 1.0919123946142109) - (f64.const 0.3894443213939667) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 689) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const -1.468508500616424) - (f64.const -0.448591411113739) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 690) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 1.5641600512601268) - (f64.const 0.3784842789173126) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 691) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const -0.10281658910678508) - (f64.const -0.13993260264396667) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 692) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 0.29697974004493516) - (f64.const 0.44753071665763855) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 693) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const -1.5131612053303916) - (f64.const 0.39708876609802246) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 694) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 697) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const -0) - (f64.const 3.141592653589793) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 698) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const -1) - (f64.const 3.141592653589793) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 699) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const 3.141592653589793) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 700) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 701) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 0) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 702) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const 0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 703) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const -0) - (f64.const -3.141592653589793) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 704) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const -1) - (f64.const -3.141592653589793) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 705) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.const -3.141592653589793) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 706) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 707) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -0) - (f64.const inf) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 708) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -1) - (f64.const 0) - (f64.const -1.5707963267948966) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 709) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -1) - (f64.const -0) - (f64.const -1.5707963267948966) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 710) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1) - (f64.const 0) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 711) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1) - (f64.const -0) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 712) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -1) - (f64.const inf) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 713) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 714) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.const -3.141592653589793) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 715) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1) - (f64.neg - (f64.const inf) - ) - (f64.const 3.141592653589793) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 716) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const inf) - (f64.const 0) - (f64.const 1.5707963267948966) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 717) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const -1.5707963267948966) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 718) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const inf) - (f64.const inf) - (f64.const 0.7853981633974483) - (f64.const -0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 719) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const inf) - (f64.neg - (f64.const inf) - ) - (f64.const 2.356194490192345) - (f64.const -0.20682445168495178) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 720) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const -0.7853981633974483) - (f64.const 0.27576595544815063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 721) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const -2.356194490192345) - (f64.const 0.20682445168495178) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 722) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1.1125369292536007e-308) - (f64.const 1) - (f64.const 1.1125369292536007e-308) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 723) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1) - (f64.const 8988465674311579538646525e283) - (f64.const 1.1125369292536007e-308) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 724) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1.5) - (f64.const 8988465674311579538646525e283) - (f64.const 1.668805393880401e-308) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 725) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2 - (f64.const 1.5) - (f64.const -8988465674311579538646525e283) - (f64.const 3.141592653589793) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 726) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const -1.0585895776748657) - (f32.const -0.22352588176727295) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 735) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 2.686873435974121) - (f32.const 0.09464472532272339) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 736) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const -1.8893001079559326) - (f32.const -0.21941901743412018) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 737) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const -0.9605468511581421) - (f32.const 0.46015575528144836) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 738) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 1.0919123888015747) - (f32.const -0.05708503723144531) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 739) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const -1.4685084819793701) - (f32.const 0.19611206650733948) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 740) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 1.5641601085662842) - (f32.const 0.48143187165260315) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 741) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const -0.10281659662723541) - (f32.const -0.4216274917125702) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 742) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 0.29697975516319275) - (f32.const 0.2322007566690445) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 743) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const -1.5131611824035645) - (f32.const 0.16620726883411407) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 744) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 747) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const -0) - (f32.const 3.1415927410125732) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 748) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const -1) - (f32.const 3.1415927410125732) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 749) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 3.1415927410125732) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 750) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 751) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 0) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 752) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const 0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 753) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const -0) - (f32.const -3.1415927410125732) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 754) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const -1) - (f32.const -3.1415927410125732) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 755) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const -3.1415927410125732) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 756) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 757) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -0) - (f32.const inf) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 758) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -1) - (f32.const 0) - (f32.const -1.5707963705062866) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 759) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -1) - (f32.const -0) - (f32.const -1.5707963705062866) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 760) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 1) - (f32.const 0) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 761) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 1) - (f32.const -0) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 762) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -1) - (f32.const inf) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 763) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 1) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 764) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.const -3.1415927410125732) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 765) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 1) - (f32.neg - (f32.const inf) - ) - (f32.const 3.1415927410125732) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 766) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const inf) - (f32.const 0) - (f32.const 1.5707963705062866) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 767) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const -1.5707963705062866) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 768) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const inf) - (f32.const inf) - (f32.const 0.7853981852531433) - (f32.const 0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 769) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const inf) - (f32.neg - (f32.const inf) - ) - (f32.const 2.356194496154785) - (f32.const 0.02500828728079796) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 770) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const -0.7853981852531433) - (f32.const -0.3666777014732361) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 771) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const -2.356194496154785) - (f32.const -0.02500828728079796) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 772) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 5.877471754111438e-39) - (f32.const 1) - (f32.const 5.877471754111438e-39) - (f32.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 773) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_atan2f - (f32.const 1) - (f32.const 1701411834604692317316873e14) - (f32.const 5.877471754111438e-39) - (f32.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 774) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -8.06684839057968) - (f64.const -2.0055552545020245) - (f64.const 0.46667951345443726) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 786) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 4.345239849338305) - (f64.const 1.6318162410515635) - (f64.const -0.08160271495580673) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 787) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -8.38143342755525) - (f64.const -2.031293910673361) - (f64.const -0.048101816326379776) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 788) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -6.531673581913484) - (f64.const -1.8692820012204925) - (f64.const 0.08624018728733063) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 789) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 9.267056966972586) - (f64.const 2.100457720859702) - (f64.const -0.2722989022731781) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 790) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 0.6619858980995045) - (f64.const 0.8715311470455973) - (f64.const 0.4414918124675751) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 791) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -0.4066039223853553) - (f64.const -0.740839030300223) - (f64.const 0.016453813761472702) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 792) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 0.5617597462207241) - (f64.const 0.8251195400559286) - (f64.const 0.30680638551712036) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 793) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 0.7741522965913037) - (f64.const 0.9182102478959914) - (f64.const 0.06543998420238495) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 794) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -0.6787637026394024) - (f64.const -0.8788326906580094) - (f64.const -0.2016713172197342) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 795) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 798) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 799) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 800) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 801) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 802) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 9.313225746154785e-10) - (f64.const 0.0009765625) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 803) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -9.313225746154785e-10) - (f64.const -0.0009765625) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 804) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 805) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 806) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrt - (f64.const 8) - (f64.const 2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 807) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -8.066848754882812) - (f32.const -2.0055553913116455) - (f32.const -0.44719240069389343) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 816) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 4.345239639282227) - (f32.const 1.6318162679672241) - (f32.const 0.44636252522468567) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 817) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -8.381433486938477) - (f32.const -2.0312938690185547) - (f32.const 0.19483426213264465) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 818) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -6.531673431396484) - (f32.const -1.8692820072174072) - (f32.const -0.17075514793395996) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 819) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 9.267057418823242) - (f32.const 2.1004576683044434) - (f32.const -0.36362043023109436) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 820) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 0.6619858741760254) - (f32.const 0.8715311288833618) - (f32.const -0.12857209146022797) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 821) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -0.40660393238067627) - (f32.const -0.7408390641212463) - (f32.const -0.4655757546424866) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 822) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 0.5617597699165344) - (f32.const 0.8251195549964905) - (f32.const 0.05601907894015312) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 823) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 0.7741522789001465) - (f32.const 0.9182102680206299) - (f32.const 0.45498204231262207) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 824) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -0.6787636876106262) - (f32.const -0.8788326978683472) - (f32.const -0.22978967428207397) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 825) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 828) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 829) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 830) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 831) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 832) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 9.313225746154785e-10) - (f32.const 0.0009765625) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 833) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -9.313225746154785e-10) - (f32.const -0.0009765625) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 834) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 835) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 836) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cbrtf - (f32.const 8) - (f32.const 2) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 837) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -8.06684839057968) - (f64.const -8) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 849) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 4.345239849338305) - (f64.const 5) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 850) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -8.38143342755525) - (f64.const -8) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 851) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -6.531673581913484) - (f64.const -6) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 852) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 9.267056966972586) - (f64.const 10) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 853) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.6619858980995045) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 854) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.4066039223853553) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 855) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.5617597462207241) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 856) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.7741522965913037) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 857) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.6787637026394024) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 858) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 861) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 862) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 863) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 864) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 865) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 866) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 867) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.5) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 868) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.5) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 869) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1.0000152587890625) - (f64.const 2) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 870) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1.0000152587890625) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 871) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.9999923706054688) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 872) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.9999923706054688) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 873) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 7.888609052210118e-31) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 874) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -7.888609052210118e-31) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 875) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 876) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 877) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 878) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 879) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 880) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 881) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 882) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.5) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 883) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.5) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 884) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1.0000152587890625) - (f64.const 2) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 885) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1.0000152587890625) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 886) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.9999923706054688) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 887) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.9999923706054688) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 888) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 7.888609052210118e-31) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 889) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -7.888609052210118e-31) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 890) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 891) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 892) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 893) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 894) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 895) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 896) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 897) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.5) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 898) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.5) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 899) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 1.0000152587890625) - (f64.const 2) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 900) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -1.0000152587890625) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 901) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 0.9999923706054688) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 902) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -0.9999923706054688) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 903) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const 7.888609052210118e-31) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 904) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceil - (f64.const -7.888609052210118e-31) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 905) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -8.066848754882812) - (f32.const -8) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 914) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 4.345239639282227) - (f32.const 5) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 915) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -8.381433486938477) - (f32.const -8) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 916) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -6.531673431396484) - (f32.const -6) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 917) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 9.267057418823242) - (f32.const 10) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 918) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.6619858741760254) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 919) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.40660393238067627) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 920) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.5617597699165344) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 921) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.7741522789001465) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 922) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.6787636876106262) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 923) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 926) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 927) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 928) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 929) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 930) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 931) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 932) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.5) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 933) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.5) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 934) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1.0000152587890625) - (f32.const 2) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 935) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1.0000152587890625) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 936) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.9999923706054688) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 937) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.9999923706054688) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 938) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 7.888609052210118e-31) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 939) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -7.888609052210118e-31) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 940) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 941) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 942) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 943) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 944) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 945) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 946) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 947) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.5) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 948) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.5) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 949) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1.0000152587890625) - (f32.const 2) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 950) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1.0000152587890625) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 951) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.9999923706054688) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 952) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.9999923706054688) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 953) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 7.888609052210118e-31) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 954) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -7.888609052210118e-31) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 955) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 956) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 957) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 958) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 959) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 960) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 961) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 962) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.5) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 963) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.5) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 964) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 1.0000152587890625) - (f32.const 2) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 965) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -1.0000152587890625) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 966) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 0.9999923706054688) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 967) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -0.9999923706054688) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 968) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const 7.888609052210118e-31) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 969) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_ceilf - (f32.const -7.888609052210118e-31) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 970) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -8.06684839057968) - (f64.const 1593.5209938862329) - (f64.const -0.38098856806755066) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 4.345239849338305) - (f64.const 38.56174928426729) - (f64.const -0.2712278366088867) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1108) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -8.38143342755525) - (f64.const 2182.630979595893) - (f64.const 0.0817827582359314) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -6.531673581913484) - (f64.const 343.273849250879) - (f64.const -0.429940402507782) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 9.267056966972586) - (f64.const 5291.779170005587) - (f64.const -0.1592995822429657) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 0.6619858980995045) - (f64.const 1.2272321957342842) - (f64.const 0.23280741274356842) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1112) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -0.4066039223853553) - (f64.const 1.083808541871197) - (f64.const -0.3960916996002197) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1113) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 0.5617597462207241) - (f64.const 1.1619803583175077) - (f64.const 0.37748390436172485) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 0.7741522965913037) - (f64.const 1.3149236876276706) - (f64.const 0.43587008118629456) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -0.6787637026394024) - (f64.const 1.2393413245934533) - (f64.const 0.10201606154441833) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1119) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1120) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1121) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_cosh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1123) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -8.066848754882812) - (f32.const 1593.5216064453125) - (f32.const 0.26242581009864807) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 4.345239639282227) - (f32.const 38.56174087524414) - (f32.const -0.08168885856866837) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -8.381433486938477) - (f32.const 2182.631103515625) - (f32.const -0.02331414446234703) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1134) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -6.531673431396484) - (f32.const 343.2738037109375) - (f32.const 0.20081493258476257) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1135) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 9.267057418823242) - (f32.const 5291.78173828125) - (f32.const 0.36286723613739014) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1136) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 0.6619858741760254) - (f32.const 1.2272322177886963) - (f32.const 0.32777416706085205) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1137) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -0.40660393238067627) - (f32.const 1.0838085412979126) - (f32.const -0.039848703891038895) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1138) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 0.5617597699165344) - (f32.const 1.161980390548706) - (f32.const 0.15274477005004883) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1139) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 0.7741522789001465) - (f32.const 1.314923644065857) - (f32.const -0.2387111485004425) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1140) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -0.6787636876106262) - (f32.const 1.2393412590026855) - (f32.const -0.45791932940483093) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1141) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1144) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1145) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1146) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1147) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_coshf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1148) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -8.06684839057968) - (f64.const 3.137706068161745e-04) - (f64.const -0.2599197328090668) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1160) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 4.345239849338305) - (f64.const 77.11053017112141) - (f64.const -0.02792675793170929) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1161) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -8.38143342755525) - (f64.const 2.290813384916323e-04) - (f64.const -0.24974334239959717) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1162) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -6.531673581913484) - (f64.const 1.4565661260931588e-03) - (f64.const -0.4816822409629822) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1163) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 9.267056966972586) - (f64.const 10583.558245524993) - (f64.const 0.17696762084960938) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1164) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 0.6619858980995045) - (f64.const 1.9386384525571998) - (f64.const -0.4964246451854706) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1165) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -0.4066039223853553) - (f64.const 0.6659078892838025) - (f64.const -0.10608318448066711) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1166) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 0.5617597462207241) - (f64.const 1.7537559518626311) - (f64.const -0.39162111282348633) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1167) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 0.7741522965913037) - (f64.const 2.1687528885129246) - (f64.const -0.2996125817298889) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1168) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -0.6787637026394024) - (f64.const 0.5072437089402843) - (f64.const 0.47261738777160645) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1169) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1172) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1173) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 1) - (f64.const 2.718281828459045) - (f64.const -0.3255307376384735) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1174) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -1) - (f64.const 0.36787944117144233) - (f64.const 0.22389651834964752) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1175) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1176) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1177) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1178) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 1.0397214889526365) - (f64.const 2.828429155876411) - (f64.const 0.18803080916404724) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1179) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const -1.0397214889526365) - (f64.const 0.35355313670217847) - (f64.const 0.2527272403240204) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1180) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 1.0397210121154785) - (f64.const 2.8284278071766122) - (f64.const -0.4184139370918274) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1181) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_exp - (f64.const 1.0397214889526367) - (f64.const 2.8284291558764116) - (f64.const -0.22618377208709717) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1182) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -8.066848754882812) - (f32.const 3.1377049162983894e-04) - (f32.const -0.030193336308002472) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1191) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 4.345239639282227) - (f32.const 77.11051177978516) - (f32.const -0.2875460684299469) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1192) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -8.381433486938477) - (f32.const 2.2908132814336568e-04) - (f32.const 0.2237040400505066) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1193) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -6.531673431396484) - (f32.const 1.4565663877874613e-03) - (f32.const 0.36469703912734985) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1194) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 9.267057418823242) - (f32.const 10583.5634765625) - (f32.const 0.45962104201316833) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1195) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.6619858741760254) - (f32.const 1.93863844871521) - (f32.const 0.3568260967731476) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1196) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -0.40660393238067627) - (f32.const 0.6659078598022461) - (f32.const -0.38294991850852966) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1197) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.5617597699165344) - (f32.const 1.753756046295166) - (f32.const 0.44355490803718567) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1198) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.7741522789001465) - (f32.const 2.168752908706665) - (f32.const 0.24562469124794006) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1199) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -0.6787636876106262) - (f32.const 0.5072436928749084) - (f32.const -0.3974292278289795) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1200) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1203) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1204) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 1) - (f32.const 2.7182817459106445) - (f32.const -0.3462330996990204) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1205) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -1) - (f32.const 0.3678794503211975) - (f32.const 0.3070148527622223) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1206) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1207) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1208) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1209) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 88.72283172607422) - (f32.const 340279851902147610656242e15) - (f32.const -0.09067153930664062) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1210) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 88.72283935546875) - (f32.const inf) - (f32.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/OVERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1211) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -103.97207641601562) - (f32.const 1.401298464324817e-45) - (f32.const 0.49999967217445374) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1212) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const -103.97208404541016) - (f32.const 0) - (f32.const -0.49999651312828064) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1213) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.3465735614299774) - (f32.const 1.4142135381698608) - (f32.const 0.13922421634197235) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1214) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.3465735912322998) - (f32.const 1.4142135381698608) - (f32.const -0.21432916820049286) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1215) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expf - (f32.const 0.3465736210346222) - (f32.const 1.4142136573791504) - (f32.const 0.43211743235588074) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1216) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -8.06684839057968) - (f64.const -0.9996862293931839) - (f64.const -0.2760058343410492) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1228) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 4.345239849338305) - (f64.const 76.11053017112141) - (f64.const -0.02792675793170929) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1229) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -8.38143342755525) - (f64.const -0.9997709186615084) - (f64.const 0.10052496194839478) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1230) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -6.531673581913484) - (f64.const -0.9985434338739069) - (f64.const -0.27437829971313477) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1231) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 9.267056966972586) - (f64.const 10582.558245524993) - (f64.const 0.17696762084960938) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1232) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 0.6619858980995045) - (f64.const 0.9386384525571999) - (f64.const 0.007150684483349323) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1233) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -0.4066039223853553) - (f64.const -0.3340921107161975) - (f64.const -0.21216636896133423) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1234) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 0.5617597462207241) - (f64.const 0.7537559518626312) - (f64.const 0.21675777435302734) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1235) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 0.7741522965913037) - (f64.const 1.1687528885129248) - (f64.const 0.4007748067378998) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1236) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -0.6787637026394024) - (f64.const -0.4927562910597158) - (f64.const -0.05476519837975502) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1237) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1240) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1241) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 1) - (f64.const 1.7182818284590453) - (f64.const 0.348938524723053) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1242) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -1) - (f64.const -0.6321205588285577) - (f64.const 0.11194825917482376) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1243) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1244) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1245) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1246) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const 2.225073858507201e-308) - (f64.const 2.225073858507201e-308) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1247) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1 - (f64.const -2.225073858507201e-308) - (f64.const -2.225073858507201e-308) - (f64.const 0) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1248) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -8.066848754882812) - (f32.const -0.9996862411499023) - (f32.const -0.19532723724842072) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1257) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 4.345239639282227) - (f32.const 76.11051177978516) - (f32.const -0.2875460684299469) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1258) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -8.381433486938477) - (f32.const -0.9997709393501282) - (f32.const -0.34686920046806335) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1259) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -6.531673431396484) - (f32.const -0.9985434412956238) - (f32.const -0.1281939446926117) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1260) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 9.267057418823242) - (f32.const 10582.5634765625) - (f32.const 0.45962104201316833) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1261) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 0.6619858741760254) - (f32.const 0.9386383891105652) - (f32.const -0.28634780645370483) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1262) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -0.40660393238067627) - (f32.const -0.3340921103954315) - (f32.const 0.23410017788410187) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1263) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 0.5617597699165344) - (f32.const 0.7537559866905212) - (f32.const -0.11289017647504807) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1264) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 0.7741522789001465) - (f32.const 1.168752908706665) - (f32.const 0.4912493824958801) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1265) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -0.6787636876106262) - (f32.const -0.49275627732276917) - (f32.const 0.20514154434204102) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1266) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1269) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1270) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const 1) - (f32.const 1.718281865119934) - (f32.const 0.3075338304042816) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1271) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const -1) - (f32.const -0.6321205496788025) - (f32.const 0.15350742638111115) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1272) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1273) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1274) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_expm1f - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1275) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -8.06684839057968) - (f64.const -9) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1287) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 4.345239849338305) - (f64.const 4) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1288) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -8.38143342755525) - (f64.const -9) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1289) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -6.531673581913484) - (f64.const -7) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1290) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 9.267056966972586) - (f64.const 9) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1291) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0.6619858980995045) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1292) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -0.4066039223853553) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1293) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0.5617597462207241) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1294) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0.7741522965913037) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1295) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -0.6787637026394024) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1296) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1299) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1300) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1301) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1302) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1303) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1304) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1305) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0.5) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1306) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -0.5) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1307) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 1.0000152587890625) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1308) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -1.0000152587890625) - (f64.const -2) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1309) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 0.9999923706054688) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1310) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -0.9999923706054688) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1311) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const 7.888609052210118e-31) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1312) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floor - (f64.const -7.888609052210118e-31) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1313) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -8.066848754882812) - (f32.const -9) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1322) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 4.345239639282227) - (f32.const 4) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1323) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -8.381433486938477) - (f32.const -9) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1324) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -6.531673431396484) - (f32.const -7) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1325) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 9.267057418823242) - (f32.const 9) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1326) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0.6619858741760254) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1327) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -0.40660393238067627) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1328) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0.5617597699165344) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1329) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0.7741522789001465) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1330) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -0.6787636876106262) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1331) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1334) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1335) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1336) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1337) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1338) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1339) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1340) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0.5) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1341) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -0.5) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1342) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 1.0000152587890625) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1343) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -1.0000152587890625) - (f32.const -2) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1344) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 0.9999923706054688) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1345) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -0.9999923706054688) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1346) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const 7.888609052210118e-31) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1347) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_floorf - (f32.const -7.888609052210118e-31) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1348) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const 9.25452742288464) - (f64.const -0.31188681721687317) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1360) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 9.893305808328252) - (f64.const 0.4593673348426819) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1361) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const 8.825301797432132) - (f64.const -0.1701754331588745) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1362) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const 7.970265885519092) - (f64.const -0.3176782727241516) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1363) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 10.441639651824575) - (f64.const -0.2693633437156677) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1364) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const 6.483936052542593) - (f64.const 0.35618898272514343) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1365) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 7.859063309581766) - (f64.const 0.08044655621051788) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1366) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const 7.717156764899584) - (f64.const 0.05178084969520569) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1367) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 2.104006123874314) - (f64.const -0.0918039008975029) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1368) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const 0.5596880129062913) - (f64.const 0.1383407711982727) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1369) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 3) - (f64.const 4) - (f64.const 5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1372) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -3) - (f64.const 4) - (f64.const 5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1373) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 4) - (f64.const 3) - (f64.const 5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1374) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 4) - (f64.const -3) - (f64.const 5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1375) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const -3) - (f64.const -4) - (f64.const 5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1376) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 1797693134862315708145274e284) - (f64.const 0) - (f64.const 1797693134862315708145274e284) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1377) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 1797693134862315708145274e284) - (f64.const -0) - (f64.const 1797693134862315708145274e284) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1378) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 5e-324) - (f64.const 0) - (f64.const 5e-324) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1379) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 5e-324) - (f64.const -0) - (f64.const 5e-324) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1380) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const inf) - (f64.const 1) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1381) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 1) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1382) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1383) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const nan:0x8000000000000) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1384) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.neg - (f64.const inf) - ) - (f64.const 1) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1385) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 1) - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1386) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1387) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const nan:0x8000000000000) - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1388) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1389) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypot - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1390) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const 9.254528045654297) - (f32.const 0.2735958993434906) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1399) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 9.893305778503418) - (f32.const 0.4530770778656006) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1400) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const 8.825302124023438) - (f32.const 0.30755728483200073) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1401) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const 7.970265865325928) - (f32.const 0.06785223633050919) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1402) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 10.44163990020752) - (f32.const -0.26776307821273804) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1403) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const 6.483936309814453) - (f32.const 0.48381292819976807) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1404) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 7.859063148498535) - (f32.const 0.07413065433502197) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1405) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const 7.717156887054443) - (f32.const 0.4940592646598816) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1406) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 2.104006052017212) - (f32.const -0.287089467048645) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1407) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const 0.5596880316734314) - (f32.const 0.4191940724849701) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1408) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 3) - (f32.const 4) - (f32.const 5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1411) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -3) - (f32.const 4) - (f32.const 5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1412) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 4) - (f32.const 3) - (f32.const 5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1413) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 4) - (f32.const -3) - (f32.const 5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1414) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const -3) - (f32.const -4) - (f32.const 5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1415) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 3402823466385288598117041e14) - (f32.const 0) - (f32.const 3402823466385288598117041e14) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1416) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 3402823466385288598117041e14) - (f32.const -0) - (f32.const 3402823466385288598117041e14) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1417) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 1.401298464324817e-45) - (f32.const 0) - (f32.const 1.401298464324817e-45) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1418) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 1.401298464324817e-45) - (f32.const -0) - (f32.const 1.401298464324817e-45) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1419) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const inf) - (f32.const 1) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1420) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 1) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1421) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1422) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const nan:0x400000) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1423) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.neg - (f32.const inf) - ) - (f32.const 1) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1424) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 1) - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1425) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1426) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const nan:0x400000) - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1427) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1428) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_hypotf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1429) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1441) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 4.345239849338305) - (f64.const 1.4690809584224322) - (f64.const -0.3412533402442932) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1442) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1443) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1444) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 9.267056966972586) - (f64.const 2.2264658498795615) - (f64.const 0.3638114035129547) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1445) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 0.6619858980995045) - (f64.const -0.4125110252365137) - (f64.const -0.29108747839927673) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1446) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -0.4066039223853553) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1447) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 0.5617597462207241) - (f64.const -0.5766810183195862) - (f64.const -0.10983199626207352) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1448) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 0.7741522965913037) - (f64.const -0.2559866591263865) - (f64.const -0.057990044355392456) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1449) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -0.6787637026394024) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1450) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1453) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1454) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -7.888609052210118e-31) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1455) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1456) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1457) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1458) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1459) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1460) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1469) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1470) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -7.888609052210118e-31) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1471) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1472) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1473) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1474) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1475) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1476) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1479) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1480) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -7.888609052210118e-31) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1481) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1482) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1483) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1484) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1485) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_logf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1486) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1498) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 4.345239849338305) - (f64.const 0.6380137537120029) - (f64.const -0.2088824063539505) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1499) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1500) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1501) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 9.267056966972586) - (f64.const 0.9669418327487274) - (f64.const -0.06120431795716286) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1502) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 0.6619858980995045) - (f64.const -0.17915126198447093) - (f64.const 0.39090874791145325) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1503) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -0.4066039223853553) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1504) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 0.5617597462207241) - (f64.const -0.25044938407454437) - (f64.const -0.3046841621398926) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1505) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 0.7741522965913037) - (f64.const -0.11117359349943837) - (f64.const -0.31503361463546753) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1506) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -0.6787637026394024) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1507) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1510) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1511) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -7.888609052210118e-31) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1512) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1513) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1514) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1515) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1516) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10 - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1517) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1526) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 4.345239639282227) - (f32.const 0.6380137205123901) - (f32.const -0.20476758480072021) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1527) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1528) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1529) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 9.267057418823242) - (f32.const 0.9669418334960938) - (f32.const -0.34273025393486023) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1530) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 0.6619858741760254) - (f32.const -0.1791512817144394) - (f32.const -0.27078554034233093) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1531) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -0.40660393238067627) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1532) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 0.5617597699165344) - (f32.const -0.25044935941696167) - (f32.const 0.2126826047897339) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1533) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 0.7741522789001465) - (f32.const -0.1111735999584198) - (f32.const 0.46515095233917236) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1534) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -0.6787636876106262) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1535) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1538) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1539) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -7.888609052210118e-31) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1540) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1541) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1542) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1543) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1544) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log10f - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1545) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1557) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 4.345239849338305) - (f64.const 1.6762064170601734) - (f64.const 0.46188199520111084) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1558) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1559) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1560) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 9.267056966972586) - (f64.const 2.3289404168523826) - (f64.const -0.411114901304245) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1561) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 0.6619858980995045) - (f64.const 0.5080132114992477) - (f64.const -0.29306045174598694) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1562) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -0.4066039223853553) - (f64.const -0.5218931811663979) - (f64.const -0.25825726985931396) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1563) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 0.5617597462207241) - (f64.const 0.4458132279488102) - (f64.const -0.13274887204170227) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1564) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 0.7741522965913037) - (f64.const 0.5733227294648414) - (f64.const 0.02716583013534546) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1565) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -0.6787637026394024) - (f64.const -1.1355782978128564) - (f64.const 0.2713092863559723) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1566) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1569) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1570) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -7.888609052210118e-31) - (f64.const -7.888609052210118e-31) - (f64.const 1.7763568394002505e-15) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1571) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const 1) - (f64.const 0.6931471805599453) - (f64.const -0.2088811695575714) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1572) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1573) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1574) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1575) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1p - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1576) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1585) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 4.345239639282227) - (f32.const 1.676206350326538) - (f32.const -0.23014859855175018) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1586) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1587) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1588) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 9.267057418823242) - (f32.const 2.3289403915405273) - (f32.const -0.29075589776039124) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1589) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 0.6619858741760254) - (f32.const 0.5080131888389587) - (f32.const -0.1386766880750656) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1590) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -0.40660393238067627) - (f32.const -0.5218932032585144) - (f32.const -0.08804433047771454) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1591) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 0.5617597699165344) - (f32.const 0.44581323862075806) - (f32.const -0.15101368725299835) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1592) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 0.7741522789001465) - (f32.const 0.5733227133750916) - (f32.const -0.10264533013105392) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1593) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -0.6787636876106262) - (f32.const -1.1355782747268677) - (f32.const -0.19879481196403503) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1594) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1597) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1598) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -7.888609052210118e-31) - (f32.const -7.888609052210118e-31) - (f32.const 3.308722450212111e-24) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1599) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const 1) - (f32.const 0.6931471824645996) - (f32.const 0.031954795122146606) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1600) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1601) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1602) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1603) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1604) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log1pf - (f32.const -1.1754942106924411e-38) - (f32.const -1.1754942106924411e-38) - (f32.const 4.930380657631324e-32) - (i32.or - (get_global $std/math/INEXACT) - (get_global $std/math/UNDERFLOW) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1605) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1617) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 4.345239849338305) - (f64.const 2.1194358133804485) - (f64.const -0.10164877772331238) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1618) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1619) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1620) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 9.267056966972586) - (f64.const 3.2121112403298744) - (f64.const -0.15739446878433228) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1621) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 0.6619858980995045) - (f64.const -0.5951276104207402) - (f64.const 0.3321485221385956) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1622) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -0.4066039223853553) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1623) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 0.5617597462207241) - (f64.const -0.8319748453044644) - (f64.const 0.057555437088012695) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1624) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 0.7741522965913037) - (f64.const -0.36931068365537134) - (f64.const -0.19838279485702515) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1625) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -0.6787637026394024) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1626) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1629) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1630) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -7.888609052210118e-31) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1631) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1632) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1633) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1634) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1635) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2 - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1636) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1645) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 4.345239639282227) - (f32.const 2.1194357872009277) - (f32.const 0.18271538615226746) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1646) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1647) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1648) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 9.267057418823242) - (f32.const 3.212111234664917) - (f32.const -0.3188050389289856) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1649) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 0.6619858741760254) - (f32.const -0.5951276421546936) - (f32.const 0.34231460094451904) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1650) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -0.40660393238067627) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1651) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 0.5617597699165344) - (f32.const -0.8319748044013977) - (f32.const -0.33473604917526245) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1652) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 0.7741522789001465) - (f32.const -0.3693107068538666) - (f32.const 0.3278401792049408) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1653) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -0.6787636876106262) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1654) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1657) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1658) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -7.888609052210118e-31) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1659) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1660) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1661) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1662) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1663) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_log2f - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1664) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const 4.535662560676869) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1676) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 4.345239849338305) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1677) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const -2.763607337379588) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1678) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const 4.567535276842744) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1679) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 9.267056966972586) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1680) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const 0.6620717923376739) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1681) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 7.858890253041697) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1682) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const 7.67640268511754) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1683) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 2.0119025790324803) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1684) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const 0.03223983060263804) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1685) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1688) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1689) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0.5) - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1690) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0.5) - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1691) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1692) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1693) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const 1) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1694) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.neg - (f64.const inf) - ) - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1695) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1696) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const -1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1697) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const -1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1698) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0.5) - (f64.const -1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1699) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0.5) - (f64.const -1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1700) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const -1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1701) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1702) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const -1) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1703) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1704) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1705) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1706) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const -0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1707) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1708) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1709) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1710) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1711) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1712) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1713) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1714) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1715) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1716) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1717) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const 0) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1718) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1719) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1720) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1721) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const -0) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1722) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.neg - (f64.const inf) - ) - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1723) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1724) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const 2) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1725) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const -0.5) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1726) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1727) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.neg - (f64.const inf) - ) - (f64.const 2) - (f64.const 2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1728) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.neg - (f64.const inf) - ) - (f64.const -0.5) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1729) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1730) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1731) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1732) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1733) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1734) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1735) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1736) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1737) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1) - (f64.neg - (f64.const inf) - ) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1738) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1739) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const inf) - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1740) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1741) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1.75) - (f64.const 0.5) - (f64.const 1.75) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1742) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1.75) - (f64.const 0.5) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1743) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const 1.75) - (f64.const -0.5) - (f64.const 1.75) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1744) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_max - (f64.const -1.75) - (f64.const -0.5) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1745) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const 4.535662651062012) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1754) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 4.345239639282227) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1755) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const -2.7636072635650635) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1756) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const 4.567535400390625) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1757) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 9.267057418823242) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1758) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const 0.6620717644691467) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1759) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 7.858890056610107) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1760) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const 7.676402568817139) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1761) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 2.0119025707244873) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1762) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const 0.03223983198404312) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1763) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1766) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1767) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0.5) - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1768) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0.5) - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1769) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1770) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1771) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const 1) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1772) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.neg - (f32.const inf) - ) - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1773) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1774) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const -1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1775) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const -1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1776) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0.5) - (f32.const -1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1777) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0.5) - (f32.const -1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1778) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const -1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1779) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1780) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const -1) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1781) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1782) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1783) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1784) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const -0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1785) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1786) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1787) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1788) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1789) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1790) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1791) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1792) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1793) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1794) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1795) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const 0) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1796) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1797) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1798) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1799) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const -0) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1800) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.neg - (f32.const inf) - ) - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1801) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1802) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const 2) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1803) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const -0.5) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1804) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1805) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.neg - (f32.const inf) - ) - (f32.const 2) - (f32.const 2) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1806) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.neg - (f32.const inf) - ) - (f32.const -0.5) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1807) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1808) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1809) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1810) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1811) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1812) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1813) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1814) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1815) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1) - (f32.neg - (f32.const inf) - ) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1816) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1817) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const inf) - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1818) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1819) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1.75) - (f32.const 0.5) - (f32.const 1.75) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1820) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1.75) - (f32.const 0.5) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1821) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const 1.75) - (f32.const -0.5) - (f32.const 1.75) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1822) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_maxf - (f32.const -1.75) - (f32.const -0.5) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1823) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const -8.06684839057968) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1835) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const -8.88799136300345) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1836) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const -8.38143342755525) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1837) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const -6.531673581913484) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1838) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 4.811392084359796) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1839) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const -6.450045556060236) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1840) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 0.05215452675006225) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1841) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const -0.792054511984896) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1842) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 0.615702673197924) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1843) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const -0.5587586823609152) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1844) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1847) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1848) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0.5) - (f64.const 1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1849) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0.5) - (f64.const 1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1850) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1851) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const 1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1852) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1853) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.neg - (f64.const inf) - ) - (f64.const 1) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1854) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1855) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1856) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1857) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0.5) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1858) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0.5) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1859) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1860) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1861) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1862) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1863) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1864) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1865) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1866) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1867) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1868) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1869) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const 0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1870) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1871) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const inf) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1872) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1873) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1874) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1875) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const 0) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1876) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1877) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1878) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1879) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const -0) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1880) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1881) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.neg - (f64.const inf) - ) - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1882) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1883) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const 2) - (f64.const 2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1884) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const -0.5) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1885) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1886) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.neg - (f64.const inf) - ) - (f64.const 2) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1887) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.neg - (f64.const inf) - ) - (f64.const -0.5) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1888) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1889) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1890) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1891) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1892) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.const inf) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1893) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.const inf) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1894) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1895) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1896) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1) - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1897) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1898) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const inf) - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1899) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1900) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1.75) - (f64.const 0.5) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1901) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1.75) - (f64.const 0.5) - (f64.const -1.75) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1902) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const 1.75) - (f64.const -0.5) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1903) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_min - (f64.const -1.75) - (f64.const -0.5) - (f64.const -1.75) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1904) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const -8.066848754882812) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1913) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const -8.887990951538086) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1914) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const -8.381433486938477) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1915) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const -6.531673431396484) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1916) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 4.811392307281494) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1917) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const -6.450045585632324) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1918) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 0.052154526114463806) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1919) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const -0.7920545339584351) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1920) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 0.6157026886940002) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1921) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const -0.5587586760520935) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1922) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1925) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1926) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0.5) - (f32.const 1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1927) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0.5) - (f32.const 1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1928) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1929) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const 1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1930) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1931) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.neg - (f32.const inf) - ) - (f32.const 1) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1932) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1933) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1934) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1935) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0.5) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1936) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0.5) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1937) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1938) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1939) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1940) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1941) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1942) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1943) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1944) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1945) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1946) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1947) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const 0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1948) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1949) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const inf) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1950) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1951) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1952) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1953) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const 0) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1954) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1955) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1956) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1957) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const -0) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1958) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1959) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.neg - (f32.const inf) - ) - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1960) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1961) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const 2) - (f32.const 2) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1962) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const -0.5) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1963) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1964) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.neg - (f32.const inf) - ) - (f32.const 2) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1965) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.neg - (f32.const inf) - ) - (f32.const -0.5) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1966) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1967) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1968) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1969) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1970) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.const inf) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1971) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.const inf) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1972) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1973) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1974) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1) - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1975) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1976) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const inf) - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1977) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1978) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1.75) - (f32.const 0.5) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1979) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1.75) - (f32.const 0.5) - (f32.const -1.75) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1980) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const 1.75) - (f32.const -0.5) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1981) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_minf - (f32.const -1.75) - (f32.const -0.5) - (f32.const -1.75) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1982) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const -3.531185829902812) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1996) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 4.345239849338305) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1997) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const -0.09061141541648476) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1998) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const -1.9641383050707404) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1999) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 4.45566488261279) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2000) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const -0.4913994250211714) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2001) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 0.035711240532359426) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2002) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const -0.792054511984896) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2003) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 0.615702673197924) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2004) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const -0.0106815621160685) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2005) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2008) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2009) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0.5) - (f64.const 1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2010) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0.5) - (f64.const 1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2011) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2012) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2013) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1.5) - (f64.const 1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2014) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1.5) - (f64.const 1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2015) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 2) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2016) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -2) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2017) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2018) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.neg - (f64.const inf) - ) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2019) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2020) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const -1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2021) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const -1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2022) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0.5) - (f64.const -1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2023) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0.5) - (f64.const -1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2024) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const -1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2025) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const -1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2026) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1.5) - (f64.const -1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2027) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1.5) - (f64.const -1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2028) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 2) - (f64.const -1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2029) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -2) - (f64.const -1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2030) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2031) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2032) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2033) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2034) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2035) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2036) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2037) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2038) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2039) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2040) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const inf) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2041) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2042) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2043) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2044) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2045) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2046) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2047) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2048) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2049) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2050) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.neg - (f64.const inf) - ) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2051) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2052) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const 2) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2053) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const -0.5) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2054) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2055) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.neg - (f64.const inf) - ) - (f64.const 2) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2056) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.neg - (f64.const inf) - ) - (f64.const -0.5) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2057) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2058) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2059) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2060) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2061) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.const inf) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2062) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.const inf) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2063) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2064) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2065) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1) - (f64.neg - (f64.const inf) - ) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2066) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2067) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const inf) - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2068) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2069) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1.75) - (f64.const 0.5) - (f64.const 0.25) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2070) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1.75) - (f64.const 0.5) - (f64.const -0.25) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2071) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const 1.75) - (f64.const -0.5) - (f64.const 0.25) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2072) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_mod - (f64.const -1.75) - (f64.const -0.5) - (f64.const -0.25) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2073) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const -3.531186103820801) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2082) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 4.345239639282227) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2083) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const -0.09061169624328613) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2084) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const -1.9641380310058594) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2085) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 4.455665111541748) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2086) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const -0.49139970541000366) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2087) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 0.0357111394405365) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2088) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const -0.7920545339584351) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2089) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 0.6157026886940002) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2090) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const -0.010681532323360443) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2091) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2094) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2095) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0.5) - (f32.const 1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2096) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0.5) - (f32.const 1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2097) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2098) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2099) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1.5) - (f32.const 1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2100) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1.5) - (f32.const 1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 2) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2102) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -2) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2103) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2104) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.neg - (f32.const inf) - ) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2105) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const -1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const -1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2108) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0.5) - (f32.const -1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0.5) - (f32.const -1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const -1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const -1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2112) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1.5) - (f32.const -1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2113) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1.5) - (f32.const -1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 2) - (f32.const -1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -2) - (f32.const -1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2118) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2119) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2120) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2121) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2123) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2125) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const inf) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2134) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2135) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2136) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.neg - (f32.const inf) - ) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2137) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2138) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const 2) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2139) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const -0.5) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2140) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2141) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.neg - (f32.const inf) - ) - (f32.const 2) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2142) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.neg - (f32.const inf) - ) - (f32.const -0.5) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2143) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2144) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2145) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2146) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2147) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.const inf) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2148) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.const inf) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2149) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2150) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2151) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1) - (f32.neg - (f32.const inf) - ) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2152) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2153) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const inf) - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2154) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2155) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1.75) - (f32.const 0.5) - (f32.const 0.25) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2156) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1.75) - (f32.const 0.5) - (f32.const -0.25) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2157) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const 1.75) - (f32.const -0.5) - (f32.const 0.25) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2158) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_modf - (f32.const -1.75) - (f32.const -0.5) - (f32.const -0.25) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2159) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2171) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 2.1347118825587285e-06) - (f64.const 0.3250160217285156) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2172) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2173) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2174) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const 44909.29941512966) - (f64.const -0.26659080386161804) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2175) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2176) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const 1.1135177413458652) - (f64.const -0.37168607115745544) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2177) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2178) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 0.37690773521380183) - (f64.const 0.32473301887512207) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2179) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2180) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2183) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2184) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const 3) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2185) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const 2) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2186) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2187) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const 0.5) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2188) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2189) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2190) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -0.5) - (f64.const inf) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2191) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -1) - (f64.const inf) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2192) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -2) - (f64.const inf) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2193) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -3) - (f64.const inf) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2194) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.const -4) - (f64.const inf) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2195) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2196) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2197) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2198) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const 3) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2199) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const 2) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2200) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2201) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const 0.5) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2202) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2203) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2204) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -0.5) - (f64.const inf) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2205) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2206) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -2) - (f64.const inf) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2207) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -3) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2208) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.const -4) - (f64.const inf) - (f64.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2209) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2210) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2211) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2212) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2213) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2214) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2215) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const 0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2216) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2217) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2218) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2219) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2220) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2221) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const -0) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2222) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2223) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2224) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2225) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const 2) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2226) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2227) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const -2) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2228) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const -3) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2229) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -1) - (f64.const 0.5) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2230) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2231) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2232) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2233) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const 3) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2234) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const 0.5) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2235) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const -0.5) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2236) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1) - (f64.const -3) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2237) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const 0.5) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2238) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const 1.5) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2239) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const 2) - (f64.const 0.25) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2240) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const 3) - (f64.const -0.125) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2241) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2242) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2243) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -0.5) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2244) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0.5) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2245) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0.5) - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2246) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 0.5) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2247) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1.5) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2248) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1.5) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2249) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const 1.5) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2250) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2251) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2252) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2253) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const 3) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2254) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const 2) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2255) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const 1) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2256) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const 0.5) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2257) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const -0.5) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2258) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const -1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2259) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const inf) - (f64.const -2) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2260) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2261) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2262) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2263) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const 3) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2264) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const 2) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2265) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const 1) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2266) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const 0.5) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2267) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const -0.5) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2268) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2269) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.neg - (f64.const inf) - ) - (f64.const -2) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2270) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2271) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2272) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -2) - (f64.const 1) - (f64.const -2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2273) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_pow - (f64.const -2) - (f64.const -1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2274) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2283) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 2.134714122803416e-06) - (f32.const 0.1436440795660019) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2284) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2285) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2286) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const 44909.33203125) - (f32.const -0.05356409028172493) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2287) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2288) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const 1.1135177612304688) - (f32.const 0.19122089445590973) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2289) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2290) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 0.3769077658653259) - (f32.const 0.337149053812027) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2291) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2292) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2295) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2296) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const 3) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2297) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const 2) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2298) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2299) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const 0.5) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2300) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2301) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2302) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -0.5) - (f32.const inf) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2303) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -1) - (f32.const inf) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2304) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -2) - (f32.const inf) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2305) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -3) - (f32.const inf) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2306) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.const -4) - (f32.const inf) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2307) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2308) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2309) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2310) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const 3) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2311) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const 2) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2312) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2313) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const 0.5) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2314) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2315) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2316) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -0.5) - (f32.const inf) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2317) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2318) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -2) - (f32.const inf) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2319) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -3) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2320) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.const -4) - (f32.const inf) - (f32.const 0) - (get_global $std/math/DIVBYZERO) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2321) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2322) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2323) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2324) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2325) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2326) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2327) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const 0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2328) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2329) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2330) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2331) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2332) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2333) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const -0) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2334) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2335) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2336) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2337) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const 2) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2338) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2339) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const -2) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2340) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const -3) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2341) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -1) - (f32.const 0.5) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2342) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2343) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2344) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2345) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const 3) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2346) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const 0.5) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2347) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const -0.5) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2348) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1) - (f32.const -3) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2349) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const 0.5) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2350) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const 1.5) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2351) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const 2) - (f32.const 0.25) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2352) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const 3) - (f32.const -0.125) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2353) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2354) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2355) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -0.5) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2356) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0.5) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2357) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0.5) - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2358) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 0.5) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2359) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1.5) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2360) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1.5) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2361) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const 1.5) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2362) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2363) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2364) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2365) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const 3) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2366) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const 2) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2367) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const 1) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2368) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const 0.5) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2369) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const -0.5) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2370) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const -1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2371) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const inf) - (f32.const -2) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2372) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2373) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2374) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2375) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const 3) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2376) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const 2) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2377) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const 1) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2378) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const 0.5) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2379) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const -0.5) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2380) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2381) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.neg - (f32.const inf) - ) - (f32.const -2) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2382) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2383) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2384) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -2) - (f32.const 1) - (f32.const -2) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2385) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_powf - (f32.const -2) - (f32.const -1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2386) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/math/NativeMath.seedRandom - (i64.reinterpret/f64 - (call $~lib/bindings/Math/random) - ) - ) - (block $break|0 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (f64.lt - (f64.convert_s/i32 - (get_local $0) - ) - (f64.const 1e6) - ) - ) - ) - (block - (set_local $1 - (call $~lib/math/NativeMath.random) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (f64.ge - (get_local $1) - (f64.const 0) - ) - ) - (f64.lt - (get_local $1) - (f64.const 1) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2395) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $~lib/math/NativeMathf.seedRandom|inlined.0 - (set_local $3 - (i64.reinterpret/f64 - (call $~lib/bindings/Math/random) - ) - ) - (call $~lib/math/NativeMath.seedRandom - (get_local $3) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (f64.lt - (f64.convert_s/i32 - (get_local $0) - ) - (f64.const 1e6) - ) - ) - ) - (block - (set_local $4 - (call $~lib/math/NativeMathf.random) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (f32.ge - (get_local $4) - (f32.const 0) - ) - ) - (f32.lt - (get_local $4) - (f32.const 1) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2403) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -8.06684839057968) - (f64.const -8) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2417) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 4.345239849338305) - (f64.const 4) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2418) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -8.38143342755525) - (f64.const -8) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2419) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -6.531673581913484) - (f64.const -7) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2420) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 9.267056966972586) - (f64.const 9) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2421) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0.6619858980995045) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2422) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -0.4066039223853553) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2423) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0.5617597462207241) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2424) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0.7741522965913037) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2425) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -0.6787637026394024) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2426) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2429) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2430) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2431) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2432) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2433) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2434) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2435) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0.5) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2436) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -0.5) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2437) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 1.5) - (f64.const 2) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2438) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -1.5) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2439) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 1.0000152587890625) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2440) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -1.0000152587890625) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2441) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 0.9999923706054688) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2442) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -0.9999923706054688) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2443) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 7.888609052210118e-31) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2444) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -7.888609052210118e-31) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2445) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -8.066848754882812) - (f32.const -8) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2454) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 4.345239639282227) - (f32.const 4) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2455) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -8.381433486938477) - (f32.const -8) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2456) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -6.531673431396484) - (f32.const -7) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2457) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 9.267057418823242) - (f32.const 9) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2458) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0.6619858741760254) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2459) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -0.40660393238067627) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2460) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0.5617597699165344) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2461) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0.7741522789001465) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2462) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -0.6787636876106262) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2463) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2466) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2467) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2468) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2469) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2470) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2471) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2472) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0.5) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2473) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -0.5) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2474) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const 1.5) - (f64.const 2) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2475) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_round - (f64.const -1.5) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2476) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 1.0000152587890625) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2477) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -1.0000152587890625) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2478) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 0.9999923706054688) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2479) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -0.9999923706054688) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2480) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const 7.888609052210118e-31) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2481) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_roundf - (f32.const -7.888609052210118e-31) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2482) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2493) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2494) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2495) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const 2) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2496) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2497) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const -2) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2498) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const inf) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2499) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2500) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sign - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2501) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2509) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2510) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2511) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const 2) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2512) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2513) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const -2) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2514) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const inf) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2515) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2516) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_signf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2517) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -8.06684839057968) - (f64.const 4.535662560676869) - (f64.const 1.0044767307740567) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2528) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 4.345239849338305) - (f64.const -8.88799136300345) - (f64.const 4.345239849338305) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2529) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -8.38143342755525) - (f64.const -2.763607337379588) - (f64.const -0.09061141541648476) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2530) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -6.531673581913484) - (f64.const 4.567535276842744) - (f64.const -1.9641383050707404) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2531) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 9.267056966972586) - (f64.const 4.811392084359796) - (f64.const -0.35572720174700656) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2532) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -6.450045556060236) - (f64.const 0.6620717923376739) - (f64.const 0.17067236731650248) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2533) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 7.858890253041697) - (f64.const 0.05215452675006225) - (f64.const -0.016443286217702822) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2534) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0.792054511984896) - (f64.const 7.67640268511754) - (f64.const -0.792054511984896) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2535) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0.615702673197924) - (f64.const 2.0119025790324803) - (f64.const 0.615702673197924) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2536) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0.5587586823609152) - (f64.const 0.03223983060263804) - (f64.const -0.0106815621160685) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2537) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2540) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2541) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0.5) - (f64.const 1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2542) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0.5) - (f64.const 1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2543) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2544) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2545) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1.5) - (f64.const 1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2546) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1.5) - (f64.const 1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2547) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 2) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2548) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -2) - (f64.const 1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2549) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2550) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.neg - (f64.const inf) - ) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2551) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2552) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const -1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2553) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const -1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2554) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0.5) - (f64.const -1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2555) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0.5) - (f64.const -1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2556) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const -1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2557) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const -1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2558) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1.5) - (f64.const -1) - (f64.const -0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2559) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1.5) - (f64.const -1) - (f64.const 0.5) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2560) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 2) - (f64.const -1) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2561) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -2) - (f64.const -1) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2562) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2563) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2564) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2565) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2566) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2567) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const inf) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2568) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2569) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2570) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2571) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2572) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const inf) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2573) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2574) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2575) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2576) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2577) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2578) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2579) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2580) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2581) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2582) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.neg - (f64.const inf) - ) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2583) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2584) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const 2) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2585) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const -0.5) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2586) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2587) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.neg - (f64.const inf) - ) - (f64.const 2) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2588) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.neg - (f64.const inf) - ) - (f64.const -0.5) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2589) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2590) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2591) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2592) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2593) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.const inf) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2594) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.const inf) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2595) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2596) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2597) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1) - (f64.neg - (f64.const inf) - ) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2598) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2599) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const inf) - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2600) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2601) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1.75) - (f64.const 0.5) - (f64.const -0.25) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2602) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1.75) - (f64.const 0.5) - (f64.const 0.25) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2603) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 1.75) - (f64.const -0.5) - (f64.const -0.25) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2604) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const -1.75) - (f64.const -0.5) - (f64.const 0.25) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2605) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_rem - (f64.const 8e-323) - (f64.const inf) - (f64.const 8e-323) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2606) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -8.066848754882812) - (f32.const 4.535662651062012) - (f32.const 1.004476547241211) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2615) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 4.345239639282227) - (f32.const -8.887990951538086) - (f32.const 4.345239639282227) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2616) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -8.381433486938477) - (f32.const -2.7636072635650635) - (f32.const -0.09061169624328613) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2617) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -6.531673431396484) - (f32.const 4.567535400390625) - (f32.const -1.9641380310058594) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2618) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 9.267057418823242) - (f32.const 4.811392307281494) - (f32.const -0.3557271957397461) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2619) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -6.450045585632324) - (f32.const 0.6620717644691467) - (f32.const 0.17067205905914307) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2620) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 7.858890056610107) - (f32.const 0.052154526114463806) - (f32.const -0.016443386673927307) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2621) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0.7920545339584351) - (f32.const 7.676402568817139) - (f32.const -0.7920545339584351) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2622) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0.6157026886940002) - (f32.const 2.0119025707244873) - (f32.const 0.6157026886940002) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2623) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0.5587586760520935) - (f32.const 0.03223983198404312) - (f32.const -0.010681532323360443) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2624) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2627) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2628) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0.5) - (f32.const 1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2629) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0.5) - (f32.const 1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2630) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2631) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2632) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1.5) - (f32.const 1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2633) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1.5) - (f32.const 1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2634) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 2) - (f32.const 1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2635) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -2) - (f32.const 1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2636) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2637) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.neg - (f32.const inf) - ) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2638) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2639) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const -1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2640) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const -1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2641) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0.5) - (f32.const -1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2642) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0.5) - (f32.const -1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2643) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const -1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2644) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const -1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2645) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1.5) - (f32.const -1) - (f32.const -0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2646) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1.5) - (f32.const -1) - (f32.const 0.5) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2647) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 2) - (f32.const -1) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2648) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -2) - (f32.const -1) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2649) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2650) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2651) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2652) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2653) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2654) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const inf) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2655) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2656) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2657) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2658) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2659) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const inf) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2660) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2661) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -0) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2662) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2663) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2664) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2665) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2666) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2667) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2668) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2669) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.neg - (f32.const inf) - ) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2670) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2671) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const 2) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2672) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const -0.5) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2673) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2674) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.neg - (f32.const inf) - ) - (f32.const 2) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2675) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.neg - (f32.const inf) - ) - (f32.const -0.5) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2676) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2677) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2678) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2679) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2680) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.const inf) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2681) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.const inf) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2682) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2683) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2684) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1) - (f32.neg - (f32.const inf) - ) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2685) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2686) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const inf) - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2687) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2688) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1.75) - (f32.const 0.5) - (f32.const -0.25) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2689) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1.75) - (f32.const 0.5) - (f32.const 0.25) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2690) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 1.75) - (f32.const -0.5) - (f32.const -0.25) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2691) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const -1.75) - (f32.const -0.5) - (f32.const 0.25) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2692) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_remf - (f32.const 5.877471754111438e-39) - (f32.const inf) - (f32.const 5.877471754111438e-39) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2693) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -8.06684839057968) - (f64.const -1593.5206801156262) - (f64.const -0.2138727605342865) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2758) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 4.345239849338305) - (f64.const 38.54878088685412) - (f64.const 0.21537430584430695) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2759) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -8.38143342755525) - (f64.const -2182.6307505145546) - (f64.const 0.16213826835155487) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2760) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -6.531673581913484) - (f64.const -343.2723926847529) - (f64.const 0.20479513704776764) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2761) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 9.267056966972586) - (f64.const 5291.7790755194055) - (f64.const -0.48676517605781555) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2762) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 0.6619858980995045) - (f64.const 0.7114062568229157) - (f64.const -0.4584641456604004) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2763) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -0.4066039223853553) - (f64.const -0.41790065258739445) - (f64.const 0.37220045924186707) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2764) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 0.5617597462207241) - (f64.const 0.5917755935451237) - (f64.const 0.46178996562957764) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2765) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 0.7741522965913037) - (f64.const 0.8538292008852542) - (f64.const -0.07019051909446716) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2766) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -0.6787637026394024) - (f64.const -0.732097615653169) - (f64.const 0.26858529448509216) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2767) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2770) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2771) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2772) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2773) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2774) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -8.066848754882812) - (f32.const -1593.521240234375) - (f32.const 0.1671663224697113) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2783) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 4.345239639282227) - (f32.const 38.548770904541016) - (f32.const -0.49340328574180603) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2784) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -8.381433486938477) - (f32.const -2182.630859375) - (f32.const 0.0849970355629921) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2785) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -6.531673431396484) - (f32.const -343.2723388671875) - (f32.const 0.0704190656542778) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2786) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 9.267057418823242) - (f32.const 5291.78125) - (f32.const -0.44362515211105347) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2787) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 0.6619858741760254) - (f32.const 0.7114062309265137) - (f32.const 0.058103885501623154) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2788) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -0.40660393238067627) - (f32.const -0.4179006516933441) - (f32.const 0.39349499344825745) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2789) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 0.5617597699165344) - (f32.const 0.5917755961418152) - (f32.const -0.4183797240257263) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2790) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 0.7741522789001465) - (f32.const 0.8538292050361633) - (f32.const 0.45992106199264526) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2791) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -0.6787636876106262) - (f32.const -0.7320976257324219) - (f32.const -0.48159059882164) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2792) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2795) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2796) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2797) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2798) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sinhf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2799) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -8.06684839057968) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2811) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 4.345239849338305) - (f64.const 2.0845238903256313) - (f64.const -0.07180261611938477) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2812) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -8.38143342755525) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2813) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -6.531673581913484) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2814) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 9.267056966972586) - (f64.const 3.0441841217266385) - (f64.const -0.01546262577176094) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2815) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0.6619858980995045) - (f64.const 0.8136251582267503) - (f64.const -0.08618157356977463) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2816) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -0.4066039223853553) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2817) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0.5617597462207241) - (f64.const 0.7495063350104014) - (f64.const -0.0981396734714508) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2818) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0.7741522965913037) - (f64.const 0.879859248170583) - (f64.const -0.37124353647232056) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2819) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -0.6787637026394024) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2820) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2823) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2824) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2825) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2826) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2827) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2828) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -1) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2829) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 4) - (f64.const 2) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2830) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1e-323) - (f64.const 3.1434555694052576e-162) - (f64.const 0.43537619709968567) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2831) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.5e-323) - (f64.const 3.849931087076416e-162) - (f64.const -0.45194002985954285) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2832) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 5e-324) - (f64.const 2.2227587494850775e-162) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2833) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -5e-324) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2834) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0.9999999999999999) - (f64.const 0.9999999999999999) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2835) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.9999999999999998) - (f64.const 1.414213562373095) - (f64.const -0.21107041835784912) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2836) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.0000000000000002) - (f64.const 1) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2837) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.0000000000000004) - (f64.const 1.4142135623730951) - (f64.const -0.27173060178756714) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2838) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.0000000000000002) - (f64.const 1) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2839) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 0.9999999999999999) - (f64.const 0.9999999999999999) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2840) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const -1797693134862315708145274e284) - (f64.const nan:0x8000000000000) - (f64.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2841) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862315708145274e284) - (f64.const 1340780792994259561100831e130) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2842) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 179769313486231490980915e285) - (f64.const 134078079299425926338769e131) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2843) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862314111473026e284) - (f64.const 1340780792994258965674548e130) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2844) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862313313136902e284) - (f64.const 1340780792994258667961407e130) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2845) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862312514800778e284) - (f64.const 1340780792994258370248265e130) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2846) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862311716464655e284) - (f64.const 1340780792994258072535124e130) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2847) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862310918128531e284) - (f64.const 1340780792994257774821982e130) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2848) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862310119792407e284) - (f64.const 1340780792994257477108841e130) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2849) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862309321456283e284) - (f64.const 1340780792994257179395699e130) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2850) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862308523120159e284) - (f64.const 1340780792994256881682558e130) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2851) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1797693134862307724784036e284) - (f64.const 1340780792994256583969417e130) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2852) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.225073858507203e-308) - (f64.const 1.4916681462400417e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2853) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.225073858507205e-308) - (f64.const 1.4916681462400423e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2854) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.225073858507207e-308) - (f64.const 1.491668146240043e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2855) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.225073858507209e-308) - (f64.const 1.4916681462400437e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2856) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.225073858507211e-308) - (f64.const 1.4916681462400443e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2857) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072127e-308) - (f64.const 1.491668146240045e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2858) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072147e-308) - (f64.const 1.4916681462400457e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2859) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072167e-308) - (f64.const 1.4916681462400463e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2860) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072187e-308) - (f64.const 1.491668146240047e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2861) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072207e-308) - (f64.const 1.4916681462400476e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2862) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072226e-308) - (f64.const 1.4916681462400483e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2863) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072246e-308) - (f64.const 1.491668146240049e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2864) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072266e-308) - (f64.const 1.4916681462400496e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2865) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.2250738585072286e-308) - (f64.const 1.4916681462400503e-154) - (f64.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2866) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 92.35130391890645) - (f64.const 9.609958580499006) - (f64.const 0.4998137056827545) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2867) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 93.3599596388916) - (f64.const 9.662295774757238) - (f64.const -0.49979978799819946) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2868) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 95.42049628886124) - (f64.const 9.76834153215689) - (f64.const -0.49997270107269287) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2869) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 95.87916941885449) - (f64.const 9.791790919890728) - (f64.const 0.4998766779899597) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2870) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 96.84804174884022) - (f64.const 9.841140266698785) - (f64.const 0.499801903963089) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2871) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 97.43639050883155) - (f64.const 9.87098731175517) - (f64.const 0.4997696280479431) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2872) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 97.50957979883047) - (f64.const 9.874693909120955) - (f64.const 0.49999818205833435) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2873) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 97.80496893882612) - (f64.const 9.88963947466368) - (f64.const -0.4999580681324005) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2874) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 98.2751822888192) - (f64.const 9.913383997849534) - (f64.const 0.49979931116104126) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2875) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 99.47293564880155) - (f64.const 9.973611966023219) - (f64.const -0.4999540448188782) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2876) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 100.57047130878539) - (f64.const 10.028483001370914) - (f64.const -0.49996453523635864) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2877) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 100.60954608878481) - (f64.const 10.030431002144665) - (f64.const 0.49975672364234924) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2878) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 100.67909109878379) - (f64.const 10.033897104255344) - (f64.const -0.4997771382331848) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2879) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 101.12268095877725) - (f64.const 10.055977374615422) - (f64.const 0.49988678097724915) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2880) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 101.3027691287746) - (f64.const 10.064927676281366) - (f64.const 0.4999105632305145) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2881) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.45932313565507e-307) - (f64.const 4.9591563149945874e-154) - (f64.const -0.4998999834060669) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2882) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 5.610957305180409e-307) - (f64.const 7.490632353266584e-154) - (f64.const -0.4999343752861023) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2883) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 5.8073887977408524e-307) - (f64.const 7.62062254526548e-154) - (f64.const -0.49989569187164307) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2884) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 7.026137080471427e-307) - (f64.const 8.382205605013174e-154) - (f64.const 0.49980640411376953) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2885) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 8.438697769194972e-307) - (f64.const 9.186238495268328e-154) - (f64.const -0.4999065697193146) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2886) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.1607792515836795e-306) - (f64.const 1.0773946591586944e-153) - (f64.const -0.49997684359550476) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2887) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.2827413827423193e-306) - (f64.const 1.1325817333606962e-153) - (f64.const -0.4999513030052185) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2888) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 1.7116604596087457e-306) - (f64.const 1.3083044216117078e-153) - (f64.const -0.49986395239830017) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2889) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.038173251686994e-306) - (f64.const 1.4276460526639628e-153) - (f64.const 0.4998403787612915) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2890) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.171572060856931e-306) - (f64.const 1.4736254818836879e-153) - (f64.const 0.4999290406703949) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2891) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.4681399631804094e-306) - (f64.const 1.5710314965589996e-153) - (f64.const 0.49989044666290283) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2892) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.5175533964200588e-306) - (f64.const 1.5866799918131124e-153) - (f64.const -0.4997701048851013) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2893) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 2.6461505468829625e-306) - (f64.const 1.6266992797941982e-153) - (f64.const 0.4998672902584076) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2894) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 3.8167076367720413e-306) - (f64.const 1.9536395872248397e-153) - (f64.const 0.49983471632003784) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2895) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrt - (f64.const 4.5743220778562766e-306) - (f64.const 2.1387664851161936e-153) - (f64.const 0.49985939264297485) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2896) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -8.066848754882812) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2905) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 4.345239639282227) - (f32.const 2.084523916244507) - (f32.const 0.3200402557849884) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2906) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -8.381433486938477) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2907) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -6.531673431396484) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2908) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 9.267057418823242) - (f32.const 3.0441842079162598) - (f32.const 0.05022354796528816) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2909) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0.6619858741760254) - (f32.const 0.813625156879425) - (f32.const 0.2240506112575531) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2910) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -0.40660393238067627) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2911) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0.5617597699165344) - (f32.const 0.7495063543319702) - (f32.const 0.05895441770553589) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2912) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0.7741522789001465) - (f32.const 0.879859209060669) - (f32.const -0.4874873757362366) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2913) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -0.6787636876106262) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2914) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2917) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2918) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2919) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2920) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2921) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2922) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -1) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2923) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 4) - (f32.const 2) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2924) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 2.802596928649634e-45) - (f32.const 5.293955920339377e-23) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2925) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 4.203895392974451e-45) - (f32.const 6.483745598763743e-23) - (f32.const 0.37388554215431213) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2926) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1.401298464324817e-45) - (f32.const 3.743392066509216e-23) - (f32.const -0.20303145051002502) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2927) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -1.401298464324817e-45) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2928) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 3402823466385288598117041e14) - (f32.const 18446742974197923840) - (f32.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2929) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const -3402823466385288598117041e14) - (f32.const nan:0x400000) - (f32.const 0) - (get_global $std/math/INVALID) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2930) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0.9999998807907104) - (f32.const 0.9999999403953552) - (f32.const 2.980232594040899e-08) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2931) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 0.9999999403953552) - (f32.const 0.9999999403953552) - (f32.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2932) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1.999999761581421) - (f32.const 1.4142134189605713) - (f32.const -0.4959246516227722) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2933) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1.9999998807907104) - (f32.const 1.4142135381698608) - (f32.const 0.15052194893360138) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2934) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1.0000001192092896) - (f32.const 1) - (f32.const -0.5) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2935) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 1.000000238418579) - (f32.const 1.0000001192092896) - (f32.const 5.960463766996327e-08) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2936) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 2.000000238418579) - (f32.const 1.4142136573791504) - (f32.const 0.08986179530620575) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2937) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_sqrtf - (f32.const 2.000000476837158) - (f32.const 1.41421377658844) - (f32.const 0.3827550709247589) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2938) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -8.06684839057968) - (f64.const -0.999999803096032) - (f64.const 0.012793331407010555) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3003) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 4.345239849338305) - (f64.const 0.9996636978961307) - (f64.const 0.1573508232831955) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3004) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -8.38143342755525) - (f64.const -0.9999998950434862) - (f64.const 0.27985066175460815) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3005) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -6.531673581913484) - (f64.const -0.9999957568392429) - (f64.const -0.44285574555397034) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3006) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 9.267056966972586) - (f64.const 0.9999999821447234) - (f64.const 0.4462755024433136) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3007) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 0.6619858980995045) - (f64.const 0.5796835018635275) - (f64.const 0.4892043173313141) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3008) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -0.4066039223853553) - (f64.const -0.3855853099901652) - (f64.const 0.35993871092796326) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3009) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 0.5617597462207241) - (f64.const 0.5092819248700439) - (f64.const -0.39436522126197815) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3010) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 0.7741522965913037) - (f64.const 0.6493374550318555) - (f64.const -0.4899396002292633) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3011) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -0.6787637026394024) - (f64.const -0.590715084799841) - (f64.const -0.0145387789234519) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3012) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3015) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3016) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const inf) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3017) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3018) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanh - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3019) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -8.066848754882812) - (f32.const -0.9999998211860657) - (f32.const -0.3034979999065399) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3028) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 4.345239639282227) - (f32.const 0.9996637105941772) - (f32.const 0.2154078334569931) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3029) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -8.381433486938477) - (f32.const -0.9999998807907104) - (f32.const 0.23912210762500763) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3030) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -6.531673431396484) - (f32.const -0.999995768070221) - (f32.const -0.18844597041606903) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3031) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 9.267057418823242) - (f32.const 1) - (f32.const 0.1497807800769806) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3032) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 0.6619858741760254) - (f32.const 0.5796834826469421) - (f32.const -0.05590476095676422) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3033) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -0.40660393238067627) - (f32.const -0.38558530807495117) - (f32.const 0.349787175655365) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3034) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 0.5617597699165344) - (f32.const 0.5092819333076477) - (f32.const -0.1528785079717636) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3035) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 0.7741522789001465) - (f32.const 0.6493374705314636) - (f32.const 0.4317026138305664) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3036) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -0.6787636876106262) - (f32.const -0.5907150506973267) - (f32.const 0.4079873859882355) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3037) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3040) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3041) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const inf) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3042) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3043) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_tanhf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3044) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -8.06684839057968) - (f64.const -8) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3056) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 4.345239849338305) - (f64.const 4) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3057) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -8.38143342755525) - (f64.const -8) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3058) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -6.531673581913484) - (f64.const -6) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3059) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 9.267056966972586) - (f64.const 9) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3060) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0.6619858980995045) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3061) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -0.4066039223853553) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3062) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0.5617597462207241) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3063) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0.7741522965913037) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3064) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -0.6787637026394024) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3065) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3068) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const inf) - (f64.const inf) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3069) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3070) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0) - (f64.const 0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3071) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -0) - (f64.const -0) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3072) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 1) - (f64.const 1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3073) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -1) - (f64.const -1) - (f64.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3074) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0.5) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3075) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -0.5) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3076) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 1.0000152587890625) - (f64.const 1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3077) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -1.0000152587890625) - (f64.const -1) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3078) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 0.9999923706054688) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3079) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -0.9999923706054688) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3080) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const 7.888609052210118e-31) - (f64.const 0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3081) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_trunc - (f64.const -7.888609052210118e-31) - (f64.const -0) - (f64.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3082) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -8.066848754882812) - (f32.const -8) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3091) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 4.345239639282227) - (f32.const 4) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3092) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -8.381433486938477) - (f32.const -8) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3093) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -6.531673431396484) - (f32.const -6) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3094) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 9.267057418823242) - (f32.const 9) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3095) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0.6619858741760254) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3096) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -0.40660393238067627) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3097) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0.5617597699165344) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3098) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0.7741522789001465) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3099) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -0.6787636876106262) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3100) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3103) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const inf) - (f32.const inf) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3104) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3105) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0) - (f32.const 0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -0) - (f32.const -0) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 1) - (f32.const 1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3108) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -1) - (f32.const -1) - (f32.const 0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0.5) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -0.5) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 1.0000152587890625) - (f32.const 1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3112) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -1.0000152587890625) - (f32.const -1) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3113) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 0.9999923706054688) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -0.9999923706054688) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const 7.888609052210118e-31) - (f32.const 0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/math/test_truncf - (f32.const -7.888609052210118e-31) - (f32.const -0) - (f32.const 0) - (get_global $std/math/INEXACT) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 0) - (i32.const 0) - ) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3121) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 0) - (i32.const 1) - ) - (i64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 0) - (i32.const 2) - ) - (i64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3123) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 0) - (i32.const 3) - ) - (i64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 1) - (i32.const 0) - ) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 1) - (i32.const 1) - ) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 1) - (i32.const 2) - ) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 1) - (i32.const 3) - ) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 2) - (i32.const 0) - ) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 2) - (i32.const 1) - ) - (i64.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 2) - (i32.const 2) - ) - (i64.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 2) - (i32.const 3) - ) - (i64.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3134) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const -1) - (i32.const 0) - ) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3136) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const -1) - (i32.const 1) - ) - (i64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3137) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const -1) - (i32.const 2) - ) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3138) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const -1) - (i32.const 3) - ) - (i64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3139) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const -2) - (i32.const 0) - ) - (i64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3141) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const -2) - (i32.const 1) - ) - (i64.const -2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3142) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const -2) - (i32.const 2) - ) - (i64.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3143) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const -2) - (i32.const 3) - ) - (i64.const -8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3144) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 40) - ) - (i64.const -6289078614652622815) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3146) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 41) - ) - (i64.const -420491770248316829) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3147) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 42) - ) - (i64.const -1261475310744950487) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3148) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 43) - ) - (i64.const -3784425932234851461) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3149) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 63) - ) - (i64.const -3237885987332494933) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3150) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 64) - ) - (i64.const 8733086111712066817) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3151) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/math/ipow64 - (i64.const 3) - (i32.const 128) - ) - (i64.const -9204772141784466943) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3152) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (i64.add - (call $~lib/math/ipow64 - (i64.const 57055) - (i32.const 3) - ) - (call $~lib/math/ipow64 - (i64.const 339590) - (i32.const 3) - ) - ) - (i64.const 39347712995520375) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3154) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $~lib/math/NativeMath.E + get_global $~lib/math/NativeMath.E + f64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 109 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMathf.E + get_global $~lib/math/NativeMathf.E + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 110 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMath.E + get_global $~lib/bindings/Math/E + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 116 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMath.LN2 + get_global $~lib/bindings/Math/LN2 + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 117 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMath.LN10 + get_global $~lib/bindings/Math/LN10 + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 118 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMath.LOG2E + get_global $~lib/bindings/Math/LOG2E + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 119 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMath.PI + get_global $~lib/bindings/Math/PI + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 120 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMath.SQRT1_2 + get_global $~lib/bindings/Math/SQRT1_2 + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 121 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMath.SQRT2 + get_global $~lib/bindings/Math/SQRT2 + f64.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 122 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMathf.E + get_global $~lib/bindings/Math/E + f32.demote/f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 124 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMathf.LN2 + get_global $~lib/bindings/Math/LN2 + f32.demote/f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 125 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMathf.LN10 + get_global $~lib/bindings/Math/LN10 + f32.demote/f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMathf.LOG2E + get_global $~lib/bindings/Math/LOG2E + f32.demote/f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 127 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMathf.PI + get_global $~lib/bindings/Math/PI + f32.demote/f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMathf.SQRT1_2 + get_global $~lib/bindings/Math/SQRT1_2 + f32.demote/f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 129 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/math/NativeMathf.SQRT2 + get_global $~lib/bindings/Math/SQRT2 + f32.demote/f64 + f32.const 0 + i32.const 0 + call $std/math/check + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 130 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + i32.const -2 + f64.const -2.01671209764492 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 141 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + i32.const -1 + f64.const 2.1726199246691524 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 142 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + i32.const 0 + f64.const -8.38143342755525 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + i32.const 1 + f64.const -13.063347163826968 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 144 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + i32.const 2 + f64.const 37.06822786789034 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 145 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + i32.const 3 + f64.const 5.295887184796036 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 146 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + i32.const 4 + f64.const -6.505662758165685 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 147 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + i32.const 5 + f64.const 17.97631187906317 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 148 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + i32.const 6 + f64.const 49.545746981843436 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 149 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + i32.const 7 + f64.const -86.88175393784351 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 150 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + i32.const 2147483647 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 153 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + i32.const -2147483647 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 154 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + i32.const 2147483647 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + i32.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 156 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + i32.const 0 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 157 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + i32.const 0 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 158 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + i32.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + i32.const 1 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 160 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + i32.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 161 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + i32.const 2147483647 + f64.const inf + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/OVERFLOW + i32.or + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 162 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + i32.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 163 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + i32.const 2147483647 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 164 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + i32.const -2147483647 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + i32.const 2147483647 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 166 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 8988465674311579538646525e283 + i32.const -2097 + f64.const 5e-324 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 167 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + i32.const 2097 + f64.const 8988465674311579538646525e283 + f64.const 0 + i32.const 0 + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 168 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.000244140625 + i32.const -1074 + f64.const 5e-324 + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 169 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7499999999999999 + i32.const -1073 + f64.const 5e-324 + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 170 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5000000000000012 + i32.const -1024 + f64.const 2.781342323134007e-309 + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbn + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 171 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + i32.const -2 + f32.const -2.016712188720703 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 180 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + i32.const -1 + f32.const 2.1726198196411133 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 181 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + i32.const 0 + f32.const -8.381433486938477 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 182 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + i32.const 1 + f32.const -13.063346862792969 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 183 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + i32.const 2 + f32.const 37.06822967529297 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 184 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + i32.const 3 + f32.const 5.295886993408203 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 185 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + i32.const 4 + f32.const -6.50566291809082 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 186 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + i32.const 5 + f32.const 17.9763126373291 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 187 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + i32.const 6 + f32.const 49.545745849609375 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 188 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + i32.const 7 + f32.const -86.88175201416016 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 189 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + i32.const 2147483647 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 192 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + i32.const -2147483647 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 193 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + i32.const 2147483647 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 194 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + i32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 195 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + i32.const 0 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 196 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + i32.const 0 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 197 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + i32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 198 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + i32.const 1 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 199 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + i32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 200 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + i32.const 2147483647 + f32.const inf + f32.const 0 + get_global $std/math/INEXACT + get_global $std/math/OVERFLOW + i32.or + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 201 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + i32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 202 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + i32.const 2147483647 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 203 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + i32.const -2147483647 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 204 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + i32.const 2147483647 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 205 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1701411834604692317316873e14 + i32.const -276 + f32.const 1.401298464324817e-45 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 206 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.401298464324817e-45 + i32.const 276 + f32.const 1701411834604692317316873e14 + f32.const 0 + i32.const 0 + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 207 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.000244140625 + i32.const -149 + f32.const 1.401298464324817e-45 + f32.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 208 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7499999403953552 + i32.const -148 + f32.const 1.401298464324817e-45 + f32.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 209 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5000006556510925 + i32.const -128 + f32.const 1.4693693398263237e-39 + f32.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_scalbnf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 210 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 8.06684839057968 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 222 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4.345239849338305 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 223 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const 8.38143342755525 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 224 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 6.531673581913484 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 225 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9.267056966972586 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 226 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.6619858980995045 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 227 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 0.4066039223853553 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 228 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5617597462207241 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 229 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.7741522965913037 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 230 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 0.6787637026394024 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 231 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 234 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 235 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 236 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 237 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 238 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 239 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_abs + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 240 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 8.066848754882812 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4.345239639282227 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 250 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const 8.381433486938477 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 251 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 6.531673431396484 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 252 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9.267057418823242 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 253 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.6619858741760254 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 254 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 0.40660393238067627 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 255 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5617597699165344 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 256 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.7741522789001465 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 257 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 0.6787636876106262 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 258 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 261 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 262 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 263 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 264 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 265 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 266 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_absf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 267 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 279 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 280 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 281 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 282 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 283 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.8473310828433507 + f64.const -0.41553276777267456 + get_global $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 284 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 1.989530071088669 + f64.const 0.4973946213722229 + get_global $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 285 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.9742849645674904 + f64.const -0.4428897500038147 + get_global $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 286 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.6854215158636222 + f64.const -0.12589527666568756 + get_global $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 287 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 2.316874138205964 + f64.const -0.17284949123859406 + get_global $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 288 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 291 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 292 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 293 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 294 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 295 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 296 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 297 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 298 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5309227209592985 + f64.const 2.1304853799705463 + f64.const 0.1391008496284485 + get_global $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 299 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.4939556746399746 + f64.const 1.0541629875851946 + f64.const 0.22054767608642578 + get_global $std/math/INEXACT + call $std/math/test_acos + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 300 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 309 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 310 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 311 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 312 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 313 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.8473311066627502 + f32.const -0.13588131964206696 + get_global $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 314 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 1.989530086517334 + f32.const 0.03764917701482773 + get_global $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 315 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.9742849469184875 + f32.const 0.18443739414215088 + get_global $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 316 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.6854215264320374 + f32.const -0.29158344864845276 + get_global $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 317 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 2.3168740272521973 + f32.const -0.3795364499092102 + get_global $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 318 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 321 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 322 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 323 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 324 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 325 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 326 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 327 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 328 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.49965065717697144 + f32.const 1.0476008653640747 + f32.const -0.21161814033985138 + get_global $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 329 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5051405429840088 + f32.const 2.1003410816192627 + f32.const -0.20852705836296082 + get_global $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 330 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5189794898033142 + f32.const 2.116452932357788 + f32.const -0.14600826799869537 + get_global $std/math/INEXACT + call $std/math/test_acosf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 331 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 343 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.1487163980597503 + f64.const -0.291634738445282 + get_global $std/math/INEXACT + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 344 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 345 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 346 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.91668914109908 + f64.const -0.24191908538341522 + get_global $std/math/INEXACT + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 347 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 348 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 349 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 350 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 351 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 352 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 355 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 356 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 357 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 358 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 359 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 360 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 361 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1060831199926429 + f64.const 0.4566373404384803 + f64.const -0.29381608963012695 + get_global $std/math/INEXACT + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 377 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1089809557628658 + f64.const 0.4627246859959428 + f64.const -0.3990095555782318 + get_global $std/math/INEXACT + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 379 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1169429159875521 + f64.const 0.47902433134075284 + f64.const -0.321674108505249 + get_global $std/math/INEXACT + call $std/math/test_acosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 380 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 389 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.148716449737549 + f32.const 0.4251045286655426 + get_global $std/math/INEXACT + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 390 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 391 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 392 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.916689157485962 + f32.const -0.1369788944721222 + get_global $std/math/INEXACT + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 393 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 394 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 395 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 396 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 397 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 398 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 401 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 402 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 403 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 404 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 405 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 406 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 407 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1125899906842624 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_acoshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 408 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 420 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 421 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 422 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 423 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 424 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7234652439515459 + f64.const -0.13599912822246552 + get_global $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 425 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.41873374429377225 + f64.const -0.09264230728149414 + get_global $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 426 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5965113622274062 + f64.const -0.10864213854074478 + get_global $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 427 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.8853748109312743 + f64.const -0.4256366193294525 + get_global $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 428 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.7460778114110673 + f64.const 0.13986606895923615 + get_global $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 429 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 432 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 433 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 434 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 435 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 436 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000000000000002 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 437 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 438 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 439 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 440 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5073043929119148 + f64.const 0.5320538997772349 + f64.const -0.16157317161560059 + get_global $std/math/INEXACT + call $std/math/test_asin + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 441 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 450 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 451 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 452 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 453 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 454 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7234652042388916 + f32.const -0.1307632476091385 + get_global $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 455 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.41873374581336975 + f32.const 0.3161141574382782 + get_global $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 456 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5965113639831543 + f32.const -0.4510819613933563 + get_global $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 457 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.8853747844696045 + f32.const 0.02493886835873127 + get_global $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 458 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.7460777759552002 + f32.const 0.2515012323856354 + get_global $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 459 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 462 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 463 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 464 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 465 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 466 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000001192092896 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 467 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 468 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 469 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 470 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5004770159721375 + f32.const 0.5241496562957764 + f32.const -0.29427099227905273 + get_global $std/math/INEXACT + call $std/math/test_asinf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 471 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -2.784729878387861 + f64.const -0.4762189984321594 + get_global $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 483 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.175213389013164 + f64.const -0.02728751301765442 + get_global $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 484 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.822706083697696 + f64.const 0.20985257625579834 + get_global $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 485 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -2.575619446591922 + f64.const 0.3113134205341339 + get_global $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 486 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.9225114951048674 + f64.const 0.4991756081581116 + get_global $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 487 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.6212462762707166 + f64.const -0.4697347581386566 + get_global $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 488 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.39615990393192035 + f64.const -0.40814438462257385 + get_global $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 489 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5357588870255474 + f64.const 0.3520713150501251 + get_global $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 490 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.7123571263197349 + f64.const 0.13371451199054718 + get_global $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 491 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.635182348903198 + f64.const 0.04749670997262001 + get_global $std/math/INEXACT + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 492 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 495 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 496 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 497 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 498 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_asinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 499 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -2.7847299575805664 + f32.const -0.14418013393878937 + get_global $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 528 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.17521333694458 + f32.const -0.020796965807676315 + get_global $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 529 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.8227059841156006 + f32.const 0.44718533754348755 + get_global $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 530 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -2.5756194591522217 + f32.const -0.14822272956371307 + get_global $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 531 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.922511577606201 + f32.const 0.14270681142807007 + get_global $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 532 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.6212462782859802 + f32.const 0.3684912919998169 + get_global $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 533 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.39615991711616516 + f32.const -0.13170306384563446 + get_global $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 534 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.535758912563324 + f32.const 0.08184859901666641 + get_global $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 535 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.7123571038246155 + f32.const -0.14270737767219543 + get_global $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 536 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.6351823210716248 + f32.const 0.2583143711090088 + get_global $std/math/INEXACT + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 537 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 540 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 541 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 542 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 543 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_asinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 544 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -1.4474613762633468 + f64.const 0.14857111871242523 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 556 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.344597927114538 + f64.const -0.08170335739850998 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 557 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -1.4520463463295539 + f64.const -0.07505480200052261 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 558 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -1.4188758658752532 + f64.const -0.057633496820926666 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 559 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 1.463303145448706 + f64.const 0.1606956422328949 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 560 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.5847550670238325 + f64.const 0.4582556486129761 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 561 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.3861864177552131 + f64.const -0.2574281692504883 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 562 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5118269531628881 + f64.const -0.11444277316331863 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 563 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.6587802431653822 + f64.const -0.11286488175392151 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 564 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.5963307826973472 + f64.const -0.2182842344045639 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 565 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 568 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 569 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0.7853981633974483 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 570 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0.7853981633974483 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 571 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 572 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 573 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 574 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6929821535674624 + f64.const 0.6060004555152562 + f64.const -0.17075790464878082 + get_global $std/math/INEXACT + call $std/math/test_atan + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 575 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -1.4474613666534424 + f32.const 0.12686480581760406 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 584 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 1.3445979356765747 + f32.const 0.16045434772968292 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 585 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -1.4520463943481445 + f32.const -0.39581751823425293 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 586 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -1.418875813484192 + f32.const 0.410570353269577 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 587 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 1.4633032083511353 + f32.const 0.48403501510620117 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 588 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.5847550630569458 + f32.const 0.2125193476676941 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 589 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.386186420917511 + f32.const 0.18169628083705902 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 590 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5118269920349121 + f32.const 0.3499770760536194 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 591 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.6587802171707153 + f32.const -0.2505330741405487 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 592 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.5963307619094849 + f32.const 0.17614826560020447 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 593 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 596 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 597 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0.7853981852531433 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 598 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0.7853981852531433 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 599 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 600 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 601 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_atanf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 602 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 614 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 615 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 616 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 617 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 618 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7963404371347943 + f64.const 0.21338365972042084 + get_global $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 619 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.43153570730602897 + f64.const -0.4325666129589081 + get_global $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 620 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.6354006111644578 + f64.const -0.06527865678071976 + get_global $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 621 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1.0306085575277995 + f64.const 0.14632052183151245 + get_global $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 622 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.8268179645205255 + f64.const 0.1397128701210022 + get_global $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 623 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 626 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 627 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 628 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 629 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 630 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 631 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 632 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 633 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 634 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.3552527156068805e-20 + f64.const 1.3552527156068805e-20 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 635 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.332636185032189e-302 + f64.const 9.332636185032189e-302 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 636 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5.562684646268003e-309 + f64.const 5.562684646268003e-309 + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 637 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -5.562684646268003e-309 + f64.const -5.562684646268003e-309 + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 638 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 8988465674311579538646525e283 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_atanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 639 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 648 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 649 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 650 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 651 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 652 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7963404059410095 + f32.const 0.19112196564674377 + get_global $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 653 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.4315357208251953 + f32.const -0.05180925130844116 + get_global $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 654 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.635400652885437 + f32.const 0.11911056190729141 + get_global $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 655 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1.0306085348129272 + f32.const 0.1798270344734192 + get_global $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 656 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.8268179297447205 + f32.const 0.11588983237743378 + get_global $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 657 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 660 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 661 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 662 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 663 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 664 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 665 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 666 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 667 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 668 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.3552527156068805e-20 + f32.const 1.3552527156068805e-20 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 669 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 7.888609052210118e-31 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 670 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2.938735877055719e-39 + f32.const 2.938735877055719e-39 + f32.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 671 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2.938735877055719e-39 + f32.const -2.938735877055719e-39 + f32.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 672 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1701411834604692317316873e14 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_atanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 673 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const -1.0585895402489023 + f64.const 0.09766263514757156 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 685 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 2.6868734126013067 + f64.const 0.35833948850631714 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 686 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -1.889300091849528 + f64.const -0.46235957741737366 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 687 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -0.9605469021111489 + f64.const -0.21524477005004883 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 688 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 1.0919123946142109 + f64.const 0.3894443213939667 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 689 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const -1.468508500616424 + f64.const -0.448591411113739 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 690 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 1.5641600512601268 + f64.const 0.3784842789173126 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 691 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.10281658910678508 + f64.const -0.13993260264396667 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 692 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.29697974004493516 + f64.const 0.44753071665763855 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 693 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -1.5131612053303916 + f64.const 0.39708876609802246 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 694 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 697 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 698 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 699 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 700 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 701 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 702 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 703 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 704 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 705 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 706 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 707 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 708 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 709 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 710 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 711 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 712 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 713 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 714 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const -3.141592653589793 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 715 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const 3.141592653589793 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 716 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const 1.5707963267948966 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 717 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const -1.5707963267948966 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 718 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0.7853981633974483 + f64.const -0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 719 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const 2.356194490192345 + f64.const -0.20682445168495178 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 720 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const -0.7853981633974483 + f64.const 0.27576595544815063 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 721 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const -2.356194490192345 + f64.const 0.20682445168495178 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 722 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1125369292536007e-308 + f64.const 1 + f64.const 1.1125369292536007e-308 + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 723 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 8988465674311579538646525e283 + f64.const 1.1125369292536007e-308 + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 724 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 8988465674311579538646525e283 + f64.const 1.668805393880401e-308 + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 725 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const -8988465674311579538646525e283 + f64.const 3.141592653589793 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_atan2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 726 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const -1.0585895776748657 + f32.const -0.22352588176727295 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 735 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 2.686873435974121 + f32.const 0.09464472532272339 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 736 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -1.8893001079559326 + f32.const -0.21941901743412018 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 737 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -0.9605468511581421 + f32.const 0.46015575528144836 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 738 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 1.0919123888015747 + f32.const -0.05708503723144531 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 739 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const -1.4685084819793701 + f32.const 0.19611206650733948 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 740 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 1.5641601085662842 + f32.const 0.48143187165260315 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 741 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.10281659662723541 + f32.const -0.4216274917125702 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 742 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.29697975516319275 + f32.const 0.2322007566690445 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 743 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -1.5131611824035645 + f32.const 0.16620726883411407 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 744 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 747 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 748 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 749 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 750 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 751 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 752 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 753 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 754 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 755 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 756 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 757 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 758 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 759 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 760 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 761 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 762 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 763 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 764 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const -3.1415927410125732 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 765 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const 3.1415927410125732 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 766 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const 1.5707963705062866 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 767 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const -1.5707963705062866 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 768 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0.7853981852531433 + f32.const 0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 769 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const 2.356194496154785 + f32.const 0.02500828728079796 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 770 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const -0.7853981852531433 + f32.const -0.3666777014732361 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 771 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const -2.356194496154785 + f32.const -0.02500828728079796 + get_global $std/math/INEXACT + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 772 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 5.877471754111438e-39 + f32.const 1 + f32.const 5.877471754111438e-39 + f32.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 773 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1701411834604692317316873e14 + f32.const 5.877471754111438e-39 + f32.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_atan2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 774 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -2.0055552545020245 + f64.const 0.46667951345443726 + get_global $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 786 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.6318162410515635 + f64.const -0.08160271495580673 + get_global $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 787 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.031293910673361 + f64.const -0.048101816326379776 + get_global $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 788 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -1.8692820012204925 + f64.const 0.08624018728733063 + get_global $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 789 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.100457720859702 + f64.const -0.2722989022731781 + get_global $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 790 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.8715311470455973 + f64.const 0.4414918124675751 + get_global $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 791 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.740839030300223 + f64.const 0.016453813761472702 + get_global $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 792 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.8251195400559286 + f64.const 0.30680638551712036 + get_global $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 793 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.9182102478959914 + f64.const 0.06543998420238495 + get_global $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 794 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.8788326906580094 + f64.const -0.2016713172197342 + get_global $std/math/INEXACT + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 795 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 798 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 799 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 800 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 801 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 802 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.313225746154785e-10 + f64.const 0.0009765625 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 803 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -9.313225746154785e-10 + f64.const -0.0009765625 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 804 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 805 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 806 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 8 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_cbrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 807 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -2.0055553913116455 + f32.const -0.44719240069389343 + get_global $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 816 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 1.6318162679672241 + f32.const 0.44636252522468567 + get_global $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 817 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.0312938690185547 + f32.const 0.19483426213264465 + get_global $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 818 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -1.8692820072174072 + f32.const -0.17075514793395996 + get_global $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 819 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.1004576683044434 + f32.const -0.36362043023109436 + get_global $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 820 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.8715311288833618 + f32.const -0.12857209146022797 + get_global $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 821 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.7408390641212463 + f32.const -0.4655757546424866 + get_global $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 822 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.8251195549964905 + f32.const 0.05601907894015312 + get_global $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 823 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.9182102680206299 + f32.const 0.45498204231262207 + get_global $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 824 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.8788326978683472 + f32.const -0.22978967428207397 + get_global $std/math/INEXACT + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 825 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 828 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 829 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 830 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 831 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 832 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.313225746154785e-10 + f32.const 0.0009765625 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 833 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -9.313225746154785e-10 + f32.const -0.0009765625 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 834 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 835 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 836 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 8 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_cbrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 837 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -8 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 849 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 5 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 850 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -8 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 851 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -6 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 852 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 10 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 853 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 854 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 855 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 856 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 857 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 858 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 861 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 862 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 863 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 864 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 865 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 866 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 867 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 868 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 869 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 2 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 870 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 871 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 872 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 873 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 874 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 875 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 876 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 877 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 878 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 879 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 880 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 881 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 882 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 883 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 884 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 2 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 885 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 886 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 887 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 888 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 889 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 890 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 891 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 892 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 893 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 894 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 895 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 896 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 897 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 898 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 899 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 2 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 900 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 901 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 902 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 903 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 904 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceil + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 905 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -8 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 914 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 5 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 915 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -8 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 916 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -6 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 917 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 10 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 918 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 919 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 920 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 921 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 922 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 923 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 926 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 927 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 928 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 929 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 930 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 931 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 932 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 933 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 934 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 2 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 935 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 936 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 937 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 938 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 939 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 940 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 941 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 942 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 943 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 944 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 945 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 946 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 947 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 948 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 949 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 2 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 950 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 951 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 952 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 953 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 954 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 955 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 956 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 957 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 958 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 959 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 960 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 961 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 962 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 963 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 964 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 2 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 965 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 966 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 967 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 968 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 969 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_ceilf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 970 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 1593.5209938862329 + f64.const -0.38098856806755066 + get_global $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1107 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 38.56174928426729 + f64.const -0.2712278366088867 + get_global $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1108 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const 2182.630979595893 + f64.const 0.0817827582359314 + get_global $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1109 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 343.273849250879 + f64.const -0.429940402507782 + get_global $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1110 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 5291.779170005587 + f64.const -0.1592995822429657 + get_global $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1111 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1.2272321957342842 + f64.const 0.23280741274356842 + get_global $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1112 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 1.083808541871197 + f64.const -0.3960916996002197 + get_global $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1113 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1.1619803583175077 + f64.const 0.37748390436172485 + get_global $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1114 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1.3149236876276706 + f64.const 0.43587008118629456 + get_global $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1115 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 1.2393413245934533 + f64.const 0.10201606154441833 + get_global $std/math/INEXACT + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1116 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1119 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1120 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1121 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1122 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_cosh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1123 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 1593.5216064453125 + f32.const 0.26242581009864807 + get_global $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1132 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 38.56174087524414 + f32.const -0.08168885856866837 + get_global $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1133 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const 2182.631103515625 + f32.const -0.02331414446234703 + get_global $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1134 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 343.2738037109375 + f32.const 0.20081493258476257 + get_global $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1135 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 5291.78173828125 + f32.const 0.36286723613739014 + get_global $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1136 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1.2272322177886963 + f32.const 0.32777416706085205 + get_global $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1137 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 1.0838085412979126 + f32.const -0.039848703891038895 + get_global $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1138 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1.161980390548706 + f32.const 0.15274477005004883 + get_global $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1139 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1.314923644065857 + f32.const -0.2387111485004425 + get_global $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1140 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 1.2393412590026855 + f32.const -0.45791932940483093 + get_global $std/math/INEXACT + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1141 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1144 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1145 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1146 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1147 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_coshf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1148 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 3.137706068161745e-04 + f64.const -0.2599197328090668 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1160 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 77.11053017112141 + f64.const -0.02792675793170929 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1161 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const 2.290813384916323e-04 + f64.const -0.24974334239959717 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1162 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 1.4565661260931588e-03 + f64.const -0.4816822409629822 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1163 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 10583.558245524993 + f64.const 0.17696762084960938 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1164 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1.9386384525571998 + f64.const -0.4964246451854706 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1165 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const 0.6659078892838025 + f64.const -0.10608318448066711 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1166 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1.7537559518626311 + f64.const -0.39162111282348633 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1167 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 2.1687528885129246 + f64.const -0.2996125817298889 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1168 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const 0.5072437089402843 + f64.const 0.47261738777160645 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1169 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1172 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1173 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 2.718281828459045 + f64.const -0.3255307376384735 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1174 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0.36787944117144233 + f64.const 0.22389651834964752 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1175 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1176 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1177 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1178 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0397214889526365 + f64.const 2.828429155876411 + f64.const 0.18803080916404724 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1179 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0397214889526365 + f64.const 0.35355313670217847 + f64.const 0.2527272403240204 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1180 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0397210121154785 + f64.const 2.8284278071766122 + f64.const -0.4184139370918274 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1181 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0397214889526367 + f64.const 2.8284291558764116 + f64.const -0.22618377208709717 + get_global $std/math/INEXACT + call $std/math/test_exp + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1182 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 3.1377049162983894e-04 + f32.const -0.030193336308002472 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1191 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 77.11051177978516 + f32.const -0.2875460684299469 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1192 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const 2.2908132814336568e-04 + f32.const 0.2237040400505066 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1193 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 1.4565663877874613e-03 + f32.const 0.36469703912734985 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1194 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 10583.5634765625 + f32.const 0.45962104201316833 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1195 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1.93863844871521 + f32.const 0.3568260967731476 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1196 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const 0.6659078598022461 + f32.const -0.38294991850852966 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1197 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1.753756046295166 + f32.const 0.44355490803718567 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1198 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 2.168752908706665 + f32.const 0.24562469124794006 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1199 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const 0.5072436928749084 + f32.const -0.3974292278289795 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1200 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1203 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1204 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 2.7182817459106445 + f32.const -0.3462330996990204 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1205 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0.3678794503211975 + f32.const 0.3070148527622223 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1206 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1207 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1208 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1209 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 88.72283172607422 + f32.const 340279851902147610656242e15 + f32.const -0.09067153930664062 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1210 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 88.72283935546875 + f32.const inf + f32.const 0 + get_global $std/math/INEXACT + get_global $std/math/OVERFLOW + i32.or + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1211 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -103.97207641601562 + f32.const 1.401298464324817e-45 + f32.const 0.49999967217445374 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1212 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -103.97208404541016 + f32.const 0 + f32.const -0.49999651312828064 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1213 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.3465735614299774 + f32.const 1.4142135381698608 + f32.const 0.13922421634197235 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1214 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.3465735912322998 + f32.const 1.4142135381698608 + f32.const -0.21432916820049286 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1215 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.3465736210346222 + f32.const 1.4142136573791504 + f32.const 0.43211743235588074 + get_global $std/math/INEXACT + call $std/math/test_expf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1216 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -0.9996862293931839 + f64.const -0.2760058343410492 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1228 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 76.11053017112141 + f64.const -0.02792675793170929 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1229 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -0.9997709186615084 + f64.const 0.10052496194839478 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1230 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -0.9985434338739069 + f64.const -0.27437829971313477 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1231 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 10582.558245524993 + f64.const 0.17696762084960938 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1232 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.9386384525571999 + f64.const 0.007150684483349323 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1233 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.3340921107161975 + f64.const -0.21216636896133423 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1234 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.7537559518626312 + f64.const 0.21675777435302734 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1235 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1.1687528885129248 + f64.const 0.4007748067378998 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1236 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.4927562910597158 + f64.const -0.05476519837975502 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1237 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1240 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1241 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1.7182818284590453 + f64.const 0.348938524723053 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1242 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0.6321205588285577 + f64.const 0.11194825917482376 + get_global $std/math/INEXACT + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1243 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1244 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1245 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1246 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507201e-308 + f64.const 2.225073858507201e-308 + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1247 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2.225073858507201e-308 + f64.const -2.225073858507201e-308 + f64.const 0 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_expm1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1248 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -0.9996862411499023 + f32.const -0.19532723724842072 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1257 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 76.11051177978516 + f32.const -0.2875460684299469 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1258 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -0.9997709393501282 + f32.const -0.34686920046806335 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1259 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -0.9985434412956238 + f32.const -0.1281939446926117 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1260 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 10582.5634765625 + f32.const 0.45962104201316833 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1261 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.9386383891105652 + f32.const -0.28634780645370483 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1262 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.3340921103954315 + f32.const 0.23410017788410187 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1263 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.7537559866905212 + f32.const -0.11289017647504807 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1264 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1.168752908706665 + f32.const 0.4912493824958801 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1265 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.49275627732276917 + f32.const 0.20514154434204102 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1266 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1269 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1270 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1.718281865119934 + f32.const 0.3075338304042816 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1271 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0.6321205496788025 + f32.const 0.15350742638111115 + get_global $std/math/INEXACT + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1272 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1273 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1274 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_expm1f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1275 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -9 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1287 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1288 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -9 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1289 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -7 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1290 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1291 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1292 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1293 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1294 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1295 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1296 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1299 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1300 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1301 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1302 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1303 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1304 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1305 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1306 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1307 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1308 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -2 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1309 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1310 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1311 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1312 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_floor + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1313 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -9 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1322 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1323 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -9 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1324 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -7 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1325 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1326 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1327 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1328 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1329 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1330 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1331 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1334 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1335 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1336 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1337 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1338 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1339 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1340 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1341 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1342 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1343 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -2 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1344 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1345 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1346 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1347 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_floorf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1348 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const 9.25452742288464 + f64.const -0.31188681721687317 + get_global $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1360 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 9.893305808328252 + f64.const 0.4593673348426819 + get_global $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1361 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const 8.825301797432132 + f64.const -0.1701754331588745 + get_global $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1362 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const 7.970265885519092 + f64.const -0.3176782727241516 + get_global $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1363 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 10.441639651824575 + f64.const -0.2693633437156677 + get_global $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1364 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const 6.483936052542593 + f64.const 0.35618898272514343 + get_global $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1365 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 7.859063309581766 + f64.const 0.08044655621051788 + get_global $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1366 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const 7.717156764899584 + f64.const 0.05178084969520569 + get_global $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1367 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 2.104006123874314 + f64.const -0.0918039008975029 + get_global $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1368 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const 0.5596880129062913 + f64.const 0.1383407711982727 + get_global $std/math/INEXACT + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1369 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3 + f64.const 4 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1372 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const 4 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1373 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4 + f64.const 3 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1374 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4 + f64.const -3 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1375 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const -4 + f64.const 5 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1376 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862315708145274e284 + f64.const 0 + f64.const 1797693134862315708145274e284 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1377 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862315708145274e284 + f64.const -0 + f64.const 1797693134862315708145274e284 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1378 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + f64.const 0 + f64.const 5e-324 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1379 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + f64.const -0 + f64.const 5e-324 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1380 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1381 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1382 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1383 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1384 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1385 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1386 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1387 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1388 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1389 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_hypot + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1390 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const 9.254528045654297 + f32.const 0.2735958993434906 + get_global $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1399 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 9.893305778503418 + f32.const 0.4530770778656006 + get_global $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1400 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const 8.825302124023438 + f32.const 0.30755728483200073 + get_global $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1401 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const 7.970265865325928 + f32.const 0.06785223633050919 + get_global $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1402 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 10.44163990020752 + f32.const -0.26776307821273804 + get_global $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1403 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const 6.483936309814453 + f32.const 0.48381292819976807 + get_global $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1404 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 7.859063148498535 + f32.const 0.07413065433502197 + get_global $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1405 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const 7.717156887054443 + f32.const 0.4940592646598816 + get_global $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1406 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 2.104006052017212 + f32.const -0.287089467048645 + get_global $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1407 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const 0.5596880316734314 + f32.const 0.4191940724849701 + get_global $std/math/INEXACT + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1408 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3 + f32.const 4 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1411 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const 4 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1412 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4 + f32.const 3 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1413 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4 + f32.const -3 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1414 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const -4 + f32.const 5 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1415 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3402823466385288598117041e14 + f32.const 0 + f32.const 3402823466385288598117041e14 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1416 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3402823466385288598117041e14 + f32.const -0 + f32.const 3402823466385288598117041e14 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1417 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const 0 + f32.const 1.401298464324817e-45 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1418 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const -0 + f32.const 1.401298464324817e-45 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1419 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1420 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1421 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1422 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1423 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1424 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1425 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1426 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1427 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1428 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_hypotf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1429 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1441 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.4690809584224322 + f64.const -0.3412533402442932 + get_global $std/math/INEXACT + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1442 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1443 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1444 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.2264658498795615 + f64.const 0.3638114035129547 + get_global $std/math/INEXACT + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1445 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const -0.4125110252365137 + f64.const -0.29108747839927673 + get_global $std/math/INEXACT + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1446 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1447 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const -0.5766810183195862 + f64.const -0.10983199626207352 + get_global $std/math/INEXACT + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1448 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const -0.2559866591263865 + f64.const -0.057990044355392456 + get_global $std/math/INEXACT + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1449 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1450 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1453 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1454 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1455 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1456 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1457 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1458 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1459 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1460 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1469 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1470 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1471 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1472 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1473 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1474 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1475 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1476 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1479 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1480 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1481 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1482 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1483 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1484 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1485 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_logf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1486 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1498 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 0.6380137537120029 + f64.const -0.2088824063539505 + get_global $std/math/INEXACT + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1499 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1500 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1501 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 0.9669418327487274 + f64.const -0.06120431795716286 + get_global $std/math/INEXACT + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1502 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const -0.17915126198447093 + f64.const 0.39090874791145325 + get_global $std/math/INEXACT + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1503 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1504 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const -0.25044938407454437 + f64.const -0.3046841621398926 + get_global $std/math/INEXACT + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1505 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const -0.11117359349943837 + f64.const -0.31503361463546753 + get_global $std/math/INEXACT + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1506 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1507 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1510 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1511 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1512 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1513 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1514 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1515 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1516 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log10 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1517 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1526 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 0.6380137205123901 + f32.const -0.20476758480072021 + get_global $std/math/INEXACT + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1527 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1528 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1529 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 0.9669418334960938 + f32.const -0.34273025393486023 + get_global $std/math/INEXACT + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1530 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const -0.1791512817144394 + f32.const -0.27078554034233093 + get_global $std/math/INEXACT + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1531 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1532 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const -0.25044935941696167 + f32.const 0.2126826047897339 + get_global $std/math/INEXACT + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1533 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const -0.1111735999584198 + f32.const 0.46515095233917236 + get_global $std/math/INEXACT + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1534 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1535 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1538 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1539 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1540 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1541 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1542 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1543 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1544 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_log10f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1545 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1557 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 1.6762064170601734 + f64.const 0.46188199520111084 + get_global $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1558 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1559 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1560 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 2.3289404168523826 + f64.const -0.411114901304245 + get_global $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1561 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.5080132114992477 + f64.const -0.29306045174598694 + get_global $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1562 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.5218931811663979 + f64.const -0.25825726985931396 + get_global $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1563 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.4458132279488102 + f64.const -0.13274887204170227 + get_global $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1564 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.5733227294648414 + f64.const 0.02716583013534546 + get_global $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1565 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -1.1355782978128564 + f64.const 0.2713092863559723 + get_global $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1566 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1569 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1570 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -7.888609052210118e-31 + f64.const 1.7763568394002505e-15 + get_global $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1571 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0.6931471805599453 + f64.const -0.2088811695575714 + get_global $std/math/INEXACT + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1572 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1573 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1574 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1575 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log1p + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1576 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1585 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 1.676206350326538 + f32.const -0.23014859855175018 + get_global $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1586 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1587 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1588 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 2.3289403915405273 + f32.const -0.29075589776039124 + get_global $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1589 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.5080131888389587 + f32.const -0.1386766880750656 + get_global $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1590 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.5218932032585144 + f32.const -0.08804433047771454 + get_global $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1591 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.44581323862075806 + f32.const -0.15101368725299835 + get_global $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1592 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.5733227133750916 + f32.const -0.10264533013105392 + get_global $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1593 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -1.1355782747268677 + f32.const -0.19879481196403503 + get_global $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1594 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1597 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1598 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -7.888609052210118e-31 + f32.const 3.308722450212111e-24 + get_global $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1599 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0.6931471824645996 + f32.const 0.031954795122146606 + get_global $std/math/INEXACT + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1600 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1601 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1602 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1603 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1604 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.1754942106924411e-38 + f32.const -1.1754942106924411e-38 + f32.const 4.930380657631324e-32 + get_global $std/math/INEXACT + get_global $std/math/UNDERFLOW + i32.or + call $std/math/test_log1pf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1605 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1617 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.1194358133804485 + f64.const -0.10164877772331238 + get_global $std/math/INEXACT + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1618 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1619 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1620 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 3.2121112403298744 + f64.const -0.15739446878433228 + get_global $std/math/INEXACT + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1621 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const -0.5951276104207402 + f64.const 0.3321485221385956 + get_global $std/math/INEXACT + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1622 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1623 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const -0.8319748453044644 + f64.const 0.057555437088012695 + get_global $std/math/INEXACT + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1624 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const -0.36931068365537134 + f64.const -0.19838279485702515 + get_global $std/math/INEXACT + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1625 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1626 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1629 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1630 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1631 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1632 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1633 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1634 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1635 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_log2 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1636 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1645 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.1194357872009277 + f32.const 0.18271538615226746 + get_global $std/math/INEXACT + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1646 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1647 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1648 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 3.212111234664917 + f32.const -0.3188050389289856 + get_global $std/math/INEXACT + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1649 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const -0.5951276421546936 + f32.const 0.34231460094451904 + get_global $std/math/INEXACT + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1650 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1651 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const -0.8319748044013977 + f32.const -0.33473604917526245 + get_global $std/math/INEXACT + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1652 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const -0.3693107068538666 + f32.const 0.3278401792049408 + get_global $std/math/INEXACT + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1653 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1654 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1657 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1658 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1659 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1660 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1661 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1662 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1663 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_log2f + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1664 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const 4.535662560676869 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1676 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 4.345239849338305 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1677 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -2.763607337379588 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1678 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const 4.567535276842744 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1679 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 9.267056966972586 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1680 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const 0.6620717923376739 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1681 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 7.858890253041697 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1682 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const 7.67640268511754 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1683 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 2.0119025790324803 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1684 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const 0.03223983060263804 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1685 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1688 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1689 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1690 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1691 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1692 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1693 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1694 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1695 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1696 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1697 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1698 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1699 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1700 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1701 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1702 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1703 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1704 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1705 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1706 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1707 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1708 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1709 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1710 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1711 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1712 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1713 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1714 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1715 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1716 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1717 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1718 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1719 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1720 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1721 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1722 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1723 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1724 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1725 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1726 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1727 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1728 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0.5 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1729 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1730 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1731 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1732 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1733 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1734 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1735 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1736 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1737 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1738 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1739 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1740 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1741 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const 1.75 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1742 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1743 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const 1.75 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1744 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_max + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1745 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const 4.535662651062012 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1754 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 4.345239639282227 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1755 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -2.7636072635650635 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1756 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const 4.567535400390625 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1757 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 9.267057418823242 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1758 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const 0.6620717644691467 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1759 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 7.858890056610107 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1760 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const 7.676402568817139 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1761 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 2.0119025707244873 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1762 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const 0.03223983198404312 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1763 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1766 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1767 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1768 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1769 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1770 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1771 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1772 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1773 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1774 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1775 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1776 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1777 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1778 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1779 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1780 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1781 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1782 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1783 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1784 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1785 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1786 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1787 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1788 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1789 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1790 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1791 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1792 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1793 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1794 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1795 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1796 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1797 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1798 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1799 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1800 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1801 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1802 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1803 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1804 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1805 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 2 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1806 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0.5 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1807 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1808 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1809 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1810 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1811 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1812 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1813 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1814 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1815 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1816 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1817 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1818 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1819 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const 1.75 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1820 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1821 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const 1.75 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1822 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_maxf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1823 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const -8.06684839057968 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1835 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const -8.88799136300345 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1836 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -8.38143342755525 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1837 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -6.531673581913484 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1838 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 4.811392084359796 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1839 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const -6.450045556060236 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1840 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 0.05215452675006225 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1841 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.792054511984896 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1842 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.615702673197924 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1843 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -0.5587586823609152 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1844 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1847 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1848 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1849 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1850 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1851 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1852 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1853 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1854 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1855 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1856 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1857 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1858 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1859 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1860 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1861 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1862 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1863 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1864 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1865 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1866 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1867 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1868 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1869 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1870 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1871 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1872 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1873 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1874 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1875 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1876 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1877 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1878 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1879 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1880 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1881 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1882 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1883 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1884 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1885 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1886 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1887 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0.5 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1888 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1889 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1890 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1891 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1892 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1893 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1894 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1895 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1896 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1897 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1898 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1899 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1900 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1901 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const -1.75 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1902 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1903 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const -1.75 + f64.const 0 + i32.const 0 + call $std/math/test_min + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1904 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const -8.066848754882812 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1913 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const -8.887990951538086 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1914 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -8.381433486938477 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1915 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -6.531673431396484 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1916 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 4.811392307281494 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1917 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const -6.450045585632324 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1918 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 0.052154526114463806 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1919 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.7920545339584351 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1920 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.6157026886940002 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1921 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -0.5587586760520935 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1922 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1925 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1926 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1927 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1928 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1929 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1930 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1931 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1932 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1933 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1934 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1935 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1936 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1937 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1938 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1939 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1940 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1941 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1942 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1943 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1944 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1945 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1946 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1947 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1948 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1949 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1950 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1951 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1952 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1953 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1954 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1955 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1956 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1957 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1958 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1959 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1960 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1961 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1962 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1963 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1964 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 2 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1965 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0.5 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1966 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1967 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1968 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1969 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1970 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1971 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1972 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1973 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1974 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1975 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1976 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1977 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1978 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1979 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const -1.75 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1980 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1981 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const -1.75 + f32.const 0 + i32.const 0 + call $std/math/test_minf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1982 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const -3.531185829902812 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1996 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 4.345239849338305 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1997 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -0.09061141541648476 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1998 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -1.9641383050707404 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1999 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 4.45566488261279 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2000 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const -0.4913994250211714 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2001 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 0.035711240532359426 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2002 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.792054511984896 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2003 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.615702673197924 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2004 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -0.0106815621160685 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2005 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2008 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2009 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2010 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2011 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2012 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2013 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2014 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2015 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2016 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2017 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2018 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2019 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2020 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2021 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2022 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2023 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2024 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2025 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2026 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2027 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2028 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2029 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2030 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2031 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2032 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2033 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2034 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2035 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2036 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2037 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2038 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2039 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2040 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2041 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2042 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2043 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2044 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2045 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2046 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2047 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2048 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2049 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2050 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2051 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2052 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2053 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2054 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2055 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2056 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2057 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2058 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2059 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2060 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2061 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2062 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2063 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2064 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2065 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2066 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2067 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2068 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2069 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2070 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const -0.25 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2071 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2072 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const -0.25 + f64.const 0 + i32.const 0 + call $std/math/test_mod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2073 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const -3.531186103820801 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2082 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 4.345239639282227 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2083 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -0.09061169624328613 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2084 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -1.9641380310058594 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2085 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 4.455665111541748 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2086 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const -0.49139970541000366 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2087 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 0.0357111394405365 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2088 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.7920545339584351 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2089 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.6157026886940002 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2090 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -0.010681532323360443 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2091 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2094 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2095 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2096 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2097 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2098 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2099 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const 1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2100 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const 1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2101 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2102 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2103 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2104 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2105 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2106 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2107 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2108 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2109 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2110 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2111 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2112 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2113 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2114 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2115 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2116 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2117 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2118 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2119 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2120 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2121 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2122 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2123 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2124 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2125 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2126 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2127 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2128 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2129 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2130 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2131 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2132 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2133 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2134 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2135 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2136 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2137 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2138 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2139 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2140 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2141 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 2 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2142 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0.5 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2143 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2144 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2145 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2146 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2147 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2148 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2149 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2150 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2151 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2152 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2153 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2154 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2155 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2156 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const -0.25 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2157 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2158 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const -0.25 + f32.const 0 + i32.const 0 + call $std/math/test_modf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2159 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2171 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 2.1347118825587285e-06 + f64.const 0.3250160217285156 + get_global $std/math/INEXACT + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2172 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2173 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2174 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const 44909.29941512966 + f64.const -0.26659080386161804 + get_global $std/math/INEXACT + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2175 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2176 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const 1.1135177413458652 + f64.const -0.37168607115745544 + get_global $std/math/INEXACT + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2177 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2178 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.37690773521380183 + f64.const 0.32473301887512207 + get_global $std/math/INEXACT + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2179 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2180 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2183 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2184 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 3 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2185 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2186 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2187 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2188 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2189 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2190 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0.5 + f64.const inf + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2191 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const inf + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2192 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -2 + f64.const inf + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2193 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -3 + f64.const inf + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2194 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -4 + f64.const inf + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2195 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2196 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2197 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2198 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 3 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2199 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2200 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2201 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2202 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2203 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2204 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0.5 + f64.const inf + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2205 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const inf + f64.neg + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2206 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -2 + f64.const inf + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2207 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -3 + f64.const inf + f64.neg + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2208 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -4 + f64.const inf + f64.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2209 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2210 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2211 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2212 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2213 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2214 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2215 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2216 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2217 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2218 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2219 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2220 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2221 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2222 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2223 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2224 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2225 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 2 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2226 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2227 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -2 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2228 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -3 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2229 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0.5 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2230 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2231 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2232 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2233 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 3 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2234 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0.5 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2235 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -0.5 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2236 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -3 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2237 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 0.5 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2238 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1.5 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2239 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 2 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2240 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 3 + f64.const -0.125 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2241 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2242 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2243 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2244 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2245 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const inf + f64.neg + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2246 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2247 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2248 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2249 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2250 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2251 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2252 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2253 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 3 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2254 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2255 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2256 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0.5 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2257 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2258 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2259 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2260 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2261 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2262 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2263 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 3 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2264 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2265 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2266 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0.5 + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2267 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0.5 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2268 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2269 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -2 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2270 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2271 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2272 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const 1 + f64.const -2 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2273 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_pow + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2274 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2283 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 2.134714122803416e-06 + f32.const 0.1436440795660019 + get_global $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2284 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2285 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2286 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const 44909.33203125 + f32.const -0.05356409028172493 + get_global $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2287 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2288 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const 1.1135177612304688 + f32.const 0.19122089445590973 + get_global $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2289 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2290 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.3769077658653259 + f32.const 0.337149053812027 + get_global $std/math/INEXACT + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2291 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2292 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2295 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2296 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 3 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2297 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2298 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2299 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2300 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2301 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2302 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0.5 + f32.const inf + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2303 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const inf + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2304 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -2 + f32.const inf + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2305 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -3 + f32.const inf + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2306 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -4 + f32.const inf + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2307 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2308 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2309 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2310 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 3 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2311 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2312 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2313 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2314 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2315 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2316 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0.5 + f32.const inf + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2317 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2318 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -2 + f32.const inf + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2319 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -3 + f32.const inf + f32.neg + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2320 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -4 + f32.const inf + f32.const 0 + get_global $std/math/DIVBYZERO + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2321 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2322 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2323 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2324 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2325 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2326 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2327 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2328 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2329 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2330 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2331 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2332 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2333 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2334 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2335 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2336 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2337 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 2 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2338 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2339 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -2 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2340 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -3 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2341 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0.5 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2342 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2343 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2344 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2345 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 3 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2346 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0.5 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2347 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -0.5 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2348 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -3 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2349 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 0.5 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2350 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1.5 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2351 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 2 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2352 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 3 + f32.const -0.125 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2353 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2354 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2355 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2356 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2357 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const inf + f32.neg + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2358 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2359 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2360 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2361 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2362 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2363 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2364 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2365 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 3 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2366 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2367 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2368 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0.5 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2369 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2370 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2371 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2372 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2373 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2374 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2375 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 3 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2376 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 2 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2377 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2378 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0.5 + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2379 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0.5 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2380 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2381 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -2 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2382 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2383 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2384 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const 1 + f32.const -2 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2385 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_powf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2386 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/bindings/Math/random + i64.reinterpret/f64 + call $~lib/math/NativeMath.seedRandom + block $break|0 + i32.const 0 + set_local $0 + loop $repeat|0 + get_local $0 + f64.convert_s/i32 + f64.const 1e6 + f64.lt + i32.eqz + br_if $break|0 + block + call $~lib/math/NativeMath.random + set_local $1 + get_local $1 + f64.const 0 + f64.ge + tee_local $2 + if (result i32) + get_local $1 + f64.const 1 + f64.lt + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2395 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + unreachable + end + unreachable + end + block $~lib/math/NativeMathf.seedRandom|inlined.0 + call $~lib/bindings/Math/random + i64.reinterpret/f64 + set_local $3 + get_local $3 + call $~lib/math/NativeMath.seedRandom + end + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + f64.convert_s/i32 + f64.const 1e6 + f64.lt + i32.eqz + br_if $break|1 + block + call $~lib/math/NativeMathf.random + set_local $4 + get_local $4 + f32.const 0 + f32.ge + tee_local $2 + if (result i32) + get_local $4 + f32.const 1 + f32.lt + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2403 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + unreachable + end + unreachable + end + f64.const -8.06684839057968 + f64.const -8 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2417 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2418 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -8 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2419 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -7 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2420 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2421 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2422 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2423 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2424 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2425 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2426 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2429 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2430 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2431 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2432 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2433 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2434 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2435 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2436 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2437 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 2 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2438 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2439 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2440 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2441 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2442 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2443 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2444 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2445 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -8 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2454 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2455 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -8 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2456 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -7 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2457 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2458 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2459 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2460 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2461 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2462 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2463 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2466 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2467 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2468 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2469 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2470 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2471 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2472 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2473 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2474 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 2 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2475 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_round + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2476 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2477 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2478 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2479 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2480 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2481 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_roundf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2482 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2493 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2494 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2495 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2496 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2497 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2498 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2499 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2500 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_sign + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2501 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2509 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2510 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2511 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2512 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2513 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2514 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2515 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2516 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_signf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2517 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const 4.535662560676869 + f64.const 1.0044767307740567 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2528 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const -8.88799136300345 + f64.const 4.345239849338305 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2529 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2.763607337379588 + f64.const -0.09061141541648476 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2530 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const 4.567535276842744 + f64.const -1.9641383050707404 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2531 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 4.811392084359796 + f64.const -0.35572720174700656 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2532 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.450045556060236 + f64.const 0.6620717923376739 + f64.const 0.17067236731650248 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2533 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.858890253041697 + f64.const 0.05215452675006225 + f64.const -0.016443286217702822 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2534 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.792054511984896 + f64.const 7.67640268511754 + f64.const -0.792054511984896 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2535 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.615702673197924 + f64.const 2.0119025790324803 + f64.const 0.615702673197924 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2536 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5587586823609152 + f64.const 0.03223983060263804 + f64.const -0.0106815621160685 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2537 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2540 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2541 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2542 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2543 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2544 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2545 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2546 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const 1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2547 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + f64.const 1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2548 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const 1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2549 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2550 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2551 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2552 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2553 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2554 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2555 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2556 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2557 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2558 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const -1 + f64.const -0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2559 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const 0.5 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2560 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2 + f64.const -1 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2561 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2 + f64.const -1 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2562 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2563 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2564 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2565 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2566 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2567 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2568 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2569 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2570 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2571 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2572 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2573 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2574 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2575 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2576 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2577 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2578 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2579 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2580 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2581 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2582 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2583 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2584 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 2 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2585 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2586 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2587 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 2 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2588 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0.5 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2589 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2590 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2591 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2592 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2593 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2594 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2595 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2596 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2597 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2598 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2599 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2600 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2601 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const 0.5 + f64.const -0.25 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2602 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const 0.5 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2603 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.75 + f64.const -0.5 + f64.const -0.25 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2604 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.75 + f64.const -0.5 + f64.const 0.25 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2605 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 8e-323 + f64.const inf + f64.const 8e-323 + f64.const 0 + i32.const 0 + call $std/math/test_rem + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2606 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const 4.535662651062012 + f32.const 1.004476547241211 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2615 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const -8.887990951538086 + f32.const 4.345239639282227 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2616 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2.7636072635650635 + f32.const -0.09061169624328613 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2617 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const 4.567535400390625 + f32.const -1.9641380310058594 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2618 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 4.811392307281494 + f32.const -0.3557271957397461 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2619 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.450045585632324 + f32.const 0.6620717644691467 + f32.const 0.17067205905914307 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2620 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.858890056610107 + f32.const 0.052154526114463806 + f32.const -0.016443386673927307 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2621 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.7920545339584351 + f32.const 7.676402568817139 + f32.const -0.7920545339584351 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2622 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6157026886940002 + f32.const 2.0119025707244873 + f32.const 0.6157026886940002 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2623 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5587586760520935 + f32.const 0.03223983198404312 + f32.const -0.010681532323360443 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2624 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2627 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2628 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2629 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2630 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2631 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2632 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const 1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2633 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const 1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2634 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + f32.const 1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2635 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const 1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2636 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2637 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2638 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2639 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2640 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2641 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2642 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2643 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2644 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2645 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const -1 + f32.const -0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2646 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const -1 + f32.const 0.5 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2647 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2 + f32.const -1 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2648 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -2 + f32.const -1 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2649 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2650 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2651 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2652 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2653 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2654 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2655 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2656 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2657 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2658 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2659 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2660 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2661 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2662 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2663 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2664 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2665 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2666 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2667 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2668 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2669 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2670 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2671 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 2 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2672 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0.5 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2673 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2674 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 2 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2675 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0.5 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2676 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2677 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2678 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2679 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2680 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2681 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2682 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2683 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2684 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2685 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2686 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2687 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2688 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const 0.5 + f32.const -0.25 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2689 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const 0.5 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2690 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.75 + f32.const -0.5 + f32.const -0.25 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2691 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.75 + f32.const -0.5 + f32.const 0.25 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2692 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 5.877471754111438e-39 + f32.const inf + f32.const 5.877471754111438e-39 + f32.const 0 + i32.const 0 + call $std/math/test_remf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2693 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -1593.5206801156262 + f64.const -0.2138727605342865 + get_global $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2758 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 38.54878088685412 + f64.const 0.21537430584430695 + get_global $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2759 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -2182.6307505145546 + f64.const 0.16213826835155487 + get_global $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2760 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -343.2723926847529 + f64.const 0.20479513704776764 + get_global $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2761 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 5291.7790755194055 + f64.const -0.48676517605781555 + get_global $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2762 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.7114062568229157 + f64.const -0.4584641456604004 + get_global $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2763 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.41790065258739445 + f64.const 0.37220045924186707 + get_global $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2764 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5917755935451237 + f64.const 0.46178996562957764 + get_global $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2765 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.8538292008852542 + f64.const -0.07019051909446716 + get_global $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2766 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.732097615653169 + f64.const 0.26858529448509216 + get_global $std/math/INEXACT + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2767 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2770 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2771 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2772 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2773 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_sinh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2774 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -1593.521240234375 + f32.const 0.1671663224697113 + get_global $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2783 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 38.548770904541016 + f32.const -0.49340328574180603 + get_global $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2784 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -2182.630859375 + f32.const 0.0849970355629921 + get_global $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2785 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -343.2723388671875 + f32.const 0.0704190656542778 + get_global $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2786 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 5291.78125 + f32.const -0.44362515211105347 + get_global $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2787 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.7114062309265137 + f32.const 0.058103885501623154 + get_global $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2788 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.4179006516933441 + f32.const 0.39349499344825745 + get_global $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2789 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5917755961418152 + f32.const -0.4183797240257263 + get_global $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2790 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.8538292050361633 + f32.const 0.45992106199264526 + get_global $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2791 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.7320976257324219 + f32.const -0.48159059882164 + get_global $std/math/INEXACT + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2792 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2795 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2796 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2797 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2798 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_sinhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2799 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2811 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 2.0845238903256313 + f64.const -0.07180261611938477 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2812 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2813 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2814 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 3.0441841217266385 + f64.const -0.01546262577176094 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2815 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.8136251582267503 + f64.const -0.08618157356977463 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2816 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2817 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.7495063350104014 + f64.const -0.0981396734714508 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2818 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.879859248170583 + f64.const -0.37124353647232056 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2819 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2820 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2823 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2824 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2825 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2826 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2827 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2828 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2829 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4 + f64.const 2 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2830 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-323 + f64.const 3.1434555694052576e-162 + f64.const 0.43537619709968567 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2831 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5e-323 + f64.const 3.849931087076416e-162 + f64.const -0.45194002985954285 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2832 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + f64.const 2.2227587494850775e-162 + f64.const 0 + i32.const 0 + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2833 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -5e-324 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2834 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999999999999999 + f64.const 0.9999999999999999 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2835 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.9999999999999998 + f64.const 1.414213562373095 + f64.const -0.21107041835784912 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2836 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const 1 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2837 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.0000000000000004 + f64.const 1.4142135623730951 + f64.const -0.27173060178756714 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2838 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000000000000002 + f64.const 1 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2839 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999999999999999 + f64.const 0.9999999999999999 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2840 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1797693134862315708145274e284 + f64.const nan:0x8000000000000 + f64.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2841 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862315708145274e284 + f64.const 1340780792994259561100831e130 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2842 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 179769313486231490980915e285 + f64.const 134078079299425926338769e131 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2843 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862314111473026e284 + f64.const 1340780792994258965674548e130 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2844 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862313313136902e284 + f64.const 1340780792994258667961407e130 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2845 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862312514800778e284 + f64.const 1340780792994258370248265e130 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2846 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862311716464655e284 + f64.const 1340780792994258072535124e130 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2847 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862310918128531e284 + f64.const 1340780792994257774821982e130 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2848 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862310119792407e284 + f64.const 1340780792994257477108841e130 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2849 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862309321456283e284 + f64.const 1340780792994257179395699e130 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2850 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862308523120159e284 + f64.const 1340780792994256881682558e130 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2851 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862307724784036e284 + f64.const 1340780792994256583969417e130 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2852 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507203e-308 + f64.const 1.4916681462400417e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2853 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507205e-308 + f64.const 1.4916681462400423e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2854 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507207e-308 + f64.const 1.491668146240043e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2855 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507209e-308 + f64.const 1.4916681462400437e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2856 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.225073858507211e-308 + f64.const 1.4916681462400443e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2857 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072127e-308 + f64.const 1.491668146240045e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2858 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072147e-308 + f64.const 1.4916681462400457e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2859 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072167e-308 + f64.const 1.4916681462400463e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2860 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072187e-308 + f64.const 1.491668146240047e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2861 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072207e-308 + f64.const 1.4916681462400476e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2862 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072226e-308 + f64.const 1.4916681462400483e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2863 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072246e-308 + f64.const 1.491668146240049e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2864 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072266e-308 + f64.const 1.4916681462400496e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2865 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072286e-308 + f64.const 1.4916681462400503e-154 + f64.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2866 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 92.35130391890645 + f64.const 9.609958580499006 + f64.const 0.4998137056827545 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2867 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 93.3599596388916 + f64.const 9.662295774757238 + f64.const -0.49979978799819946 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2868 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 95.42049628886124 + f64.const 9.76834153215689 + f64.const -0.49997270107269287 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2869 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 95.87916941885449 + f64.const 9.791790919890728 + f64.const 0.4998766779899597 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2870 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 96.84804174884022 + f64.const 9.841140266698785 + f64.const 0.499801903963089 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2871 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 97.43639050883155 + f64.const 9.87098731175517 + f64.const 0.4997696280479431 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2872 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 97.50957979883047 + f64.const 9.874693909120955 + f64.const 0.49999818205833435 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2873 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 97.80496893882612 + f64.const 9.88963947466368 + f64.const -0.4999580681324005 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2874 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 98.2751822888192 + f64.const 9.913383997849534 + f64.const 0.49979931116104126 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2875 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 99.47293564880155 + f64.const 9.973611966023219 + f64.const -0.4999540448188782 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2876 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 100.57047130878539 + f64.const 10.028483001370914 + f64.const -0.49996453523635864 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2877 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 100.60954608878481 + f64.const 10.030431002144665 + f64.const 0.49975672364234924 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2878 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 100.67909109878379 + f64.const 10.033897104255344 + f64.const -0.4997771382331848 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2879 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 101.12268095877725 + f64.const 10.055977374615422 + f64.const 0.49988678097724915 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2880 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 101.3027691287746 + f64.const 10.064927676281366 + f64.const 0.4999105632305145 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2881 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.45932313565507e-307 + f64.const 4.9591563149945874e-154 + f64.const -0.4998999834060669 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2882 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5.610957305180409e-307 + f64.const 7.490632353266584e-154 + f64.const -0.4999343752861023 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2883 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5.8073887977408524e-307 + f64.const 7.62062254526548e-154 + f64.const -0.49989569187164307 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2884 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.026137080471427e-307 + f64.const 8.382205605013174e-154 + f64.const 0.49980640411376953 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2885 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 8.438697769194972e-307 + f64.const 9.186238495268328e-154 + f64.const -0.4999065697193146 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2886 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1607792515836795e-306 + f64.const 1.0773946591586944e-153 + f64.const -0.49997684359550476 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2887 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.2827413827423193e-306 + f64.const 1.1325817333606962e-153 + f64.const -0.4999513030052185 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2888 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.7116604596087457e-306 + f64.const 1.3083044216117078e-153 + f64.const -0.49986395239830017 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2889 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.038173251686994e-306 + f64.const 1.4276460526639628e-153 + f64.const 0.4998403787612915 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2890 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.171572060856931e-306 + f64.const 1.4736254818836879e-153 + f64.const 0.4999290406703949 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2891 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.4681399631804094e-306 + f64.const 1.5710314965589996e-153 + f64.const 0.49989044666290283 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2892 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.5175533964200588e-306 + f64.const 1.5866799918131124e-153 + f64.const -0.4997701048851013 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2893 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.6461505468829625e-306 + f64.const 1.6266992797941982e-153 + f64.const 0.4998672902584076 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2894 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3.8167076367720413e-306 + f64.const 1.9536395872248397e-153 + f64.const 0.49983471632003784 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2895 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.5743220778562766e-306 + f64.const 2.1387664851161936e-153 + f64.const 0.49985939264297485 + get_global $std/math/INEXACT + call $std/math/test_sqrt + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2896 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2905 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 2.084523916244507 + f32.const 0.3200402557849884 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2906 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2907 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2908 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 3.0441842079162598 + f32.const 0.05022354796528816 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2909 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.813625156879425 + f32.const 0.2240506112575531 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2910 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2911 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.7495063543319702 + f32.const 0.05895441770553589 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2912 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.879859209060669 + f32.const -0.4874873757362366 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2913 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2914 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2917 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2918 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2919 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2920 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2921 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2922 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2923 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4 + f32.const 2 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2924 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2.802596928649634e-45 + f32.const 5.293955920339377e-23 + f32.const 0 + i32.const 0 + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2925 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.203895392974451e-45 + f32.const 6.483745598763743e-23 + f32.const 0.37388554215431213 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2926 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.401298464324817e-45 + f32.const 3.743392066509216e-23 + f32.const -0.20303145051002502 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2927 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.401298464324817e-45 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2928 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3402823466385288598117041e14 + f32.const 18446742974197923840 + f32.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2929 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3402823466385288598117041e14 + f32.const nan:0x400000 + f32.const 0 + get_global $std/math/INVALID + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2930 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999998807907104 + f32.const 0.9999999403953552 + f32.const 2.980232594040899e-08 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2931 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999999403953552 + f32.const 0.9999999403953552 + f32.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2932 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.999999761581421 + f32.const 1.4142134189605713 + f32.const -0.4959246516227722 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2933 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.9999998807907104 + f32.const 1.4142135381698608 + f32.const 0.15052194893360138 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2934 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000001192092896 + f32.const 1 + f32.const -0.5 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2935 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.000000238418579 + f32.const 1.0000001192092896 + f32.const 5.960463766996327e-08 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2936 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2.000000238418579 + f32.const 1.4142136573791504 + f32.const 0.08986179530620575 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2937 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 2.000000476837158 + f32.const 1.41421377658844 + f32.const 0.3827550709247589 + get_global $std/math/INEXACT + call $std/math/test_sqrtf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2938 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -0.999999803096032 + f64.const 0.012793331407010555 + get_global $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3003 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 0.9996636978961307 + f64.const 0.1573508232831955 + get_global $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3004 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -0.9999998950434862 + f64.const 0.27985066175460815 + get_global $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3005 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -0.9999957568392429 + f64.const -0.44285574555397034 + get_global $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3006 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 0.9999999821447234 + f64.const 0.4462755024433136 + get_global $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3007 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0.5796835018635275 + f64.const 0.4892043173313141 + get_global $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3008 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0.3855853099901652 + f64.const 0.35993871092796326 + get_global $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3009 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0.5092819248700439 + f64.const -0.39436522126197815 + get_global $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3010 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0.6493374550318555 + f64.const -0.4899396002292633 + get_global $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3011 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0.590715084799841 + f64.const -0.0145387789234519 + get_global $std/math/INEXACT + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3012 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3015 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3016 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3017 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3018 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_tanh + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3019 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -0.9999998211860657 + f32.const -0.3034979999065399 + get_global $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3028 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 0.9996637105941772 + f32.const 0.2154078334569931 + get_global $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3029 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -0.9999998807907104 + f32.const 0.23912210762500763 + get_global $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3030 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -0.999995768070221 + f32.const -0.18844597041606903 + get_global $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3031 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 1 + f32.const 0.1497807800769806 + get_global $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3032 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0.5796834826469421 + f32.const -0.05590476095676422 + get_global $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3033 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0.38558530807495117 + f32.const 0.349787175655365 + get_global $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3034 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0.5092819333076477 + f32.const -0.1528785079717636 + get_global $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3035 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0.6493374705314636 + f32.const 0.4317026138305664 + get_global $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3036 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0.5907150506973267 + f32.const 0.4079873859882355 + get_global $std/math/INEXACT + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3037 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3040 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3041 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3042 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3043 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_tanhf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3044 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.06684839057968 + f64.const -8 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3056 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.345239849338305 + f64.const 4 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3057 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -8.38143342755525 + f64.const -8 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3058 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -6.531673581913484 + f64.const -6 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3059 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9.267056966972586 + f64.const 9 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3060 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.6619858980995045 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3061 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.4066039223853553 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3062 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5617597462207241 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3063 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.7741522965913037 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3064 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.6787637026394024 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3065 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3068 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3069 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3070 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3071 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3072 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3073 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1 + f64.const 0 + i32.const 0 + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3074 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3075 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3076 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.0000152587890625 + f64.const 1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3077 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0000152587890625 + f64.const -1 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3078 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999923706054688 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3079 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.9999923706054688 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3080 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 7.888609052210118e-31 + f64.const 0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3081 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -7.888609052210118e-31 + f64.const -0 + f64.const 0 + get_global $std/math/INEXACT + call $std/math/test_trunc + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3082 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.066848754882812 + f32.const -8 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3091 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 4.345239639282227 + f32.const 4 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3092 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -8.381433486938477 + f32.const -8 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3093 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -6.531673431396484 + f32.const -6 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3094 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 9.267057418823242 + f32.const 9 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3095 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.6619858741760254 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3096 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.40660393238067627 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3097 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5617597699165344 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3098 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.7741522789001465 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3099 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.6787636876106262 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3100 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3103 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3104 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3105 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3106 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3107 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 1 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3108 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -1 + f32.const 0 + i32.const 0 + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3109 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3110 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3111 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.0000152587890625 + f32.const 1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3112 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.0000152587890625 + f32.const -1 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3113 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.9999923706054688 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3114 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.9999923706054688 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3115 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 7.888609052210118e-31 + f32.const 0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3116 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -7.888609052210118e-31 + f32.const -0 + f32.const 0 + get_global $std/math/INEXACT + call $std/math/test_truncf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3117 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + i32.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3121 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + i32.const 1 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3122 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + i32.const 2 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3123 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + i32.const 3 + call $~lib/math/ipow64 + i64.const 0 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3124 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1 + i32.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3126 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1 + i32.const 1 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3127 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1 + i32.const 2 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3128 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1 + i32.const 3 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3129 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 2 + i32.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3131 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 2 + i32.const 1 + call $~lib/math/ipow64 + i64.const 2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3132 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 2 + i32.const 2 + call $~lib/math/ipow64 + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3133 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 2 + i32.const 3 + call $~lib/math/ipow64 + i64.const 8 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3134 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1 + i32.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3136 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1 + i32.const 1 + call $~lib/math/ipow64 + i64.const -1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3137 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1 + i32.const 2 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3138 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1 + i32.const 3 + call $~lib/math/ipow64 + i64.const -1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3139 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -2 + i32.const 0 + call $~lib/math/ipow64 + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3141 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -2 + i32.const 1 + call $~lib/math/ipow64 + i64.const -2 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3142 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -2 + i32.const 2 + call $~lib/math/ipow64 + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3143 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -2 + i32.const 3 + call $~lib/math/ipow64 + i64.const -8 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3144 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 40 + call $~lib/math/ipow64 + i64.const -6289078614652622815 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3146 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 41 + call $~lib/math/ipow64 + i64.const -420491770248316829 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3147 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 42 + call $~lib/math/ipow64 + i64.const -1261475310744950487 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3148 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 43 + call $~lib/math/ipow64 + i64.const -3784425932234851461 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3149 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 63 + call $~lib/math/ipow64 + i64.const -3237885987332494933 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3150 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 64 + call $~lib/math/ipow64 + i64.const 8733086111712066817 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3151 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 3 + i32.const 128 + call $~lib/math/ipow64 + i64.const -9204772141784466943 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3152 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 57055 + i32.const 3 + call $~lib/math/ipow64 + i64.const 339590 + i32.const 3 + call $~lib/math/ipow64 + i64.add + i64.const 39347712995520375 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3154 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 157 ;) (type $v) ) diff --git a/tests/compiler/std/mod.optimized.wat b/tests/compiler/std/mod.optimized.wat index bc2476de..56e3130b 100644 --- a/tests/compiler/std/mod.optimized.wat +++ b/tests/compiler/std/mod.optimized.wat @@ -9,17 +9,17 @@ (type $ffi (func (param f32 f32) (result i32))) (type $fi (func (param f32) (result i32))) (type $v (func)) - (memory $0 1) - (data (i32.const 8) "\n\00\00\00s\00t\00d\00/\00m\00o\00d\00.\00t\00s") - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "math" "mod" (func $std/mod/mod (param f64 f64) (result f64))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 8) "\n\00\00\00s\00t\00d\00/\00m\00o\00d\00.\00t\00s") + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (export "mod" (func $std/mod/mod)) (start $start) - (func $~lib/math/NativeMath.mod (; 2 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 2 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -28,367 +28,256 @@ (local $7 i64) (local $8 i64) (local $9 i64) - (block $folding-inner0 - (set_local $4 - (i64.and - (i64.shr_u - (tee_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $5 - (i64.and - (i64.shr_u - (tee_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $8 - (i64.shr_u - (get_local $2) - (i64.const 63) - ) - ) - (if - (i32.eqz - (tee_local $6 - (i64.eq - (tee_local $7 - (i64.shl - (get_local $3) - (i64.const 1) - ) - ) - (i64.const 0) - ) - ) - ) - (set_local $6 - (i64.eq - (get_local $4) - (i64.const 2047) - ) - ) - ) - (if - (i32.eqz - (get_local $6) - ) - (set_local $6 - (f64.ne - (get_local $1) - (get_local $1) - ) - ) - ) - (if - (get_local $6) - (return - (f64.div - (tee_local $0 - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - (get_local $0) - ) - ) - ) - (if - (i64.le_u - (tee_local $9 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (get_local $7) - ) - (block - (br_if $folding-inner0 - (i64.eq - (get_local $9) - (get_local $7) - ) - ) - (return - (get_local $0) - ) - ) - ) - (set_local $2 - (if (result i64) - (i64.eqz - (get_local $4) - ) - (i64.shl - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (tee_local $4 - (i64.sub - (get_local $4) - (i64.clz - (i64.shl - (get_local $2) - (i64.const 12) - ) - ) - ) - ) - ) - (i64.const 1) - ) - ) - (i64.or - (i64.and - (get_local $2) - (i64.const 4503599627370495) - ) - (i64.const 4503599627370496) - ) - ) - ) - (set_local $3 - (if (result i64) - (i64.eqz - (get_local $5) - ) - (i64.shl - (get_local $3) - (i64.add - (i64.sub - (i64.const 0) - (tee_local $5 - (i64.sub - (get_local $5) - (i64.clz - (i64.shl - (get_local $3) - (i64.const 12) - ) - ) - ) - ) - ) - (i64.const 1) - ) - ) - (i64.or - (i64.and - (get_local $3) - (i64.const 4503599627370495) - ) - (i64.const 4503599627370496) - ) - ) - ) - (loop $continue|0 - (if - (i64.gt_s - (get_local $4) - (get_local $5) - ) - (block - (if - (i64.ge_u - (get_local $2) - (get_local $3) - ) - (block - (br_if $folding-inner0 - (i64.eq - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (set_local $4 - (i64.sub - (get_local $4) - (i64.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (get_local $3) - ) - (block - (br_if $folding-inner0 - (i64.eq - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (tee_local $3 - (i64.clz - (i64.shl - (get_local $2) - (i64.const 11) - ) - ) - ) - ) - ) - (return - (f64.reinterpret/i64 - (i64.or - (tee_local $2 - (if (result i64) - (i64.gt_s - (tee_local $4 - (i64.sub - (get_local $4) - (get_local $3) - ) - ) - (i64.const 0) - ) - (i64.or - (i64.sub - (get_local $2) - (i64.const 4503599627370496) - ) - (i64.shl - (get_local $4) - (i64.const 52) - ) - ) - (i64.shr_u - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (get_local $4) - ) - (i64.const 1) - ) - ) - ) - ) - (i64.shl - (get_local $8) - (i64.const 63) - ) - ) - ) - ) - ) - (f64.mul - (f64.const 0) - (get_local $0) - ) + block $folding-inner0 + get_local $0 + i64.reinterpret/f64 + tee_local $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $4 + get_local $1 + i64.reinterpret/f64 + tee_local $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $5 + get_local $2 + i64.const 63 + i64.shr_u + set_local $8 + get_local $3 + i64.const 1 + i64.shl + tee_local $7 + i64.const 0 + i64.eq + tee_local $6 + i32.eqz + if + get_local $4 + i64.const 2047 + i64.eq + set_local $6 + end + get_local $6 + i32.eqz + if + get_local $1 + get_local $1 + f64.ne + set_local $6 + end + get_local $6 + if + get_local $0 + get_local $1 + f64.mul + tee_local $0 + get_local $0 + f64.div + return + end + get_local $2 + i64.const 1 + i64.shl + tee_local $9 + get_local $7 + i64.le_u + if + get_local $9 + get_local $7 + i64.eq + br_if $folding-inner0 + get_local $0 + return + end + get_local $4 + i64.eqz + if (result i64) + get_local $2 + i64.const 0 + get_local $4 + get_local $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + tee_local $4 + i64.sub + i64.const 1 + i64.add + i64.shl + else + get_local $2 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + set_local $2 + get_local $5 + i64.eqz + if (result i64) + get_local $3 + i64.const 0 + get_local $5 + get_local $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + tee_local $5 + i64.sub + i64.const 1 + i64.add + i64.shl + else + get_local $3 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + set_local $3 + loop $continue|0 + get_local $4 + get_local $5 + i64.gt_s + if + get_local $2 + get_local $3 + i64.ge_u + if + get_local $2 + get_local $3 + i64.eq + br_if $folding-inner0 + get_local $2 + get_local $3 + i64.sub + set_local $2 + end + get_local $2 + i64.const 1 + i64.shl + set_local $2 + get_local $4 + i64.const 1 + i64.sub + set_local $4 + br $continue|0 + end + end + get_local $2 + get_local $3 + i64.ge_u + if + get_local $2 + get_local $3 + i64.eq + br_if $folding-inner0 + get_local $2 + get_local $3 + i64.sub + set_local $2 + end + get_local $2 + get_local $2 + i64.const 11 + i64.shl + i64.clz + tee_local $3 + i64.shl + set_local $2 + get_local $4 + get_local $3 + i64.sub + tee_local $4 + i64.const 0 + i64.gt_s + if (result i64) + get_local $2 + i64.const 4503599627370496 + i64.sub + get_local $4 + i64.const 52 + i64.shl + i64.or + else + get_local $2 + i64.const 0 + get_local $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + end + tee_local $2 + get_local $8 + i64.const 63 + i64.shl + i64.or + f64.reinterpret/i64 + return + end + f64.const 0 + get_local $0 + f64.mul ) - (func $~lib/builtins/isNaN (; 3 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (f64.ne - (get_local $0) - (get_local $0) - ) + (func $~lib/builtins/isNaN (; 3 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + get_local $0 + f64.ne ) - (func $std/mod/check (; 4 ;) (; has Stack IR ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) - (if - (call $~lib/builtins/isNaN - (get_local $1) - ) - (return - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (if - (f64.eq - (get_local $1) - (f64.const 0) - ) - (return - (f64.eq - (f64.div - (f64.const 1) - (get_local $1) - ) - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (f64.eq - (get_local $0) - (get_local $1) - ) + (func $std/mod/check (; 4 ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) + get_local $1 + call $~lib/builtins/isNaN + if + get_local $0 + call $~lib/builtins/isNaN + return + end + get_local $1 + f64.const 0 + f64.eq + if + f64.const 1 + get_local $1 + f64.div + f64.const 1 + get_local $0 + f64.div + f64.eq + return + end + get_local $0 + get_local $1 + f64.eq ) - (func $std/mod/test_fmod (; 5 ;) (; has Stack IR ;) (type $FFFi) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/mod/test_fmod (; 5 ;) (type $FFFi) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 i32) - (if - (tee_local $3 - (call $std/mod/check - (call $~lib/math/NativeMath.mod - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) - ) - (set_local $3 - (call $std/mod/check - (tee_local $0 - (call $std/mod/mod - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - ) - ) - ) - (get_local $3) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.mod + get_local $2 + call $std/mod/check + tee_local $3 + if + get_local $0 + get_local $1 + call $std/mod/mod + tee_local $0 + get_local $2 + call $std/mod/check + set_local $3 + end + get_local $3 ) - (func $~lib/math/NativeMathf.mod (; 6 ;) (; has Stack IR ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 6 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -396,2768 +285,1992 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (block $folding-inner0 - (set_local $3 - (i32.and - (i32.shr_u - (tee_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $6 - (i32.and - (i32.shr_u - (tee_local $4 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $8 - (i32.and - (get_local $2) - (i32.const -2147483648) - ) - ) - (if - (i32.eqz - (tee_local $5 - (i32.eqz - (tee_local $7 - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $5 - (i32.eq - (get_local $3) - (i32.const 255) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (set_local $5 - (f32.ne - (get_local $1) - (get_local $1) - ) - ) - ) - (if - (i32.and - (get_local $5) - (i32.const 1) - ) - (return - (f32.div - (tee_local $0 - (f32.mul - (get_local $0) - (get_local $1) - ) - ) - (get_local $0) - ) - ) - ) - (if - (i32.le_u - (tee_local $5 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (get_local $7) - ) - (block - (br_if $folding-inner0 - (i32.eq - (get_local $5) - (get_local $7) - ) - ) - (return - (get_local $0) - ) - ) - ) - (set_local $2 - (if (result i32) - (get_local $3) - (i32.or - (i32.and - (get_local $2) - (i32.const 8388607) - ) - (i32.const 8388608) - ) - (i32.shl - (get_local $2) - (i32.sub - (i32.const 1) - (tee_local $3 - (i32.sub - (get_local $3) - (i32.clz - (i32.shl - (get_local $2) - (i32.const 9) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $4 - (if (result i32) - (get_local $6) - (i32.or - (i32.and - (get_local $4) - (i32.const 8388607) - ) - (i32.const 8388608) - ) - (i32.shl - (get_local $4) - (i32.sub - (i32.const 1) - (tee_local $6 - (i32.sub - (get_local $6) - (i32.clz - (i32.shl - (get_local $4) - (i32.const 9) - ) - ) - ) - ) - ) - ) - ) - ) - (loop $continue|0 - (if - (i32.gt_s - (get_local $3) - (get_local $6) - ) - (block - (if - (i32.ge_u - (get_local $2) - (get_local $4) - ) - (block - (br_if $folding-inner0 - (i32.eq - (get_local $2) - (get_local $4) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $4) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (get_local $4) - ) - (block - (br_if $folding-inner0 - (i32.eq - (get_local $2) - (get_local $4) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $4) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (tee_local $5 - (i32.clz - (i32.shl - (get_local $2) - (i32.const 8) - ) - ) - ) - ) - ) - (return - (f32.reinterpret/i32 - (i32.or - (tee_local $2 - (if (result i32) - (i32.gt_s - (tee_local $3 - (i32.sub - (get_local $3) - (get_local $5) - ) - ) - (i32.const 0) - ) - (i32.or - (i32.sub - (get_local $2) - (i32.const 8388608) - ) - (i32.shl - (get_local $3) - (i32.const 23) - ) - ) - (i32.shr_u - (get_local $2) - (i32.sub - (i32.const 1) - (get_local $3) - ) - ) - ) - ) - (get_local $8) - ) - ) - ) - ) - (f32.mul - (f32.const 0) - (get_local $0) - ) + block $folding-inner0 + get_local $0 + i32.reinterpret/f32 + tee_local $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $3 + get_local $1 + i32.reinterpret/f32 + tee_local $4 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $6 + get_local $2 + i32.const -2147483648 + i32.and + set_local $8 + get_local $4 + i32.const 1 + i32.shl + tee_local $7 + i32.eqz + tee_local $5 + i32.eqz + if + get_local $3 + i32.const 255 + i32.eq + set_local $5 + end + get_local $5 + i32.eqz + if + get_local $1 + get_local $1 + f32.ne + set_local $5 + end + get_local $5 + i32.const 1 + i32.and + if + get_local $0 + get_local $1 + f32.mul + tee_local $0 + get_local $0 + f32.div + return + end + get_local $2 + i32.const 1 + i32.shl + tee_local $5 + get_local $7 + i32.le_u + if + get_local $5 + get_local $7 + i32.eq + br_if $folding-inner0 + get_local $0 + return + end + get_local $3 + if (result i32) + get_local $2 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + get_local $2 + i32.const 1 + get_local $3 + get_local $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + tee_local $3 + i32.sub + i32.shl + end + set_local $2 + get_local $6 + if (result i32) + get_local $4 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + get_local $4 + i32.const 1 + get_local $6 + get_local $4 + i32.const 9 + i32.shl + i32.clz + i32.sub + tee_local $6 + i32.sub + i32.shl + end + set_local $4 + loop $continue|0 + get_local $3 + get_local $6 + i32.gt_s + if + get_local $2 + get_local $4 + i32.ge_u + if + get_local $2 + get_local $4 + i32.eq + br_if $folding-inner0 + get_local $2 + get_local $4 + i32.sub + set_local $2 + end + get_local $2 + i32.const 1 + i32.shl + set_local $2 + get_local $3 + i32.const 1 + i32.sub + set_local $3 + br $continue|0 + end + end + get_local $2 + get_local $4 + i32.ge_u + if + get_local $2 + get_local $4 + i32.eq + br_if $folding-inner0 + get_local $2 + get_local $4 + i32.sub + set_local $2 + end + get_local $2 + get_local $2 + i32.const 8 + i32.shl + i32.clz + tee_local $5 + i32.shl + set_local $2 + get_local $3 + get_local $5 + i32.sub + tee_local $3 + i32.const 0 + i32.gt_s + if (result i32) + get_local $2 + i32.const 8388608 + i32.sub + get_local $3 + i32.const 23 + i32.shl + i32.or + else + get_local $2 + i32.const 1 + get_local $3 + i32.sub + i32.shr_u + end + tee_local $2 + get_local $8 + i32.or + f32.reinterpret/i32 + return + end + f32.const 0 + get_local $0 + f32.mul ) - (func $~lib/builtins/isNaN (; 7 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32) - (f32.ne - (get_local $0) - (get_local $0) - ) + (func $~lib/builtins/isNaN (; 7 ;) (type $fi) (param $0 f32) (result i32) + get_local $0 + get_local $0 + f32.ne ) - (func $std/mod/check (; 8 ;) (; has Stack IR ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32) - (if - (call $~lib/builtins/isNaN - (get_local $1) - ) - (return - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (if - (f32.eq - (get_local $1) - (f32.const 0) - ) - (return - (f32.eq - (f32.div - (f32.const 1) - (get_local $1) - ) - (f32.div - (f32.const 1) - (get_local $0) - ) - ) - ) - ) - (f32.eq - (get_local $0) - (get_local $1) - ) + (func $std/mod/check (; 8 ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32) + get_local $1 + call $~lib/builtins/isNaN + if + get_local $0 + call $~lib/builtins/isNaN + return + end + get_local $1 + f32.const 0 + f32.eq + if + f32.const 1 + get_local $1 + f32.div + f32.const 1 + get_local $0 + f32.div + f32.eq + return + end + get_local $0 + get_local $1 + f32.eq ) - (func $std/mod/test_fmodf (; 9 ;) (; has Stack IR ;) (type $fffi) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (call $std/mod/check - (call $~lib/math/NativeMathf.mod - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) + (func $std/mod/test_fmodf (; 9 ;) (type $fffi) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.mod + get_local $2 + call $std/mod/check ) - (func $start (; 10 ;) (; has Stack IR ;) (type $v) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3) - (f64.const 2) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3) - (f64.const -2) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3) - (f64.const 2) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3) - (f64.const -2) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3.5) - (f64.const 2) - (f64.const 1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3.5) - (f64.const -2) - (f64.const 1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3.5) - (f64.const 2) - (f64.const -1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3.5) - (f64.const -2) - (f64.const -1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3) - (f64.const 2.5) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3) - (f64.const -2.5) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 29) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3) - (f64.const 2.5) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3) - (f64.const -2.5) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0.5) - (f64.const 1) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 32) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0.5) - (f64.const -1) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 33) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0.5) - (f64.const 1) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 34) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0.5) - (f64.const -1) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 35) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1.5) - (f64.const 1) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 36) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1.5) - (f64.const -1) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1.5) - (f64.const 1) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 38) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1.5) - (f64.const -1) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1.25) - (f64.const 1) - (f64.const 0.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1.25) - (f64.const -1) - (f64.const 0.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 41) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1.25) - (f64.const 1) - (f64.const -0.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 42) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1.25) - (f64.const -1) - (f64.const -0.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 43) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const 1.25) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 44) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const -1.25) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 45) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const 1.25) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 46) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const -1.25) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 47) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -13) - (f64.const 64) - (f64.const -13) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 48) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 51) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 52) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 53) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 54) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const 1) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 55) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const 1) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 56) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const -1) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 57) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const -1) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 58) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 59) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 60) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 61) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 62) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 63) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 64) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 65) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 66) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 67) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 68) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 69) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 70) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 71) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const inf) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 72) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const inf) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 73) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const -inf) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 74) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const -inf) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 75) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const inf) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 76) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const inf) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 77) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const -inf) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 78) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const -inf) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 79) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 80) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 81) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -inf) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 82) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -inf) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 83) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const 1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 84) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const -1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 85) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -inf) - (f64.const 1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 86) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -inf) - (f64.const -1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 87) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const inf) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 88) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -inf) - (f64.const inf) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 89) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const -inf) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 90) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -inf) - (f64.const -inf) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 91) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 92) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 93) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const inf) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 94) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const -inf) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 95) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3) - (f32.const 2) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 104) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3) - (f32.const -2) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 105) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3) - (f32.const 2) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3) - (f32.const -2) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3.5) - (f32.const 2) - (f32.const 1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 108) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3.5) - (f32.const -2) - (f32.const 1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3.5) - (f32.const 2) - (f32.const -1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3.5) - (f32.const -2) - (f32.const -1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3) - (f32.const 2.5) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 112) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3) - (f32.const -2.5) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 113) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3) - (f32.const 2.5) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3) - (f32.const -2.5) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0.5) - (f32.const 1) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0.5) - (f32.const -1) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0.5) - (f32.const 1) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 118) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0.5) - (f32.const -1) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 119) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1.5) - (f32.const 1) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 120) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1.5) - (f32.const -1) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 121) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1.5) - (f32.const 1) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1.5) - (f32.const -1) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 123) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 134) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 135) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 136) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 137) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 138) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 139) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 140) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 141) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 142) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0) - (f32.const inf) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 143) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0) - (f32.const inf) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 144) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0) - (f32.const -inf) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 145) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0) - (f32.const -inf) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 146) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1) - (f32.const inf) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 147) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1) - (f32.const inf) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 148) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1) - (f32.const -inf) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 149) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1) - (f32.const -inf) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 150) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 151) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 152) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -inf) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 153) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -inf) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 154) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const 1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const -1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 156) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -inf) - (f32.const 1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 157) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -inf) - (f32.const -1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 158) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const inf) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -inf) - (f32.const inf) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 160) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const -inf) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 161) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -inf) - (f32.const -inf) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 162) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 163) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 164) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const inf) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const -inf) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 166) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 10 ;) (type $v) + f64.const 3 + f64.const 2 + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3 + f64.const -2 + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const 2 + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const -2 + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3.5 + f64.const 2 + f64.const 1.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3.5 + f64.const -2 + f64.const 1.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3.5 + f64.const 2 + f64.const -1.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3.5 + f64.const -2 + f64.const -1.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3 + f64.const 2.5 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3 + f64.const -2.5 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 29 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const 2.5 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const -2.5 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 32 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 33 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 34 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 35 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 1 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 36 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const -1 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const 1 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 38 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.25 + f64.const 1 + f64.const 0.25 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.25 + f64.const -1 + f64.const 0.25 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 41 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.25 + f64.const 1 + f64.const -0.25 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 42 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.25 + f64.const -1 + f64.const -0.25 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 43 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1.25 + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 44 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -1.25 + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 45 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1.25 + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 46 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1.25 + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 47 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -13 + f64.const 64 + f64.const -13 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 48 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 51 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 52 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 53 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 54 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 55 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 56 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 57 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 58 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 59 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 60 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 61 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 62 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 63 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 64 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 65 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 66 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 67 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 68 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 69 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 70 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 71 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 72 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 73 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -inf + f64.const 0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 74 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -inf + f64.const -0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 75 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 76 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 77 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -inf + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 78 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -inf + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 79 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 80 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 81 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 82 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 83 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 84 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 85 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const 1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 86 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 87 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 88 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const inf + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 89 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -inf + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 90 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const -inf + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 91 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 92 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 93 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const inf + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 94 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -inf + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 95 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3 + f32.const 2 + f32.const 1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 104 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3 + f32.const -2 + f32.const 1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 105 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const 2 + f32.const -1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 106 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const -2 + f32.const -1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 107 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3.5 + f32.const 2 + f32.const 1.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 108 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3.5 + f32.const -2 + f32.const 1.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 109 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3.5 + f32.const 2 + f32.const -1.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 110 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3.5 + f32.const -2 + f32.const -1.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 111 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3 + f32.const 2.5 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 112 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3 + f32.const -2.5 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 113 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const 2.5 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 114 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const -2.5 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 115 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 116 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 117 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 118 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 119 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const 1 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 120 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const -1 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 121 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const 1 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 122 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const -1 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 123 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 127 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 129 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 130 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 131 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 132 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 133 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 134 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 135 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 136 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 137 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 138 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 139 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 140 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 141 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 142 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 144 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -inf + f32.const 0 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 145 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -inf + f32.const -0 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 146 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 147 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 148 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -inf + f32.const 1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 149 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -inf + f32.const -1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 150 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 151 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 152 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 153 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 154 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 156 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const 1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 157 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 158 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const inf + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 160 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -inf + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 161 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const -inf + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 162 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 163 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -inf + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 164 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const inf + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -inf + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 166 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 11 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 11 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/mod.untouched.wat b/tests/compiler/std/mod.untouched.wat index 0d6276e5..2471617f 100644 --- a/tests/compiler/std/mod.untouched.wat +++ b/tests/compiler/std/mod.untouched.wat @@ -9,12 +9,12 @@ (type $ffi (func (param f32 f32) (result i32))) (type $fi (func (param f32) (result i32))) (type $v (func)) - (memory $0 1) - (data (i32.const 8) "\n\00\00\00s\00t\00d\00/\00m\00o\00d\00.\00t\00s\00") - (table 1 anyfunc) - (elem (i32.const 0) $null) (import "math" "mod" (func $std/mod/mod (param f64 f64) (result f64))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 8) "\n\00\00\00s\00t\00d\00/\00m\00o\00d\00.\00t\00s\00") + (table $0 1 anyfunc) + (elem (i32.const 0) $null) (global $std/mod/js i32 (i32.const 1)) (global $NaN f64 (f64.const nan:0x8000000000000)) (global $Infinity f64 (f64.const inf)) @@ -33,437 +33,306 @@ (local $8 i32) (local $9 i64) (local $10 i64) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $4 - (i64.and - (i64.shr_u - (get_local $2) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $5 - (i64.and - (i64.shr_u - (get_local $3) - (i64.const 52) - ) - (i64.const 2047) - ) - ) - (set_local $6 - (i64.shr_u - (get_local $2) - (i64.const 63) - ) - ) - (set_local $7 - (i64.shl - (get_local $3) - (i64.const 1) - ) - ) - (if - (i32.and - (if (result i32) - (tee_local $8 - (if (result i32) - (tee_local $8 - (i64.eq - (get_local $7) - (i64.const 0) - ) - ) - (get_local $8) - (i64.eq - (get_local $4) - (i64.const 2047) - ) - ) - ) - (get_local $8) - (block $~lib/builtins/isNaN|inlined.1 (result i32) - (f64.ne - (get_local $1) - (get_local $1) - ) - ) - ) - (i32.const 1) - ) - (return - (f64.div - (f64.mul - (get_local $0) - (get_local $1) - ) - (f64.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (set_local $9 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (if - (i64.le_u - (get_local $9) - (get_local $7) - ) - (block - (if - (i64.eq - (get_local $9) - (get_local $7) - ) - (return - (f64.mul - (f64.const 0) - (get_local $0) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i64.eqz - (get_local $4) - ) - (block - (set_local $4 - (i64.sub - (get_local $4) - (i64.clz - (i64.shl - (get_local $2) - (i64.const 12) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (get_local $4) - ) - (i64.const 1) - ) - ) - ) - ) - (block - (set_local $2 - (i64.and - (get_local $2) - (i64.shr_u - (i64.const -1) - (i64.const 12) - ) - ) - ) - (set_local $2 - (i64.or - (get_local $2) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - ) - ) - (if - (i64.eqz - (get_local $5) - ) - (block - (set_local $5 - (i64.sub - (get_local $5) - (i64.clz - (i64.shl - (get_local $3) - (i64.const 12) - ) - ) - ) - ) - (set_local $3 - (i64.shl - (get_local $3) - (i64.add - (i64.sub - (i64.const 0) - (get_local $5) - ) - (i64.const 1) - ) - ) - ) - ) - (block - (set_local $3 - (i64.and - (get_local $3) - (i64.shr_u - (i64.const -1) - (i64.const 12) - ) - ) - ) - (set_local $3 - (i64.or - (get_local $3) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i64.gt_s - (get_local $4) - (get_local $5) - ) - (block - (block - (if - (i64.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i64.eq - (get_local $2) - (get_local $3) - ) - (return - (f64.mul - (f64.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (i64.const 1) - ) - ) - (set_local $4 - (i64.sub - (get_local $4) - (i64.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i64.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i64.eq - (get_local $2) - (get_local $3) - ) - (return - (f64.mul - (f64.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i64.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $10 - (i64.clz - (i64.shl - (get_local $2) - (i64.const 11) - ) - ) - ) - (set_local $4 - (i64.sub - (get_local $4) - (get_local $10) - ) - ) - (set_local $2 - (i64.shl - (get_local $2) - (get_local $10) - ) - ) - (if - (i64.gt_s - (get_local $4) - (i64.const 0) - ) - (block - (set_local $2 - (i64.sub - (get_local $2) - (i64.shl - (i64.const 1) - (i64.const 52) - ) - ) - ) - (set_local $2 - (i64.or - (get_local $2) - (i64.shl - (get_local $4) - (i64.const 52) - ) - ) - ) - ) - (set_local $2 - (i64.shr_u - (get_local $2) - (i64.add - (i64.sub - (i64.const 0) - (get_local $4) - ) - (i64.const 1) - ) - ) - ) - ) - (set_local $2 - (i64.or - (get_local $2) - (i64.shl - (get_local $6) - (i64.const 63) - ) - ) - ) - (f64.reinterpret/i64 - (get_local $2) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $4 + get_local $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + set_local $5 + get_local $2 + i64.const 63 + i64.shr_u + set_local $6 + get_local $3 + i64.const 1 + i64.shl + set_local $7 + get_local $7 + i64.const 0 + i64.eq + tee_local $8 + if (result i32) + get_local $8 + else + get_local $4 + i64.const 2047 + i64.eq + end + tee_local $8 + if (result i32) + get_local $8 + else + get_local $1 + get_local $1 + f64.ne + end + i32.const 1 + i32.and + if + get_local $0 + get_local $1 + f64.mul + get_local $0 + get_local $1 + f64.mul + f64.div + return + end + get_local $2 + i64.const 1 + i64.shl + set_local $9 + get_local $9 + get_local $7 + i64.le_u + if + get_local $9 + get_local $7 + i64.eq + if + f64.const 0 + get_local $0 + f64.mul + return + end + get_local $0 + return + end + get_local $4 + i64.eqz + if + get_local $4 + get_local $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + set_local $4 + get_local $2 + i64.const 0 + get_local $4 + i64.sub + i64.const 1 + i64.add + i64.shl + set_local $2 + else + get_local $2 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + set_local $2 + get_local $2 + i64.const 1 + i64.const 52 + i64.shl + i64.or + set_local $2 + end + get_local $5 + i64.eqz + if + get_local $5 + get_local $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + set_local $5 + get_local $3 + i64.const 0 + get_local $5 + i64.sub + i64.const 1 + i64.add + i64.shl + set_local $3 + else + get_local $3 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + set_local $3 + get_local $3 + i64.const 1 + i64.const 52 + i64.shl + i64.or + set_local $3 + end + block $break|0 + loop $continue|0 + get_local $4 + get_local $5 + i64.gt_s + if + block + get_local $2 + get_local $3 + i64.ge_u + if + get_local $2 + get_local $3 + i64.eq + if + f64.const 0 + get_local $0 + f64.mul + return + end + get_local $2 + get_local $3 + i64.sub + set_local $2 + end + get_local $2 + i64.const 1 + i64.shl + set_local $2 + get_local $4 + i64.const 1 + i64.sub + set_local $4 + end + br $continue|0 + end + end + end + get_local $2 + get_local $3 + i64.ge_u + if + get_local $2 + get_local $3 + i64.eq + if + f64.const 0 + get_local $0 + f64.mul + return + end + get_local $2 + get_local $3 + i64.sub + set_local $2 + end + get_local $2 + i64.const 11 + i64.shl + i64.clz + set_local $10 + get_local $4 + get_local $10 + i64.sub + set_local $4 + get_local $2 + get_local $10 + i64.shl + set_local $2 + get_local $4 + i64.const 0 + i64.gt_s + if + get_local $2 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + set_local $2 + get_local $2 + get_local $4 + i64.const 52 + i64.shl + i64.or + set_local $2 + else + get_local $2 + i64.const 0 + get_local $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + set_local $2 + end + get_local $2 + get_local $6 + i64.const 63 + i64.shl + i64.or + set_local $2 + get_local $2 + f64.reinterpret/i64 ) (func $~lib/builtins/isNaN (; 3 ;) (type $Fi) (param $0 f64) (result i32) - (f64.ne - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + f64.ne ) (func $std/mod/check (; 4 ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) - (if - (call $~lib/builtins/isNaN - (get_local $1) - ) - (return - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (if - (f64.eq - (get_local $1) - (f64.const 0) - ) - (return - (f64.eq - (f64.div - (f64.convert_u/i32 - (i32.const 1) - ) - (get_local $1) - ) - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (f64.eq - (get_local $0) - (get_local $1) - ) + get_local $1 + call $~lib/builtins/isNaN + if + get_local $0 + call $~lib/builtins/isNaN + return + end + get_local $1 + f64.const 0 + f64.eq + if + i32.const 1 + f64.convert_u/i32 + get_local $1 + f64.div + f64.const 1 + get_local $0 + f64.div + f64.eq + return + end + get_local $0 + get_local $1 + f64.eq ) (func $std/mod/test_fmod (; 5 ;) (type $FFFi) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 i32) - (if (result i32) - (tee_local $3 - (call $std/mod/check - (call $~lib/math/NativeMath.mod - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) - ) - (if (result i32) - (tee_local $3 - (i32.eqz - (get_global $std/mod/js) - ) - ) - (get_local $3) - (call $std/mod/check - (call $std/mod/mod - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) - ) - (get_local $3) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMath.mod + get_local $2 + call $std/mod/check + tee_local $3 + if (result i32) + get_global $std/mod/js + i32.eqz + tee_local $3 + if (result i32) + get_local $3 + else + get_local $0 + get_local $1 + call $std/mod/mod + get_local $2 + call $std/mod/check + end + else + get_local $3 + end ) (func $~lib/math/NativeMathf.mod (; 6 ;) (type $fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) @@ -475,2901 +344,2071 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (set_local $2 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - (set_local $3 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - (set_local $4 - (i32.and - (i32.shr_u - (get_local $2) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $5 - (i32.and - (i32.shr_u - (get_local $3) - (i32.const 23) - ) - (i32.const 255) - ) - ) - (set_local $6 - (i32.and - (get_local $2) - (i32.const -2147483648) - ) - ) - (set_local $7 - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (if - (i32.and - (if (result i32) - (tee_local $8 - (if (result i32) - (tee_local $8 - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - (get_local $8) - (i32.eq - (get_local $4) - (i32.const 255) - ) - ) - ) - (get_local $8) - (block $~lib/builtins/isNaN|inlined.1 (result i32) - (f32.ne - (get_local $1) - (get_local $1) - ) - ) - ) - (i32.const 1) - ) - (return - (f32.div - (f32.mul - (get_local $0) - (get_local $1) - ) - (f32.mul - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (set_local $9 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (if - (i32.le_u - (get_local $9) - (get_local $7) - ) - (block - (if - (i32.eq - (get_local $9) - (get_local $7) - ) - (return - (f32.mul - (f32.const 0) - (get_local $0) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (block - (set_local $4 - (i32.sub - (get_local $4) - (i32.clz - (i32.shl - (get_local $2) - (i32.const 9) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (i32.add - (i32.sub - (i32.const 0) - (get_local $4) - ) - (i32.const 1) - ) - ) - ) - ) - (block - (set_local $2 - (i32.and - (get_local $2) - (i32.shr_u - (i32.const -1) - (i32.const 9) - ) - ) - ) - (set_local $2 - (i32.or - (get_local $2) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (block - (set_local $5 - (i32.sub - (get_local $5) - (i32.clz - (i32.shl - (get_local $3) - (i32.const 9) - ) - ) - ) - ) - (set_local $3 - (i32.shl - (get_local $3) - (i32.add - (i32.sub - (i32.const 0) - (get_local $5) - ) - (i32.const 1) - ) - ) - ) - ) - (block - (set_local $3 - (i32.and - (get_local $3) - (i32.shr_u - (i32.const -1) - (i32.const 9) - ) - ) - ) - (set_local $3 - (i32.or - (get_local $3) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.gt_s - (get_local $4) - (get_local $5) - ) - (block - (block - (if - (i32.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i32.eq - (get_local $2) - (get_local $3) - ) - (return - (f32.mul - (f32.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $2) - (get_local $3) - ) - (block - (if - (i32.eq - (get_local $2) - (get_local $3) - ) - (return - (f32.mul - (f32.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (set_local $10 - (i32.clz - (i32.shl - (get_local $2) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (get_local $10) - ) - ) - (set_local $2 - (i32.shl - (get_local $2) - (get_local $10) - ) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 0) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.shl - (i32.const 1) - (i32.const 23) - ) - ) - ) - (set_local $2 - (i32.or - (get_local $2) - (i32.shl - (get_local $4) - (i32.const 23) - ) - ) - ) - ) - (set_local $2 - (i32.shr_u - (get_local $2) - (i32.add - (i32.sub - (i32.const 0) - (get_local $4) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $2 - (i32.or - (get_local $2) - (get_local $6) - ) - ) - (f32.reinterpret/i32 - (get_local $2) - ) + get_local $0 + i32.reinterpret/f32 + set_local $2 + get_local $1 + i32.reinterpret/f32 + set_local $3 + get_local $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $4 + get_local $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + set_local $5 + get_local $2 + i32.const -2147483648 + i32.and + set_local $6 + get_local $3 + i32.const 1 + i32.shl + set_local $7 + get_local $7 + i32.const 0 + i32.eq + tee_local $8 + if (result i32) + get_local $8 + else + get_local $4 + i32.const 255 + i32.eq + end + tee_local $8 + if (result i32) + get_local $8 + else + get_local $1 + get_local $1 + f32.ne + end + i32.const 1 + i32.and + if + get_local $0 + get_local $1 + f32.mul + get_local $0 + get_local $1 + f32.mul + f32.div + return + end + get_local $2 + i32.const 1 + i32.shl + set_local $9 + get_local $9 + get_local $7 + i32.le_u + if + get_local $9 + get_local $7 + i32.eq + if + f32.const 0 + get_local $0 + f32.mul + return + end + get_local $0 + return + end + get_local $4 + i32.eqz + if + get_local $4 + get_local $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + set_local $4 + get_local $2 + i32.const 0 + get_local $4 + i32.sub + i32.const 1 + i32.add + i32.shl + set_local $2 + else + get_local $2 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + set_local $2 + get_local $2 + i32.const 1 + i32.const 23 + i32.shl + i32.or + set_local $2 + end + get_local $5 + i32.eqz + if + get_local $5 + get_local $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + set_local $5 + get_local $3 + i32.const 0 + get_local $5 + i32.sub + i32.const 1 + i32.add + i32.shl + set_local $3 + else + get_local $3 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + set_local $3 + get_local $3 + i32.const 1 + i32.const 23 + i32.shl + i32.or + set_local $3 + end + block $break|0 + loop $continue|0 + get_local $4 + get_local $5 + i32.gt_s + if + block + get_local $2 + get_local $3 + i32.ge_u + if + get_local $2 + get_local $3 + i32.eq + if + f32.const 0 + get_local $0 + f32.mul + return + end + get_local $2 + get_local $3 + i32.sub + set_local $2 + end + get_local $2 + i32.const 1 + i32.shl + set_local $2 + get_local $4 + i32.const 1 + i32.sub + set_local $4 + end + br $continue|0 + end + end + end + get_local $2 + get_local $3 + i32.ge_u + if + get_local $2 + get_local $3 + i32.eq + if + f32.const 0 + get_local $0 + f32.mul + return + end + get_local $2 + get_local $3 + i32.sub + set_local $2 + end + get_local $2 + i32.const 8 + i32.shl + i32.clz + set_local $10 + get_local $4 + get_local $10 + i32.sub + set_local $4 + get_local $2 + get_local $10 + i32.shl + set_local $2 + get_local $4 + i32.const 0 + i32.gt_s + if + get_local $2 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + set_local $2 + get_local $2 + get_local $4 + i32.const 23 + i32.shl + i32.or + set_local $2 + else + get_local $2 + i32.const 0 + get_local $4 + i32.sub + i32.const 1 + i32.add + i32.shr_u + set_local $2 + end + get_local $2 + get_local $6 + i32.or + set_local $2 + get_local $2 + f32.reinterpret/i32 ) (func $~lib/builtins/isNaN (; 7 ;) (type $fi) (param $0 f32) (result i32) - (f32.ne - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + f32.ne ) (func $std/mod/check (; 8 ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32) - (if - (call $~lib/builtins/isNaN - (get_local $1) - ) - (return - (call $~lib/builtins/isNaN - (get_local $0) - ) - ) - ) - (if - (f32.eq - (get_local $1) - (f32.const 0) - ) - (return - (f32.eq - (f32.div - (f32.convert_u/i32 - (i32.const 1) - ) - (get_local $1) - ) - (f32.div - (f32.const 1) - (get_local $0) - ) - ) - ) - ) - (f32.eq - (get_local $0) - (get_local $1) - ) + get_local $1 + call $~lib/builtins/isNaN + if + get_local $0 + call $~lib/builtins/isNaN + return + end + get_local $1 + f32.const 0 + f32.eq + if + i32.const 1 + f32.convert_u/i32 + get_local $1 + f32.div + f32.const 1 + get_local $0 + f32.div + f32.eq + return + end + get_local $0 + get_local $1 + f32.eq ) (func $std/mod/test_fmodf (; 9 ;) (type $fffi) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (call $std/mod/check - (call $~lib/math/NativeMathf.mod - (get_local $0) - (get_local $1) - ) - (get_local $2) - ) + get_local $0 + get_local $1 + call $~lib/math/NativeMathf.mod + get_local $2 + call $std/mod/check ) (func $start (; 10 ;) (type $v) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3) - (f64.const 2) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3) - (f64.const -2) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3) - (f64.const 2) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3) - (f64.const -2) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3.5) - (f64.const 2) - (f64.const 1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3.5) - (f64.const -2) - (f64.const 1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3.5) - (f64.const 2) - (f64.const -1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3.5) - (f64.const -2) - (f64.const -1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3) - (f64.const 2.5) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 3) - (f64.const -2.5) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 29) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3) - (f64.const 2.5) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -3) - (f64.const -2.5) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0.5) - (f64.const 1) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 32) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0.5) - (f64.const -1) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 33) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0.5) - (f64.const 1) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 34) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0.5) - (f64.const -1) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 35) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1.5) - (f64.const 1) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 36) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1.5) - (f64.const -1) - (f64.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1.5) - (f64.const 1) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 38) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1.5) - (f64.const -1) - (f64.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1.25) - (f64.const 1) - (f64.const 0.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1.25) - (f64.const -1) - (f64.const 0.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 41) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1.25) - (f64.const 1) - (f64.const -0.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 42) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1.25) - (f64.const -1) - (f64.const -0.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 43) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const 1.25) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 44) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const -1.25) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 45) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const 1.25) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 46) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const -1.25) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 47) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -13) - (f64.const 64) - (f64.const -13) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 48) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 51) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 52) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 53) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 54) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const 1) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 55) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const 1) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 56) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const -1) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 57) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const -1) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 58) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 59) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 60) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 61) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 62) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 63) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 64) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 65) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 66) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 67) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 68) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const 1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 69) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const -1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 70) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 71) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.const inf) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 72) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.const inf) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 73) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 0) - (f64.neg - (f64.const inf) - ) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 74) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -0) - (f64.neg - (f64.const inf) - ) - (f64.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 75) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.const inf) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 76) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.const inf) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 77) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const 1) - (f64.neg - (f64.const inf) - ) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 78) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const -1) - (f64.neg - (f64.const inf) - ) - (f64.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 79) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 80) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 81) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.neg - (f64.const inf) - ) - (f64.const 0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 82) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.neg - (f64.const inf) - ) - (f64.const -0) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 83) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const 1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 84) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const -1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 85) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.neg - (f64.const inf) - ) - (f64.const 1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 86) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.neg - (f64.const inf) - ) - (f64.const -1) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 87) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const inf) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 88) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.neg - (f64.const inf) - ) - (f64.const inf) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 89) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 90) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.neg - (f64.const inf) - ) - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 91) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const inf) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 92) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 93) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.const inf) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 94) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmod - (f64.const nan:0x8000000000000) - (f64.neg - (f64.const inf) - ) - (f64.const nan:0x8000000000000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 95) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3) - (f32.const 2) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 104) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3) - (f32.const -2) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 105) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3) - (f32.const 2) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3) - (f32.const -2) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3.5) - (f32.const 2) - (f32.const 1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 108) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3.5) - (f32.const -2) - (f32.const 1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3.5) - (f32.const 2) - (f32.const -1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3.5) - (f32.const -2) - (f32.const -1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3) - (f32.const 2.5) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 112) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 3) - (f32.const -2.5) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 113) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3) - (f32.const 2.5) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -3) - (f32.const -2.5) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0.5) - (f32.const 1) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0.5) - (f32.const -1) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0.5) - (f32.const 1) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 118) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0.5) - (f32.const -1) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 119) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1.5) - (f32.const 1) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 120) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1.5) - (f32.const -1) - (f32.const 0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 121) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1.5) - (f32.const 1) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1.5) - (f32.const -1) - (f32.const -0.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 123) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 134) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 135) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 136) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 137) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 138) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 139) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const 1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 140) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const -1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 141) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 142) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0) - (f32.const inf) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 143) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0) - (f32.const inf) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 144) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 0) - (f32.neg - (f32.const inf) - ) - (f32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 145) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -0) - (f32.neg - (f32.const inf) - ) - (f32.const -0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 146) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1) - (f32.const inf) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 147) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1) - (f32.const inf) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 148) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const 1) - (f32.neg - (f32.const inf) - ) - (f32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 149) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const -1) - (f32.neg - (f32.const inf) - ) - (f32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 150) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 151) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 152) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.neg - (f32.const inf) - ) - (f32.const 0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 153) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.neg - (f32.const inf) - ) - (f32.const -0) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 154) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const 1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const -1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 156) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.neg - (f32.const inf) - ) - (f32.const 1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 157) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.neg - (f32.const inf) - ) - (f32.const -1) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 158) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const inf) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.neg - (f32.const inf) - ) - (f32.const inf) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 160) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 161) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.neg - (f32.const inf) - ) - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 162) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const inf) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 163) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 164) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.const inf) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/mod/test_fmodf - (f32.const nan:0x400000) - (f32.neg - (f32.const inf) - ) - (f32.const nan:0x400000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 166) - (i32.const 0) - ) - (unreachable) - ) - ) + f64.const 3 + f64.const 2 + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3 + f64.const -2 + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const 2 + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const -2 + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3.5 + f64.const 2 + f64.const 1.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3.5 + f64.const -2 + f64.const 1.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3.5 + f64.const 2 + f64.const -1.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3.5 + f64.const -2 + f64.const -1.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3 + f64.const 2.5 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3 + f64.const -2.5 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 29 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const 2.5 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -3 + f64.const -2.5 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const 1 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 32 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.5 + f64.const -1 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 33 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const 1 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 34 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.5 + f64.const -1 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 35 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const 1 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 36 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.5 + f64.const -1 + f64.const 0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const 1 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 38 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.5 + f64.const -1 + f64.const -0.5 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.25 + f64.const 1 + f64.const 0.25 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.25 + f64.const -1 + f64.const 0.25 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 41 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.25 + f64.const 1 + f64.const -0.25 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 42 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.25 + f64.const -1 + f64.const -0.25 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 43 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 1.25 + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 44 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -1.25 + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 45 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 1.25 + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 46 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -1.25 + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 47 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -13 + f64.const 64 + f64.const -13 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 48 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 51 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 52 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 53 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 54 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const 1 + f64.const 0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 55 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const 1 + f64.const -0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 56 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const -1 + f64.const 0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 57 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const -1 + f64.const -0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 58 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 59 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 60 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 61 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 62 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 63 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 64 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 65 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 66 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 67 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 68 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const 1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 69 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const -1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 70 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 71 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.const 0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 72 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.const -0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 73 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + f64.const inf + f64.neg + f64.const 0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 74 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + f64.const inf + f64.neg + f64.const -0 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 75 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 76 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 77 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const inf + f64.neg + f64.const 1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 78 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + f64.const inf + f64.neg + f64.const -1 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 79 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 80 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 81 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 82 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -0 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 83 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const 1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 84 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const -1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 85 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const 1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 86 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const -1 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 87 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 88 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 89 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 90 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 91 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 92 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 93 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const inf + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 94 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + f64.const inf + f64.neg + f64.const nan:0x8000000000000 + call $std/mod/test_fmod + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 95 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3 + f32.const 2 + f32.const 1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 104 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3 + f32.const -2 + f32.const 1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 105 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const 2 + f32.const -1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 106 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const -2 + f32.const -1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 107 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3.5 + f32.const 2 + f32.const 1.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 108 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3.5 + f32.const -2 + f32.const 1.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 109 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3.5 + f32.const 2 + f32.const -1.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 110 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3.5 + f32.const -2 + f32.const -1.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 111 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3 + f32.const 2.5 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 112 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 3 + f32.const -2.5 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 113 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const 2.5 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 114 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -3 + f32.const -2.5 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 115 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const 1 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 116 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0.5 + f32.const -1 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 117 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const 1 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 118 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0.5 + f32.const -1 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 119 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const 1 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 120 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1.5 + f32.const -1 + f32.const 0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 121 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const 1 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 122 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1.5 + f32.const -1 + f32.const -0.5 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 123 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 127 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 129 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 130 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 131 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 132 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 133 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 134 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 135 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 136 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 137 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 138 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 139 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const 1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 140 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const -1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 141 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 142 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.const 0 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.const -0 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 144 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 0 + f32.const inf + f32.neg + f32.const 0 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 145 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -0 + f32.const inf + f32.neg + f32.const -0 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 146 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.const 1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 147 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.const -1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 148 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const 1 + f32.const inf + f32.neg + f32.const 1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 149 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const -1 + f32.const inf + f32.neg + f32.const -1 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 150 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 151 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 152 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 153 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -0 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 154 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const 1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const -1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 156 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const 1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 157 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const -1 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 158 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 160 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const inf + f32.neg + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 161 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 162 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 163 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const inf + f32.neg + f32.const nan:0x400000 + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 164 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const inf + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + f32.const nan:0x400000 + f32.const inf + f32.neg + f32.const nan:0x400000 + call $std/mod/test_fmodf + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 166 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 11 ;) (type $v) ) diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 642bd142..d5a46f08 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -3,7 +3,7 @@ (type $v (func)) (type $FUNCSIG$i (func (result i32))) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) @@ -11,135 +11,101 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/allocator/arena/__memory_allocate (; 0 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 0 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/memory/memory.allocate (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (i32.const 8) - ) + (func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$i) (result i32) + i32.const 8 + call $~lib/allocator/arena/__memory_allocate ) - (func $std/new/AClass#constructor (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $std/new/AClass#constructor (; 2 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate) - ) - (i32.const 1) - ) - (f32.store offset=4 - (get_local $0) - (f32.const 2) - ) - (i32.store - (i32.const 0) - (i32.add - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - ) - (f32.store offset=4 - (get_local $0) - (f32.const 3) - ) - (get_local $0) + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 1 + i32.store + get_local $0 + f32.const 2 + f32.store offset=4 + i32.const 0 + get_local $0 + i32.load + i32.const 1 + i32.add + i32.store + get_local $0 + f32.const 3 + f32.store offset=4 + get_local $0 ) - (func $start (; 3 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.const 8) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/new/aClass - (call $std/new/AClass#constructor) - ) + (func $start (; 3 ;) (type $v) + i32.const 8 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + call $std/new/AClass#constructor + set_global $std/new/aClass ) - (func $null (; 4 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 4 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/new.untouched.wat b/tests/compiler/std/new.untouched.wat index e6b8398e..70034f04 100644 --- a/tests/compiler/std/new.untouched.wat +++ b/tests/compiler/std/new.untouched.wat @@ -3,7 +3,7 @@ (type $ii (func (param i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) @@ -23,179 +23,129 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/memory/memory.allocate (; 1 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $std/new/AClass#constructor (; 2 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) (local $2 i32) - (i32.store - (get_local $0) - (i32.add - (i32.load - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $2 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $2) - (i32.const 1) - ) - (f32.store offset=4 - (get_local $2) - (f32.const 2) - ) - (get_local $2) - ) - ) - ) - ) - ) - (i32.const 1) - ) - ) - (f32.store offset=4 - (get_local $0) - (get_local $1) - ) - (get_local $0) + get_local $0 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $2 + get_local $2 + i32.const 1 + i32.store + get_local $2 + f32.const 2 + f32.store offset=4 + get_local $2 + end + tee_local $0 + end + tee_local $0 + i32.load + i32.const 1 + i32.add + i32.store + get_local $0 + get_local $1 + f32.store offset=4 + get_local $0 ) (func $start (; 3 ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/new/aClass - (call $std/new/AClass#constructor - (i32.const 0) - (f32.const 3) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + f32.const 3 + call $std/new/AClass#constructor + set_global $std/new/aClass ) (func $null (; 4 ;) (type $v) ) diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 13bd1559..555a3dc2 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -8,11 +8,11 @@ (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\1b\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/operator-overloading/a1 (mut i32) (i32.const 0)) @@ -84,323 +84,223 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/memory/memory.allocate (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (i32.const 8) - ) + (func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$i) (result i32) + i32.const 8 + call $~lib/allocator/arena/__memory_allocate ) - (func $std/operator-overloading/Tester#constructor (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/Tester#constructor (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (i32.store - (tee_local $2 - (call $~lib/memory/memory.allocate) - ) - (get_local $0) - ) - (i32.store offset=4 - (get_local $2) - (get_local $1) - ) - (get_local $2) + call $~lib/memory/memory.allocate + tee_local $2 + get_local $0 + i32.store + get_local $2 + get_local $1 + i32.store offset=4 + get_local $2 ) - (func $std/operator-overloading/Tester.add (; 4 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.add - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.add - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + (func $std/operator-overloading/Tester.add (; 4 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.load + get_local $1 + i32.load + i32.add + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.add + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.sub (; 5 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.sub - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + (func $std/operator-overloading/Tester.sub (; 5 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.load + get_local $1 + i32.load + i32.sub + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.sub + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.mul (; 6 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.mul - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.mul - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + (func $std/operator-overloading/Tester.mul (; 6 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.load + get_local $1 + i32.load + i32.mul + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.mul + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.div (; 7 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.div_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.div_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + (func $std/operator-overloading/Tester.div (; 7 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.load + get_local $1 + i32.load + i32.div_s + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.div_s + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.mod (; 8 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.rem_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.rem_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + (func $std/operator-overloading/Tester.mod (; 8 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.load + get_local $1 + i32.load + i32.rem_s + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.rem_s + call $std/operator-overloading/Tester#constructor ) - (func $~lib/math/NativeMath.scalbn (; 9 ;) (; has Stack IR ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - (if - (i32.gt_s - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (i32.const 1023) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (select - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (i32.const 1023) - (i32.lt_s - (get_local $1) - (i32.const 1023) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 2.004168360008973e-292) - ) - ) - (if - (i32.lt_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 969) - ) - ) - (i32.const -1022) - ) - (block - (set_local $0 - (f64.mul - (get_local $0) - (f64.const 2.004168360008973e-292) - ) - ) - (set_local $1 - (select - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 969) - ) - ) - (i32.const -1022) - (i32.gt_s - (get_local $1) - (i32.const -1022) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $0) - (f64.reinterpret/i64 - (i64.shl - (i64.add - (i64.extend_s/i32 - (get_local $1) - ) - (i64.const 1023) - ) - (i64.const 52) - ) - ) - ) + (func $~lib/math/NativeMath.scalbn (; 9 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $0 + get_local $1 + i32.const 1023 + i32.sub + tee_local $1 + i32.const 1023 + i32.gt_s + if + get_local $0 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $0 + get_local $1 + i32.const 1023 + i32.sub + tee_local $1 + i32.const 1023 + get_local $1 + i32.const 1023 + i32.lt_s + select + set_local $1 + end + else + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $0 + f64.const 2.004168360008973e-292 + f64.mul + set_local $0 + get_local $1 + i32.const 969 + i32.add + tee_local $1 + i32.const -1022 + i32.lt_s + if + get_local $0 + f64.const 2.004168360008973e-292 + f64.mul + set_local $0 + get_local $1 + i32.const 969 + i32.add + tee_local $1 + i32.const -1022 + get_local $1 + i32.const -1022 + i32.gt_s + select + set_local $1 + end + end + end + get_local $0 + get_local $1 + i64.extend_s/i32 + i64.const 1023 + i64.add + i64.const 52 + i64.shl + f64.reinterpret/i64 + f64.mul ) - (func $~lib/math/NativeMath.pow (; 10 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 10 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -420,3270 +320,2217 @@ (local $18 i32) (local $19 f64) (local $20 i32) - (block $folding-inner1 - (block $folding-inner0 - (set_local $18 - (i32.wrap/i64 - (i64.shr_u - (tee_local $17 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $20 - (i32.wrap/i64 - (get_local $17) - ) - ) - (set_local $4 - (i32.and - (get_local $18) - (i32.const 2147483647) - ) - ) - (if - (i32.eqz - (i32.or - (tee_local $12 - (i32.and - (tee_local $11 - (i32.wrap/i64 - (i64.shr_u - (tee_local $17 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.const 32) - ) - ) - ) - (i32.const 2147483647) - ) - ) - (tee_local $7 - (i32.wrap/i64 - (get_local $17) - ) - ) - ) - ) - (return - (f64.const 1) - ) - ) - (if - (i32.eqz - (tee_local $8 - (i32.gt_s - (get_local $4) - (i32.const 2146435072) - ) - ) - ) - (if - (tee_local $8 - (i32.eq - (get_local $4) - (i32.const 2146435072) - ) - ) - (set_local $8 - (i32.ne - (get_local $20) - (i32.const 0) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $8) - ) - (set_local $8 - (i32.gt_s - (get_local $12) - (i32.const 2146435072) - ) - ) - ) - (if - (i32.eqz - (get_local $8) - ) - (if - (tee_local $8 - (i32.eq - (get_local $12) - (i32.const 2146435072) - ) - ) - (set_local $8 - (i32.ne - (get_local $7) - (i32.const 0) - ) - ) - ) - ) - (if - (get_local $8) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (if - (i32.lt_s - (get_local $18) - (i32.const 0) - ) - (if - (i32.ge_s - (get_local $12) - (i32.const 1128267776) - ) - (set_local $16 - (i32.const 2) - ) - (if - (i32.ge_s - (get_local $12) - (i32.const 1072693248) - ) - (block - (set_local $8 - (i32.sub - (select - (i32.const 52) - (i32.const 20) - (tee_local $5 - (i32.gt_s - (tee_local $10 - (i32.sub - (i32.shr_s - (get_local $12) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (i32.const 20) - ) - ) - ) - (get_local $10) - ) - ) - (if - (i32.eq - (i32.shl - (tee_local $5 - (i32.shr_s - (tee_local $10 - (select - (get_local $7) - (get_local $12) - (get_local $5) - ) - ) - (get_local $8) - ) - ) - (get_local $8) - ) - (get_local $10) - ) - (set_local $16 - (i32.sub - (i32.const 2) - (i32.and - (get_local $5) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $7) - ) - (block - (if - (i32.eq - (get_local $12) - (i32.const 2146435072) - ) - (if - (i32.or - (i32.sub - (get_local $4) - (i32.const 1072693248) - ) - (get_local $20) - ) - (if - (i32.ge_s - (get_local $4) - (i32.const 1072693248) - ) - (block - (if - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (set_local $1 - (f64.const 0) - ) - ) - (return - (get_local $1) - ) - ) - (return - (tee_local $0 - (if (result f64) - (i32.ge_s - (get_local $11) - (i32.const 0) - ) - (f64.const 0) - (f64.neg - (get_local $1) - ) - ) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 1072693248) - ) - (block - (if - (i32.ge_s - (get_local $11) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 1073741824) - ) - (return - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 1071644672) - ) - (if - (i32.ge_s - (get_local $18) - (i32.const 0) - ) - (return - (f64.sqrt - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f64.abs - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $20) - ) - (block - (if - (i32.eqz - (tee_local $5 - (i32.eq - (get_local $4) - (i32.const 2146435072) - ) - ) - ) - (set_local $5 - (i32.eqz - (get_local $4) - ) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (set_local $5 - (i32.eq - (get_local $4) - (i32.const 1072693248) - ) - ) - ) - (if - (get_local $5) - (block - (if - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (set_local $2 - (f64.div - (f64.const 1) - (get_local $2) - ) - ) - ) - (if - (i32.lt_s - (get_local $18) - (i32.const 0) - ) - (if - (i32.or - (i32.sub - (get_local $4) - (i32.const 1072693248) - ) - (get_local $16) - ) - (if - (i32.eq - (get_local $16) - (i32.const 1) - ) - (set_local $2 - (f64.neg - (get_local $2) - ) - ) - ) - (set_local $2 - (f64.div - (tee_local $0 - (f64.sub - (get_local $2) - (get_local $2) - ) - ) - (get_local $0) - ) - ) - ) - ) - (return - (get_local $2) - ) - ) - ) - ) - ) - (set_local $13 - (f64.const 1) - ) - (if - (i32.lt_s - (get_local $18) - (i32.const 0) - ) - (block - (if - (i32.eqz - (get_local $16) - ) - (return - (f64.div - (tee_local $0 - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $16) - (i32.const 1) - ) - (set_local $13 - (f64.const -1) - ) - ) - ) - ) - (set_local $2 - (if (result f64) - (i32.gt_s - (get_local $12) - (i32.const 1105199104) - ) - (block (result f64) - (if - (i32.gt_s - (get_local $12) - (i32.const 1139802112) - ) - (block - (if - (i32.le_s - (get_local $4) - (i32.const 1072693247) - ) - (return - (tee_local $0 - (if (result f64) - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (f64.const inf) - (f64.const 0) - ) - ) - ) - ) - (if - (i32.ge_s - (get_local $4) - (i32.const 1072693248) - ) - (return - (tee_local $0 - (if (result f64) - (i32.gt_s - (get_local $11) - (i32.const 0) - ) - (f64.const inf) - (f64.const 0) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 1072693247) - ) - (return - (tee_local $0 - (if (result f64) - (i32.lt_s - (get_local $11) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $4) - (i32.const 1072693248) - ) - (return - (tee_local $0 - (if (result f64) - (i32.gt_s - (get_local $11) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - ) - (set_local $0 - (f64.mul - (f64.mul - (tee_local $3 - (f64.sub - (get_local $2) - (f64.const 1) - ) - ) - (get_local $3) - ) - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $3) - (f64.sub - (f64.const 0.3333333333333333) - (f64.mul - (get_local $3) - (f64.const 0.25) - ) - ) - ) - ) - ) - ) - (set_local $9 - (f64.add - (tee_local $15 - (f64.mul - (f64.const 1.4426950216293335) - (get_local $3) - ) - ) - (tee_local $6 - (f64.sub - (f64.mul - (get_local $3) - (f64.const 1.9259629911266175e-08) - ) - (f64.mul - (get_local $0) - (f64.const 1.4426950408889634) - ) - ) - ) - ) - ) - (f64.sub - (get_local $6) - (f64.sub - (tee_local $9 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $9) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $15) - ) - ) - ) - (block (result f64) - (set_local $7 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 1048576) - ) - (block - (set_local $7 - (i32.const -53) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (tee_local $2 - (f64.mul - (get_local $2) - (f64.const 9007199254740992) - ) - ) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.sub - (i32.shr_s - (get_local $4) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $4 - (i32.or - (tee_local $5 - (i32.and - (get_local $4) - (i32.const 1048575) - ) - ) - (i32.const 1072693248) - ) - ) - (set_local $10 - (if (result i32) - (i32.le_s - (get_local $5) - (i32.const 235662) - ) - (i32.const 0) - (if (result i32) - (i32.lt_s - (get_local $5) - (i32.const 767610) - ) - (i32.const 1) - (block (result i32) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const -1048576) - ) - ) - (i32.const 0) - ) - ) - ) - ) - (set_local $9 - (f64.mul - (tee_local $15 - (f64.sub - (tee_local $2 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $2) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - ) - (tee_local $0 - (select - (f64.const 1.5) - (f64.const 1) - (get_local $10) - ) - ) - ) - ) - (tee_local $6 - (f64.div - (f64.const 1) - (f64.add - (get_local $2) - (get_local $0) - ) - ) - ) - ) - ) - (set_local $2 - (f64.sub - (get_local $2) - (f64.sub - (tee_local $3 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.add - (i32.add - (i32.or - (i32.shr_s - (get_local $4) - (i32.const 1) - ) - (i32.const 536870912) - ) - (i32.const 524288) - ) - (i32.shl - (get_local $10) - (i32.const 18) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (get_local $0) - ) - ) - ) - (set_local $19 - (f64.mul - (f64.mul - (tee_local $14 - (f64.mul - (get_local $9) - (get_local $9) - ) - ) - (get_local $14) - ) - (f64.add - (f64.const 0.5999999999999946) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.4285714285785502) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.33333332981837743) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.272728123808534) - (f64.mul - (get_local $14) - (f64.add - (f64.const 0.23066074577556175) - (f64.mul - (get_local $14) - (f64.const 0.20697501780033842) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $0 - (f64.mul - (get_local $6) - (f64.sub - (f64.sub - (get_local $15) - (f64.mul - (tee_local $6 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $9) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $3) - ) - ) - (f64.mul - (get_local $6) - (get_local $2) - ) - ) - ) - ) - (set_local $3 - (f64.add - (f64.add - (f64.const 3) - (tee_local $14 - (f64.mul - (get_local $6) - (get_local $6) - ) - ) - ) - (tee_local $19 - (f64.add - (get_local $19) - (f64.mul - (get_local $0) - (f64.add - (get_local $6) - (get_local $9) - ) - ) - ) - ) - ) - ) - (set_local $2 - (f64.sub - (get_local $19) - (f64.sub - (f64.sub - (tee_local $3 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $3) - ) - (i64.const -4294967296) - ) - ) - ) - (f64.const 3) - ) - (get_local $14) - ) - ) - ) - (set_local $0 - (f64.add - (tee_local $15 - (f64.mul - (get_local $6) - (get_local $3) - ) - ) - (tee_local $6 - (f64.add - (f64.mul - (get_local $0) - (get_local $3) - ) - (f64.mul - (get_local $2) - (get_local $9) - ) - ) - ) - ) - ) - (set_local $6 - (f64.sub - (get_local $6) - (f64.sub - (tee_local $0 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $0) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $15) - ) - ) - ) - (set_local $9 - (f64.add - (f64.add - (f64.add - (tee_local $19 - (f64.mul - (f64.const 0.9617967009544373) - (get_local $0) - ) - ) - (tee_local $2 - (f64.add - (f64.add - (f64.mul - (f64.const -7.028461650952758e-09) - (get_local $0) - ) - (f64.mul - (get_local $6) - (f64.const 0.9617966939259756) - ) - ) - (select - (f64.const 1.350039202129749e-08) - (f64.const 0) - (get_local $10) - ) - ) - ) - ) - (tee_local $0 - (select - (f64.const 0.5849624872207642) - (f64.const 0) - (get_local $10) - ) - ) - ) - (tee_local $3 - (f64.convert_s/i32 - (get_local $7) - ) - ) - ) - ) - (f64.sub - (get_local $2) - (f64.sub - (f64.sub - (f64.sub - (tee_local $9 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $9) - ) - (i64.const -4294967296) - ) - ) - ) - (get_local $3) - ) - (get_local $0) - ) - (get_local $19) - ) - ) - ) - ) - ) - (set_local $8 - (i32.wrap/i64 - (tee_local $17 - (i64.reinterpret/f64 - (tee_local $2 - (f64.add - (tee_local $6 - (f64.add - (f64.mul - (f64.sub - (get_local $1) - (tee_local $0 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $1) - ) - (i64.const -4294967296) - ) - ) - ) - ) - (get_local $9) - ) - (f64.mul - (get_local $1) - (get_local $2) - ) - ) - ) - (tee_local $0 - (f64.mul - (get_local $0) - (get_local $9) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.ge_s - (tee_local $5 - (i32.wrap/i64 - (i64.shr_u - (get_local $17) - (i64.const 32) - ) - ) - ) - (i32.const 1083179008) - ) - (block - (br_if $folding-inner1 - (i32.or - (i32.sub - (get_local $5) - (i32.const 1083179008) - ) - (get_local $8) - ) - ) - (br_if $folding-inner1 - (f64.gt - (f64.add - (get_local $6) - (f64.const 8.008566259537294e-17) - ) - (f64.sub - (get_local $2) - (get_local $0) - ) - ) - ) - ) - (if - (i32.ge_s - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - (i32.const 1083231232) - ) - (block - (br_if $folding-inner0 - (i32.or - (i32.sub - (get_local $5) - (i32.const -1064252416) - ) - (get_local $8) - ) - ) - (br_if $folding-inner0 - (f64.le - (get_local $6) - (f64.sub - (get_local $2) - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $10 - (i32.sub - (i32.shr_s - (tee_local $8 - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $7 - (i32.const 0) - ) - (if - (i32.gt_s - (get_local $8) - (i32.const 1071644672) - ) - (block - (set_local $10 - (i32.sub - (i32.shr_s - (i32.and - (tee_local $7 - (i32.add - (get_local $5) - (i32.shr_s - (i32.const 1048576) - (i32.add - (get_local $10) - (i32.const 1) - ) - ) - ) - ) - (i32.const 2147483647) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $3 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.and - (get_local $7) - (i32.xor - (i32.shr_s - (i32.const 1048575) - (get_local $10) - ) - (i32.const -1) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $7 - (i32.shr_s - (i32.or - (i32.and - (get_local $7) - (i32.const 1048575) - ) - (i32.const 1048576) - ) - (i32.sub - (i32.const 20) - (get_local $10) - ) - ) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (set_local $7 - (i32.sub - (i32.const 0) - (get_local $7) - ) - ) - ) - (set_local $0 - (f64.sub - (get_local $0) - (get_local $3) - ) - ) - ) - ) - (set_local $3 - (f64.mul - (tee_local $2 - (f64.add - (tee_local $15 - (f64.mul - (tee_local $3 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (f64.add - (get_local $6) - (get_local $0) - ) - ) - (i64.const -4294967296) - ) - ) - ) - (f64.const 0.6931471824645996) - ) - ) - (tee_local $6 - (f64.add - (f64.mul - (f64.sub - (get_local $6) - (f64.sub - (get_local $3) - (get_local $0) - ) - ) - (f64.const 0.6931471805599453) - ) - (f64.mul - (get_local $3) - (f64.const -1.904654299957768e-09) - ) - ) - ) - ) - ) - (get_local $2) - ) - ) - (set_local $2 - (if (result f64) - (i32.le_s - (i32.shr_s - (tee_local $5 - (i32.add - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (tee_local $2 - (f64.sub - (f64.const 1) - (f64.sub - (f64.sub - (f64.div - (f64.mul - (get_local $2) - (tee_local $9 - (f64.sub - (get_local $2) - (f64.mul - (get_local $3) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $3) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $3) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $3) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $3) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.sub - (get_local $9) - (f64.const 2) - ) - ) - (f64.add - (tee_local $0 - (f64.sub - (get_local $6) - (f64.sub - (get_local $2) - (get_local $15) - ) - ) - ) - (f64.mul - (get_local $2) - (get_local $0) - ) - ) - ) - (get_local $2) - ) - ) - ) - ) - (i64.const 32) - ) - ) - (i32.shl - (get_local $7) - (i32.const 20) - ) - ) - ) - (i32.const 20) - ) - (i32.const 0) - ) - (call $~lib/math/NativeMath.scalbn - (get_local $2) - (get_local $7) - ) - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $2) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $5) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (return - (f64.mul - (get_local $13) - (get_local $2) - ) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - (f64.mul - (f64.mul - (get_local $13) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) + block $folding-inner1 + block $folding-inner0 + get_local $0 + i64.reinterpret/f64 + tee_local $17 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $18 + get_local $17 + i32.wrap/i64 + set_local $20 + get_local $18 + i32.const 2147483647 + i32.and + set_local $4 + get_local $1 + i64.reinterpret/f64 + tee_local $17 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $11 + i32.const 2147483647 + i32.and + tee_local $12 + get_local $17 + i32.wrap/i64 + tee_local $7 + i32.or + i32.eqz + if + f64.const 1 + return + end + get_local $4 + i32.const 2146435072 + i32.gt_s + tee_local $8 + i32.eqz + if + get_local $4 + i32.const 2146435072 + i32.eq + tee_local $8 + if + get_local $20 + i32.const 0 + i32.ne + set_local $8 + end + end + get_local $8 + i32.eqz + if + get_local $12 + i32.const 2146435072 + i32.gt_s + set_local $8 + end + get_local $8 + i32.eqz + if + get_local $12 + i32.const 2146435072 + i32.eq + tee_local $8 + if + get_local $7 + i32.const 0 + i32.ne + set_local $8 + end + end + get_local $8 + if + get_local $0 + get_local $1 + f64.add + return + end + get_local $18 + i32.const 0 + i32.lt_s + if + get_local $12 + i32.const 1128267776 + i32.ge_s + if + i32.const 2 + set_local $16 + else + get_local $12 + i32.const 1072693248 + i32.ge_s + if + i32.const 52 + i32.const 20 + get_local $12 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + tee_local $10 + i32.const 20 + i32.gt_s + tee_local $5 + select + get_local $10 + i32.sub + set_local $8 + get_local $7 + get_local $12 + get_local $5 + select + tee_local $10 + get_local $8 + i32.shr_s + tee_local $5 + get_local $8 + i32.shl + get_local $10 + i32.eq + if + i32.const 2 + get_local $5 + i32.const 1 + i32.and + i32.sub + set_local $16 + end + end + end + end + get_local $7 + i32.eqz + if + get_local $12 + i32.const 2146435072 + i32.eq + if + get_local $4 + i32.const 1072693248 + i32.sub + get_local $20 + i32.or + if + get_local $4 + i32.const 1072693248 + i32.ge_s + if + get_local $11 + i32.const 0 + i32.lt_s + if + f64.const 0 + set_local $1 + end + get_local $1 + return + else + get_local $11 + i32.const 0 + i32.ge_s + if (result f64) + f64.const 0 + else + get_local $1 + f64.neg + end + tee_local $0 + return + end + unreachable + else + f64.const nan:0x8000000000000 + return + end + unreachable + end + get_local $12 + i32.const 1072693248 + i32.eq + if + get_local $11 + i32.const 0 + i32.ge_s + if + get_local $0 + return + end + f64.const 1 + get_local $0 + f64.div + return + end + get_local $11 + i32.const 1073741824 + i32.eq + if + get_local $0 + get_local $0 + f64.mul + return + end + get_local $11 + i32.const 1071644672 + i32.eq + if + get_local $18 + i32.const 0 + i32.ge_s + if + get_local $0 + f64.sqrt + return + end + end + end + get_local $0 + f64.abs + set_local $2 + get_local $20 + i32.eqz + if + get_local $4 + i32.const 2146435072 + i32.eq + tee_local $5 + i32.eqz + if + get_local $4 + i32.eqz + set_local $5 + end + get_local $5 + i32.eqz + if + get_local $4 + i32.const 1072693248 + i32.eq + set_local $5 + end + get_local $5 + if + get_local $11 + i32.const 0 + i32.lt_s + if + f64.const 1 + get_local $2 + f64.div + set_local $2 + end + get_local $18 + i32.const 0 + i32.lt_s + if + get_local $4 + i32.const 1072693248 + i32.sub + get_local $16 + i32.or + if + get_local $16 + i32.const 1 + i32.eq + if + get_local $2 + f64.neg + set_local $2 + end + else + get_local $2 + get_local $2 + f64.sub + tee_local $0 + get_local $0 + f64.div + set_local $2 + end + end + get_local $2 + return + end + end + f64.const 1 + set_local $13 + get_local $18 + i32.const 0 + i32.lt_s + if + get_local $16 + i32.eqz + if + get_local $0 + get_local $0 + f64.sub + tee_local $0 + get_local $0 + f64.div + return + end + get_local $16 + i32.const 1 + i32.eq + if + f64.const -1 + set_local $13 + end + end + get_local $12 + i32.const 1105199104 + i32.gt_s + if (result f64) + get_local $12 + i32.const 1139802112 + i32.gt_s + if + get_local $4 + i32.const 1072693247 + i32.le_s + if + get_local $11 + i32.const 0 + i32.lt_s + if (result f64) + f64.const inf + else + f64.const 0 + end + tee_local $0 + return + end + get_local $4 + i32.const 1072693248 + i32.ge_s + if + get_local $11 + i32.const 0 + i32.gt_s + if (result f64) + f64.const inf + else + f64.const 0 + end + tee_local $0 + return + end + end + get_local $4 + i32.const 1072693247 + i32.lt_s + if + get_local $11 + i32.const 0 + i32.lt_s + if (result f64) + get_local $13 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $13 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + tee_local $0 + return + end + get_local $4 + i32.const 1072693248 + i32.gt_s + if + get_local $11 + i32.const 0 + i32.gt_s + if (result f64) + get_local $13 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $13 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + tee_local $0 + return + end + get_local $2 + f64.const 1 + f64.sub + tee_local $3 + get_local $3 + f64.mul + f64.const 0.5 + get_local $3 + f64.const 0.3333333333333333 + get_local $3 + f64.const 0.25 + f64.mul + f64.sub + f64.mul + f64.sub + f64.mul + set_local $0 + f64.const 1.4426950216293335 + get_local $3 + f64.mul + tee_local $15 + get_local $3 + f64.const 1.9259629911266175e-08 + f64.mul + get_local $0 + f64.const 1.4426950408889634 + f64.mul + f64.sub + tee_local $6 + f64.add + set_local $9 + get_local $6 + get_local $9 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $9 + get_local $15 + f64.sub + f64.sub + else + i32.const 0 + set_local $7 + get_local $4 + i32.const 1048576 + i32.lt_s + if + i32.const -53 + set_local $7 + get_local $2 + f64.const 9007199254740992 + f64.mul + tee_local $2 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $4 + end + get_local $7 + get_local $4 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $7 + get_local $4 + i32.const 1048575 + i32.and + tee_local $5 + i32.const 1072693248 + i32.or + set_local $4 + get_local $5 + i32.const 235662 + i32.le_s + if (result i32) + i32.const 0 + else + get_local $5 + i32.const 767610 + i32.lt_s + if (result i32) + i32.const 1 + else + get_local $7 + i32.const 1 + i32.add + set_local $7 + get_local $4 + i32.const -1048576 + i32.add + set_local $4 + i32.const 0 + end + end + set_local $10 + get_local $2 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $4 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + tee_local $2 + f64.const 1.5 + f64.const 1 + get_local $10 + select + tee_local $0 + f64.sub + tee_local $15 + f64.const 1 + get_local $2 + get_local $0 + f64.add + f64.div + tee_local $6 + f64.mul + set_local $9 + get_local $2 + get_local $4 + i32.const 1 + i32.shr_s + i32.const 536870912 + i32.or + i32.const 524288 + i32.add + get_local $10 + i32.const 18 + i32.shl + i32.add + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + tee_local $3 + get_local $0 + f64.sub + f64.sub + set_local $2 + get_local $9 + get_local $9 + f64.mul + tee_local $14 + get_local $14 + f64.mul + f64.const 0.5999999999999946 + get_local $14 + f64.const 0.4285714285785502 + get_local $14 + f64.const 0.33333332981837743 + get_local $14 + f64.const 0.272728123808534 + get_local $14 + f64.const 0.23066074577556175 + get_local $14 + f64.const 0.20697501780033842 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $19 + get_local $6 + get_local $15 + get_local $9 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $6 + get_local $3 + f64.mul + f64.sub + get_local $6 + get_local $2 + f64.mul + f64.sub + f64.mul + set_local $0 + f64.const 3 + get_local $6 + get_local $6 + f64.mul + tee_local $14 + f64.add + get_local $19 + get_local $0 + get_local $6 + get_local $9 + f64.add + f64.mul + f64.add + tee_local $19 + f64.add + set_local $3 + get_local $19 + get_local $3 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $3 + f64.const 3 + f64.sub + get_local $14 + f64.sub + f64.sub + set_local $2 + get_local $6 + get_local $3 + f64.mul + tee_local $15 + get_local $0 + get_local $3 + f64.mul + get_local $2 + get_local $9 + f64.mul + f64.add + tee_local $6 + f64.add + set_local $0 + get_local $6 + get_local $0 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $0 + get_local $15 + f64.sub + f64.sub + set_local $6 + f64.const 0.9617967009544373 + get_local $0 + f64.mul + tee_local $19 + f64.const -7.028461650952758e-09 + get_local $0 + f64.mul + get_local $6 + f64.const 0.9617966939259756 + f64.mul + f64.add + f64.const 1.350039202129749e-08 + f64.const 0 + get_local $10 + select + f64.add + tee_local $2 + f64.add + f64.const 0.5849624872207642 + f64.const 0 + get_local $10 + select + tee_local $0 + f64.add + get_local $7 + f64.convert_s/i32 + tee_local $3 + f64.add + set_local $9 + get_local $2 + get_local $9 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $9 + get_local $3 + f64.sub + get_local $0 + f64.sub + get_local $19 + f64.sub + f64.sub + end + set_local $2 + get_local $1 + get_local $1 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $0 + f64.sub + get_local $9 + f64.mul + get_local $1 + get_local $2 + f64.mul + f64.add + tee_local $6 + get_local $0 + get_local $9 + f64.mul + tee_local $0 + f64.add + tee_local $2 + i64.reinterpret/f64 + tee_local $17 + i32.wrap/i64 + set_local $8 + get_local $17 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $5 + i32.const 1083179008 + i32.ge_s + if + get_local $5 + i32.const 1083179008 + i32.sub + get_local $8 + i32.or + br_if $folding-inner1 + get_local $6 + f64.const 8.008566259537294e-17 + f64.add + get_local $2 + get_local $0 + f64.sub + f64.gt + br_if $folding-inner1 + else + get_local $5 + i32.const 2147483647 + i32.and + i32.const 1083231232 + i32.ge_s + if + get_local $5 + i32.const -1064252416 + i32.sub + get_local $8 + i32.or + br_if $folding-inner0 + get_local $6 + get_local $2 + get_local $0 + f64.sub + f64.le + br_if $folding-inner0 + end + end + get_local $5 + i32.const 2147483647 + i32.and + tee_local $8 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $10 + i32.const 0 + set_local $7 + get_local $8 + i32.const 1071644672 + i32.gt_s + if + get_local $5 + i32.const 1048576 + get_local $10 + i32.const 1 + i32.add + i32.shr_s + i32.add + tee_local $7 + i32.const 2147483647 + i32.and + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $10 + get_local $7 + i32.const 1048575 + get_local $10 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $3 + get_local $7 + i32.const 1048575 + i32.and + i32.const 1048576 + i32.or + i32.const 20 + get_local $10 + i32.sub + i32.shr_s + set_local $7 + get_local $5 + i32.const 0 + i32.lt_s + if + i32.const 0 + get_local $7 + i32.sub + set_local $7 + end + get_local $0 + get_local $3 + f64.sub + set_local $0 + end + get_local $6 + get_local $0 + f64.add + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + tee_local $3 + f64.const 0.6931471824645996 + f64.mul + tee_local $15 + get_local $6 + get_local $3 + get_local $0 + f64.sub + f64.sub + f64.const 0.6931471805599453 + f64.mul + get_local $3 + f64.const -1.904654299957768e-09 + f64.mul + f64.add + tee_local $6 + f64.add + tee_local $2 + get_local $2 + f64.mul + set_local $3 + f64.const 1 + get_local $2 + get_local $2 + get_local $3 + f64.const 0.16666666666666602 + get_local $3 + f64.const -2.7777777777015593e-03 + get_local $3 + f64.const 6.613756321437934e-05 + get_local $3 + f64.const -1.6533902205465252e-06 + get_local $3 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + tee_local $9 + f64.mul + get_local $9 + f64.const 2 + f64.sub + f64.div + get_local $6 + get_local $2 + get_local $15 + f64.sub + f64.sub + tee_local $0 + get_local $2 + get_local $0 + f64.mul + f64.add + f64.sub + get_local $2 + f64.sub + f64.sub + tee_local $2 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + get_local $7 + i32.const 20 + i32.shl + i32.add + tee_local $5 + i32.const 20 + i32.shr_s + i32.const 0 + i32.le_s + if (result f64) + get_local $2 + get_local $7 + call $~lib/math/NativeMath.scalbn + else + get_local $2 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $5 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + end + set_local $2 + get_local $13 + get_local $2 + f64.mul + return + end + get_local $13 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + get_local $13 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul ) - (func $std/operator-overloading/Tester.pow (; 11 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/Tester.pow (; 11 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.trunc_s/f64 - (call $~lib/math/NativeMath.pow - (f64.convert_s/i32 - (i32.load - (get_local $0) - ) - ) - (f64.convert_s/i32 - (i32.load - (get_local $1) - ) - ) - ) - ) - ) - (set_local $0 - (i32.trunc_s/f64 - (call $~lib/math/NativeMath.pow - (f64.convert_s/i32 - (i32.load offset=4 - (get_local $0) - ) - ) - (f64.convert_s/i32 - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - ) - (call $std/operator-overloading/Tester#constructor - (get_local $2) - (get_local $0) - ) + get_local $0 + i32.load + f64.convert_s/i32 + get_local $1 + i32.load + f64.convert_s/i32 + call $~lib/math/NativeMath.pow + i32.trunc_s/f64 + set_local $2 + get_local $0 + i32.load offset=4 + f64.convert_s/i32 + get_local $1 + i32.load offset=4 + f64.convert_s/i32 + call $~lib/math/NativeMath.pow + i32.trunc_s/f64 + set_local $0 + get_local $2 + get_local $0 + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.and (; 12 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.and - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.and - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + (func $std/operator-overloading/Tester.and (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.load + get_local $1 + i32.load + i32.and + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.and + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.or (; 13 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.or - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.or - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + (func $std/operator-overloading/Tester.or (; 13 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.load + get_local $1 + i32.load + i32.or + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.or + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.xor (; 14 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.xor - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.xor - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + (func $std/operator-overloading/Tester.xor (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.load + get_local $1 + i32.load + i32.xor + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.xor + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.equals (; 15 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/Tester.equals (; 15 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (tee_local $2 - (i32.eq - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.eq - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - (get_local $2) + get_local $0 + i32.load + get_local $1 + i32.load + i32.eq + tee_local $2 + if + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.eq + set_local $2 + end + get_local $2 ) - (func $std/operator-overloading/Tester.notEquals (; 16 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/Tester.notEquals (; 16 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (tee_local $2 - (i32.ne - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.ne - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - (get_local $2) + get_local $0 + i32.load + get_local $1 + i32.load + i32.ne + tee_local $2 + if + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.ne + set_local $2 + end + get_local $2 ) - (func $std/operator-overloading/Tester.greater (; 17 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/Tester.greater (; 17 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (tee_local $2 - (i32.gt_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.gt_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - (get_local $2) + get_local $0 + i32.load + get_local $1 + i32.load + i32.gt_s + tee_local $2 + if + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.gt_s + set_local $2 + end + get_local $2 ) - (func $std/operator-overloading/Tester.greaterEquals (; 18 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/Tester.greaterEquals (; 18 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (tee_local $2 - (i32.ge_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.ge_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - (get_local $2) + get_local $0 + i32.load + get_local $1 + i32.load + i32.ge_s + tee_local $2 + if + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.ge_s + set_local $2 + end + get_local $2 ) - (func $std/operator-overloading/Tester.less (; 19 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/Tester.less (; 19 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (tee_local $2 - (i32.lt_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.lt_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - (get_local $2) + get_local $0 + i32.load + get_local $1 + i32.load + i32.lt_s + tee_local $2 + if + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.lt_s + set_local $2 + end + get_local $2 ) - (func $std/operator-overloading/Tester.lessEquals (; 20 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/Tester.lessEquals (; 20 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (tee_local $2 - (i32.le_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.le_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - (get_local $2) + get_local $0 + i32.load + get_local $1 + i32.load + i32.le_s + tee_local $2 + if + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.le_s + set_local $2 + end + get_local $2 ) - (func $std/operator-overloading/Tester.shr (; 21 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.shr_s - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - (i32.shr_s - (i32.load offset=4 - (get_local $0) - ) - (i32.const 3) - ) - ) + (func $std/operator-overloading/Tester.shr (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const 3 + i32.shr_s + get_local $0 + i32.load offset=4 + i32.const 3 + i32.shr_s + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.shu (; 22 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.shr_u - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 3) - ) - ) + (func $std/operator-overloading/Tester.shu (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const 3 + i32.shr_u + get_local $0 + i32.load offset=4 + i32.const 3 + i32.shr_u + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.shl (; 23 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.shl - (i32.load - (get_local $0) - ) - (i32.const 3) - ) - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 3) - ) - ) + (func $std/operator-overloading/Tester.shl (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const 3 + i32.shl + get_local $0 + i32.load offset=4 + i32.const 3 + i32.shl + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.pos (; 24 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.load - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) + (func $std/operator-overloading/Tester.pos (; 24 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + get_local $0 + i32.load offset=4 + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.neg (; 25 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.sub - (i32.const 0) - (i32.load - (get_local $0) - ) - ) - (i32.sub - (i32.const 0) - (i32.load offset=4 - (get_local $0) - ) - ) - ) + (func $std/operator-overloading/Tester.neg (; 25 ;) (type $ii) (param $0 i32) (result i32) + i32.const 0 + get_local $0 + i32.load + i32.sub + i32.const 0 + get_local $0 + i32.load offset=4 + i32.sub + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.not (; 26 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.xor - (i32.load - (get_local $0) - ) - (i32.const -1) - ) - (i32.xor - (i32.load offset=4 - (get_local $0) - ) - (i32.const -1) - ) - ) + (func $std/operator-overloading/Tester.not (; 26 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const -1 + i32.xor + get_local $0 + i32.load offset=4 + i32.const -1 + i32.xor + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester.excl (; 27 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $std/operator-overloading/Tester.excl (; 27 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (tee_local $1 - (i32.eqz - (i32.load - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.eqz - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (get_local $1) + get_local $0 + i32.load + i32.eqz + tee_local $1 + if + get_local $0 + i32.load offset=4 + i32.eqz + set_local $1 + end + get_local $1 ) - (func $std/operator-overloading/Tester#inc (; 28 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.store - (get_local $0) - (i32.add - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $0) + (func $std/operator-overloading/Tester#inc (; 28 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + get_local $0 + i32.load + i32.const 1 + i32.add + i32.store + get_local $0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.add + i32.store offset=4 + get_local $0 ) - (func $std/operator-overloading/Tester#dec (; 29 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.store - (get_local $0) - (i32.sub - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $0) + (func $std/operator-overloading/Tester#dec (; 29 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + get_local $0 + i32.load + i32.const 1 + i32.sub + i32.store + get_local $0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 ) - (func $std/operator-overloading/Tester#postInc (; 30 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.add - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - (i32.add - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) + (func $std/operator-overloading/Tester#postInc (; 30 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const 1 + i32.add + get_local $0 + i32.load offset=4 + i32.const 1 + i32.add + call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester#postDec (; 31 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.sub - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) + (func $std/operator-overloading/Tester#postDec (; 31 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load + i32.const 1 + i32.sub + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + call $std/operator-overloading/Tester#constructor ) - (func $start (; 32 ;) (; has Stack IR ;) (type $v) + (func $start (; 32 ;) (type $v) (local $0 i32) (local $1 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 72) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/operator-overloading/a1 - (call $std/operator-overloading/Tester#constructor - (i32.const 1) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/a2 - (call $std/operator-overloading/Tester#constructor - (i32.const 2) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/a - (call $std/operator-overloading/Tester.add - (get_global $std/operator-overloading/a1) - (get_global $std/operator-overloading/a2) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/a) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/a) - ) - (i32.const 5) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 147) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/s1 - (call $std/operator-overloading/Tester#constructor - (i32.const 2) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/s2 - (call $std/operator-overloading/Tester#constructor - (i32.const 2) - (i32.const -3) - ) - ) - (set_global $std/operator-overloading/s - (call $std/operator-overloading/Tester.sub - (get_global $std/operator-overloading/s1) - (get_global $std/operator-overloading/s2) - ) - ) - (if - (tee_local $0 - (i32.eqz - (i32.load - (get_global $std/operator-overloading/s) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/s) - ) - (i32.const 6) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 153) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/m1 - (call $std/operator-overloading/Tester#constructor - (i32.const 2) - (i32.const 5) - ) - ) - (set_global $std/operator-overloading/m2 - (call $std/operator-overloading/Tester#constructor - (i32.const 3) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/m - (call $std/operator-overloading/Tester.mul - (get_global $std/operator-overloading/m1) - (get_global $std/operator-overloading/m2) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/m) - ) - (i32.const 6) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/m) - ) - (i32.const 10) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/d1 - (call $std/operator-overloading/Tester#constructor - (i32.const 6) - (i32.const 50) - ) - ) - (set_global $std/operator-overloading/d2 - (call $std/operator-overloading/Tester#constructor - (i32.const 3) - (i32.const 10) - ) - ) - (set_global $std/operator-overloading/d - (call $std/operator-overloading/Tester.div - (get_global $std/operator-overloading/d1) - (get_global $std/operator-overloading/d2) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/d) - ) - (i32.const 2) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/d) - ) - (i32.const 5) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/f1 - (call $std/operator-overloading/Tester#constructor - (i32.const 10) - (i32.const 10) - ) - ) - (set_global $std/operator-overloading/f2 - (call $std/operator-overloading/Tester#constructor - (i32.const 6) - (i32.const 10) - ) - ) - (set_global $std/operator-overloading/f - (call $std/operator-overloading/Tester.mod - (get_global $std/operator-overloading/f1) - (get_global $std/operator-overloading/f2) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/f) - ) - (i32.const 4) - ) - ) - (set_local $0 - (i32.eqz - (i32.load offset=4 - (get_global $std/operator-overloading/f) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 171) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/p1 - (call $std/operator-overloading/Tester#constructor - (i32.const 2) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/p2 - (call $std/operator-overloading/Tester#constructor - (i32.const 4) - (i32.const 5) - ) - ) - (set_global $std/operator-overloading/p - (call $std/operator-overloading/Tester.pow - (get_global $std/operator-overloading/p1) - (get_global $std/operator-overloading/p2) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/p) - ) - (i32.const 16) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/p) - ) - (i32.const 243) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 177) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/n1 - (call $std/operator-overloading/Tester#constructor - (i32.const 255) - (i32.const 15) - ) - ) - (set_global $std/operator-overloading/n2 - (call $std/operator-overloading/Tester#constructor - (i32.const 15) - (i32.const 255) - ) - ) - (set_global $std/operator-overloading/n - (call $std/operator-overloading/Tester.and - (get_global $std/operator-overloading/n1) - (get_global $std/operator-overloading/n2) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/n) - ) - (i32.const 15) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/n) - ) - (i32.const 15) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 183) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/o1 - (call $std/operator-overloading/Tester#constructor - (i32.const 3855) - (i32.const 255) - ) - ) - (set_global $std/operator-overloading/o2 - (call $std/operator-overloading/Tester#constructor - (i32.const 61680) - (i32.const 0) - ) - ) - (set_global $std/operator-overloading/o - (call $std/operator-overloading/Tester.or - (get_global $std/operator-overloading/o1) - (get_global $std/operator-overloading/o2) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/o) - ) - (i32.const 65535) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/o) - ) - (i32.const 255) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 189) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/x1 - (call $std/operator-overloading/Tester#constructor - (i32.const 255) - (i32.const 255) - ) - ) - (set_global $std/operator-overloading/x2 - (call $std/operator-overloading/Tester#constructor - (i32.const 65280) - (i32.const 0) - ) - ) - (set_global $std/operator-overloading/x - (call $std/operator-overloading/Tester.xor - (get_global $std/operator-overloading/x1) - (get_global $std/operator-overloading/x2) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/x) - ) - (i32.const 65535) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/x) - ) - (i32.const 255) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 195) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/eq1 - (call $std/operator-overloading/Tester#constructor - (i32.const 1) - (i32.const -2) - ) - ) - (set_global $std/operator-overloading/eq2 - (call $std/operator-overloading/Tester#constructor - (i32.const 1) - (i32.const -2) - ) - ) - (set_global $std/operator-overloading/eq - (call $std/operator-overloading/Tester.equals - (get_global $std/operator-overloading/eq1) - (get_global $std/operator-overloading/eq2) - ) - ) - (if - (i32.ne - (get_global $std/operator-overloading/eq) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 201) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/eq3 - (call $std/operator-overloading/Tester#constructor - (i32.const 1) - (i32.const 0) - ) - ) - (set_global $std/operator-overloading/eq4 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 1) - ) - ) - (set_global $std/operator-overloading/eqf - (call $std/operator-overloading/Tester.equals - (get_global $std/operator-overloading/eq3) - (get_global $std/operator-overloading/eq4) - ) - ) - (if - (get_global $std/operator-overloading/eqf) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 207) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/eq - (call $std/operator-overloading/Tester.notEquals - (get_global $std/operator-overloading/eq1) - (get_global $std/operator-overloading/eq2) - ) - ) - (if - (get_global $std/operator-overloading/eq) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 211) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/eqf - (call $std/operator-overloading/Tester.notEquals - (get_global $std/operator-overloading/eq3) - (get_global $std/operator-overloading/eq4) - ) - ) - (if - (i32.ne - (get_global $std/operator-overloading/eqf) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 215) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/gt1 - (call $std/operator-overloading/Tester#constructor - (i32.const 2) - (i32.const 2147483647) - ) - ) - (set_global $std/operator-overloading/gt2 - (call $std/operator-overloading/Tester#constructor - (i32.const 1) - (i32.const 0) - ) - ) - (set_global $std/operator-overloading/gt - (call $std/operator-overloading/Tester.greater - (get_global $std/operator-overloading/gt1) - (get_global $std/operator-overloading/gt2) - ) - ) - (if - (i32.ne - (get_global $std/operator-overloading/gt) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 221) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/gte1 - (call $std/operator-overloading/Tester#constructor - (i32.const 2) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/gte2 - (call $std/operator-overloading/Tester#constructor - (i32.const 2) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/gte - (call $std/operator-overloading/Tester.greaterEquals - (get_global $std/operator-overloading/gte1) - (get_global $std/operator-overloading/gte2) - ) - ) - (if - (i32.ne - (get_global $std/operator-overloading/gte) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 227) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/le1 - (call $std/operator-overloading/Tester#constructor - (i32.const 5) - (i32.const -1) - ) - ) - (set_global $std/operator-overloading/le2 - (call $std/operator-overloading/Tester#constructor - (i32.const 6) - (i32.const 6) - ) - ) - (set_global $std/operator-overloading/le - (call $std/operator-overloading/Tester.less - (get_global $std/operator-overloading/le1) - (get_global $std/operator-overloading/le2) - ) - ) - (if - (i32.ne - (get_global $std/operator-overloading/le) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 233) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/leq1 - (call $std/operator-overloading/Tester#constructor - (i32.const 4) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/leq2 - (call $std/operator-overloading/Tester#constructor - (i32.const 4) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/leq - (call $std/operator-overloading/Tester.lessEquals - (get_global $std/operator-overloading/leq1) - (get_global $std/operator-overloading/leq2) - ) - ) - (if - (i32.ne - (get_global $std/operator-overloading/leq) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 239) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/shr - (call $std/operator-overloading/Tester#constructor - (i32.const 8) - (i32.const 16) - ) - ) - (set_global $std/operator-overloading/sres - (call $std/operator-overloading/Tester.shr - (get_global $std/operator-overloading/shr) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/sres) - ) - (i32.const 1) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/sres) - ) - (i32.const 2) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 244) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/shu - (call $std/operator-overloading/Tester#constructor - (i32.const -8) - (i32.const -16) - ) - ) - (set_global $std/operator-overloading/ures - (call $std/operator-overloading/Tester.shu - (get_global $std/operator-overloading/shu) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/ures) - ) - (i32.const 536870911) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/ures) - ) - (i32.const 536870910) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 249) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/shl - (call $std/operator-overloading/Tester#constructor - (i32.const 1) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/sres - (call $std/operator-overloading/Tester.shl - (get_global $std/operator-overloading/shl) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/sres) - ) - (i32.const 8) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/sres) - ) - (i32.const 16) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 254) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/pos - (call $std/operator-overloading/Tester#constructor - (i32.const 1) - (i32.const -2) - ) - ) - (set_global $std/operator-overloading/pres - (call $std/operator-overloading/Tester.pos - (get_global $std/operator-overloading/pos) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/pres) - ) - (i32.load - (get_global $std/operator-overloading/pos) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/pres) - ) - (i32.load offset=4 - (get_global $std/operator-overloading/pos) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 259) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/neg - (call $std/operator-overloading/Tester#constructor - (i32.const -1) - (i32.const -2) - ) - ) - (set_global $std/operator-overloading/nres - (call $std/operator-overloading/Tester.neg - (get_global $std/operator-overloading/neg) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/nres) - ) - (i32.sub - (i32.const 0) - (i32.load - (get_global $std/operator-overloading/neg) - ) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/nres) - ) - (i32.sub - (i32.const 0) - (i32.load offset=4 - (get_global $std/operator-overloading/neg) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 264) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/not - (call $std/operator-overloading/Tester#constructor - (i32.const 255) - (i32.const 16) - ) - ) - (set_global $std/operator-overloading/res - (call $std/operator-overloading/Tester.not - (get_global $std/operator-overloading/not) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/res) - ) - (i32.xor - (i32.load - (get_global $std/operator-overloading/not) - ) - (i32.const -1) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/res) - ) - (i32.xor - (i32.load offset=4 - (get_global $std/operator-overloading/not) - ) - (i32.const -1) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 269) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/excl - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 0) - ) - ) - (set_global $std/operator-overloading/bres - (call $std/operator-overloading/Tester.excl - (get_global $std/operator-overloading/excl) - ) - ) - (set_local $1 - (get_global $std/operator-overloading/bres) - ) - (if - (tee_local $0 - (i32.eqz - (i32.load - (get_global $std/operator-overloading/excl) - ) - ) - ) - (set_local $0 - (i32.eqz - (i32.load offset=4 - (get_global $std/operator-overloading/excl) - ) - ) - ) - ) - (if - (i32.ne - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 274) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $std/operator-overloading/bres) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 275) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 1) - ) - ) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#inc - (get_global $std/operator-overloading/incdec) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/incdec) - ) - (i32.const 1) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/incdec) - ) - (i32.const 2) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 281) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#dec - (get_global $std/operator-overloading/incdec) - ) - ) - (if - (tee_local $0 - (i32.eqz - (i32.load - (get_global $std/operator-overloading/incdec) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/incdec) - ) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 284) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 1) - ) - ) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#postInc - (tee_local $0 - (get_global $std/operator-overloading/incdec) - ) - ) - ) - (set_global $std/operator-overloading/tmp - (get_local $0) - ) - (if - (tee_local $0 - (i32.eqz - (i32.load - (get_global $std/operator-overloading/tmp) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/tmp) - ) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 289) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/incdec) - ) - (i32.const 1) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/incdec) - ) - (i32.const 2) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 290) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#postDec - (tee_local $0 - (get_global $std/operator-overloading/incdec) - ) - ) - ) - (set_global $std/operator-overloading/tmp - (get_local $0) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/tmp) - ) - (i32.const 1) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/tmp) - ) - (i32.const 2) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 293) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (tee_local $0 - (i32.eqz - (i32.load - (get_global $std/operator-overloading/incdec) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/incdec) - ) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 294) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/ais1 - (call $std/operator-overloading/Tester#constructor - (i32.const 1) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/ais1 - (call $std/operator-overloading/Tester#constructor - (i32.add - (i32.load - (tee_local $0 - (get_global $std/operator-overloading/ais1) - ) - ) - (i32.const 1) - ) - (i32.add - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - ) - (set_global $std/operator-overloading/ais2 - (call $std/operator-overloading/Tester#constructor - (i32.const 2) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/ais - (call $std/operator-overloading/Tester#constructor - (i32.add - (i32.load - (tee_local $0 - (get_global $std/operator-overloading/ais1) - ) - ) - (i32.load - (tee_local $1 - (get_global $std/operator-overloading/ais2) - ) - ) - ) - (i32.add - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - (if - (tee_local $1 - (i32.eq - (i32.load - (get_global $std/operator-overloading/ais) - ) - (i32.const 4) - ) - ) - (set_local $1 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/ais) - ) - (i32.const 6) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 314) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/aii1 - (call $std/operator-overloading/Tester#constructor - (i32.const 1) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/aii1 - (call $std/operator-overloading/Tester#constructor - (i32.add - (i32.load - (tee_local $1 - (get_global $std/operator-overloading/aii1) - ) - ) - (i32.const 1) - ) - (i32.add - (i32.load offset=4 - (get_local $1) - ) - (i32.const 1) - ) - ) - ) - (set_global $std/operator-overloading/aii2 - (call $std/operator-overloading/Tester#constructor - (i32.const 2) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/aii - (call $std/operator-overloading/Tester#constructor - (i32.add - (i32.load - (tee_local $1 - (get_global $std/operator-overloading/aii1) - ) - ) - (i32.load - (tee_local $0 - (get_global $std/operator-overloading/aii2) - ) - ) - ) - (i32.add - (i32.load offset=4 - (get_local $1) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/aii) - ) - (i32.const 4) - ) - ) - (set_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/aii) - ) - (i32.const 6) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 334) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 72 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 1 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/a1 + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/a2 + get_global $std/operator-overloading/a1 + get_global $std/operator-overloading/a2 + call $std/operator-overloading/Tester.add + set_global $std/operator-overloading/a + get_global $std/operator-overloading/a + i32.load + i32.const 3 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/a + i32.load offset=4 + i32.const 5 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 147 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/s1 + i32.const 2 + i32.const -3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/s2 + get_global $std/operator-overloading/s1 + get_global $std/operator-overloading/s2 + call $std/operator-overloading/Tester.sub + set_global $std/operator-overloading/s + get_global $std/operator-overloading/s + i32.load + i32.eqz + tee_local $0 + if + get_global $std/operator-overloading/s + i32.load offset=4 + i32.const 6 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 153 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 5 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/m1 + i32.const 3 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/m2 + get_global $std/operator-overloading/m1 + get_global $std/operator-overloading/m2 + call $std/operator-overloading/Tester.mul + set_global $std/operator-overloading/m + get_global $std/operator-overloading/m + i32.load + i32.const 6 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/m + i32.load offset=4 + i32.const 10 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 6 + i32.const 50 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/d1 + i32.const 3 + i32.const 10 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/d2 + get_global $std/operator-overloading/d1 + get_global $std/operator-overloading/d2 + call $std/operator-overloading/Tester.div + set_global $std/operator-overloading/d + get_global $std/operator-overloading/d + i32.load + i32.const 2 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/d + i32.load offset=4 + i32.const 5 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 10 + i32.const 10 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/f1 + i32.const 6 + i32.const 10 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/f2 + get_global $std/operator-overloading/f1 + get_global $std/operator-overloading/f2 + call $std/operator-overloading/Tester.mod + set_global $std/operator-overloading/f + get_global $std/operator-overloading/f + i32.load + i32.const 4 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/f + i32.load offset=4 + i32.eqz + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 171 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/p1 + i32.const 4 + i32.const 5 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/p2 + get_global $std/operator-overloading/p1 + get_global $std/operator-overloading/p2 + call $std/operator-overloading/Tester.pow + set_global $std/operator-overloading/p + get_global $std/operator-overloading/p + i32.load + i32.const 16 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/p + i32.load offset=4 + i32.const 243 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 177 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + i32.const 15 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/n1 + i32.const 15 + i32.const 255 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/n2 + get_global $std/operator-overloading/n1 + get_global $std/operator-overloading/n2 + call $std/operator-overloading/Tester.and + set_global $std/operator-overloading/n + get_global $std/operator-overloading/n + i32.load + i32.const 15 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/n + i32.load offset=4 + i32.const 15 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 183 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3855 + i32.const 255 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/o1 + i32.const 61680 + i32.const 0 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/o2 + get_global $std/operator-overloading/o1 + get_global $std/operator-overloading/o2 + call $std/operator-overloading/Tester.or + set_global $std/operator-overloading/o + get_global $std/operator-overloading/o + i32.load + i32.const 65535 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/o + i32.load offset=4 + i32.const 255 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 189 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + i32.const 255 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/x1 + i32.const 65280 + i32.const 0 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/x2 + get_global $std/operator-overloading/x1 + get_global $std/operator-overloading/x2 + call $std/operator-overloading/Tester.xor + set_global $std/operator-overloading/x + get_global $std/operator-overloading/x + i32.load + i32.const 65535 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/x + i32.load offset=4 + i32.const 255 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 195 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/eq1 + i32.const 1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/eq2 + get_global $std/operator-overloading/eq1 + get_global $std/operator-overloading/eq2 + call $std/operator-overloading/Tester.equals + set_global $std/operator-overloading/eq + get_global $std/operator-overloading/eq + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 201 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const 0 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/eq3 + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/eq4 + get_global $std/operator-overloading/eq3 + get_global $std/operator-overloading/eq4 + call $std/operator-overloading/Tester.equals + set_global $std/operator-overloading/eqf + get_global $std/operator-overloading/eqf + if + i32.const 0 + i32.const 8 + i32.const 207 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/eq1 + get_global $std/operator-overloading/eq2 + call $std/operator-overloading/Tester.notEquals + set_global $std/operator-overloading/eq + get_global $std/operator-overloading/eq + if + i32.const 0 + i32.const 8 + i32.const 211 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/eq3 + get_global $std/operator-overloading/eq4 + call $std/operator-overloading/Tester.notEquals + set_global $std/operator-overloading/eqf + get_global $std/operator-overloading/eqf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 215 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 2147483647 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/gt1 + i32.const 1 + i32.const 0 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/gt2 + get_global $std/operator-overloading/gt1 + get_global $std/operator-overloading/gt2 + call $std/operator-overloading/Tester.greater + set_global $std/operator-overloading/gt + get_global $std/operator-overloading/gt + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 221 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/gte1 + i32.const 2 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/gte2 + get_global $std/operator-overloading/gte1 + get_global $std/operator-overloading/gte2 + call $std/operator-overloading/Tester.greaterEquals + set_global $std/operator-overloading/gte + get_global $std/operator-overloading/gte + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 227 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 5 + i32.const -1 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/le1 + i32.const 6 + i32.const 6 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/le2 + get_global $std/operator-overloading/le1 + get_global $std/operator-overloading/le2 + call $std/operator-overloading/Tester.less + set_global $std/operator-overloading/le + get_global $std/operator-overloading/le + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 233 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/leq1 + i32.const 4 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/leq2 + get_global $std/operator-overloading/leq1 + get_global $std/operator-overloading/leq2 + call $std/operator-overloading/Tester.lessEquals + set_global $std/operator-overloading/leq + get_global $std/operator-overloading/leq + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 239 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + i32.const 16 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/shr + get_global $std/operator-overloading/shr + call $std/operator-overloading/Tester.shr + set_global $std/operator-overloading/sres + get_global $std/operator-overloading/sres + i32.load + i32.const 1 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/sres + i32.load offset=4 + i32.const 2 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 244 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -8 + i32.const -16 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/shu + get_global $std/operator-overloading/shu + call $std/operator-overloading/Tester.shu + set_global $std/operator-overloading/ures + get_global $std/operator-overloading/ures + i32.load + i32.const 536870911 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/ures + i32.load offset=4 + i32.const 536870910 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/shl + get_global $std/operator-overloading/shl + call $std/operator-overloading/Tester.shl + set_global $std/operator-overloading/sres + get_global $std/operator-overloading/sres + i32.load + i32.const 8 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/sres + i32.load offset=4 + i32.const 16 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 254 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/pos + get_global $std/operator-overloading/pos + call $std/operator-overloading/Tester.pos + set_global $std/operator-overloading/pres + get_global $std/operator-overloading/pres + i32.load + get_global $std/operator-overloading/pos + i32.load + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/pres + i32.load offset=4 + get_global $std/operator-overloading/pos + i32.load offset=4 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 259 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/neg + get_global $std/operator-overloading/neg + call $std/operator-overloading/Tester.neg + set_global $std/operator-overloading/nres + get_global $std/operator-overloading/nres + i32.load + i32.const 0 + get_global $std/operator-overloading/neg + i32.load + i32.sub + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/nres + i32.load offset=4 + i32.const 0 + get_global $std/operator-overloading/neg + i32.load offset=4 + i32.sub + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 264 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 255 + i32.const 16 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/not + get_global $std/operator-overloading/not + call $std/operator-overloading/Tester.not + set_global $std/operator-overloading/res + get_global $std/operator-overloading/res + i32.load + get_global $std/operator-overloading/not + i32.load + i32.const -1 + i32.xor + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/res + i32.load offset=4 + get_global $std/operator-overloading/not + i32.load offset=4 + i32.const -1 + i32.xor + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 269 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 0 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/excl + get_global $std/operator-overloading/excl + call $std/operator-overloading/Tester.excl + set_global $std/operator-overloading/bres + get_global $std/operator-overloading/bres + set_local $1 + get_global $std/operator-overloading/excl + i32.load + i32.eqz + tee_local $0 + if + get_global $std/operator-overloading/excl + i32.load offset=4 + i32.eqz + set_local $0 + end + get_local $1 + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 274 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/bres + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 275 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/incdec + get_global $std/operator-overloading/incdec + call $std/operator-overloading/Tester#inc + set_global $std/operator-overloading/incdec + get_global $std/operator-overloading/incdec + i32.load + i32.const 1 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/incdec + i32.load offset=4 + i32.const 2 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 281 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/incdec + call $std/operator-overloading/Tester#dec + set_global $std/operator-overloading/incdec + get_global $std/operator-overloading/incdec + i32.load + i32.eqz + tee_local $0 + if + get_global $std/operator-overloading/incdec + i32.load offset=4 + i32.const 1 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 284 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/incdec + get_global $std/operator-overloading/incdec + tee_local $0 + call $std/operator-overloading/Tester#postInc + set_global $std/operator-overloading/incdec + get_local $0 + set_global $std/operator-overloading/tmp + get_global $std/operator-overloading/tmp + i32.load + i32.eqz + tee_local $0 + if + get_global $std/operator-overloading/tmp + i32.load offset=4 + i32.const 1 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 289 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/incdec + i32.load + i32.const 1 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/incdec + i32.load offset=4 + i32.const 2 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 290 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/incdec + tee_local $0 + call $std/operator-overloading/Tester#postDec + set_global $std/operator-overloading/incdec + get_local $0 + set_global $std/operator-overloading/tmp + get_global $std/operator-overloading/tmp + i32.load + i32.const 1 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/tmp + i32.load offset=4 + i32.const 2 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 293 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/incdec + i32.load + i32.eqz + tee_local $0 + if + get_global $std/operator-overloading/incdec + i32.load offset=4 + i32.const 1 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 294 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/ais1 + get_global $std/operator-overloading/ais1 + tee_local $0 + i32.load + i32.const 1 + i32.add + get_local $0 + i32.load offset=4 + i32.const 1 + i32.add + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/ais1 + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/ais2 + get_global $std/operator-overloading/ais1 + tee_local $0 + i32.load + get_global $std/operator-overloading/ais2 + tee_local $1 + i32.load + i32.add + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.add + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/ais + get_global $std/operator-overloading/ais + i32.load + i32.const 4 + i32.eq + tee_local $1 + if + get_global $std/operator-overloading/ais + i32.load offset=4 + i32.const 6 + i32.eq + set_local $1 + end + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 314 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/aii1 + get_global $std/operator-overloading/aii1 + tee_local $1 + i32.load + i32.const 1 + i32.add + get_local $1 + i32.load offset=4 + i32.const 1 + i32.add + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/aii1 + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/aii2 + get_global $std/operator-overloading/aii1 + tee_local $1 + i32.load + get_global $std/operator-overloading/aii2 + tee_local $0 + i32.load + i32.add + get_local $1 + i32.load offset=4 + get_local $0 + i32.load offset=4 + i32.add + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/aii + get_global $std/operator-overloading/aii + i32.load + i32.const 4 + i32.eq + tee_local $0 + if + get_global $std/operator-overloading/aii + i32.load offset=4 + i32.const 6 + i32.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 334 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 33 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 33 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat index 3a108dbb..804142cb 100644 --- a/tests/compiler/std/operator-overloading.untouched.wat +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -6,11 +6,11 @@ (type $FFF (func (param f64 f64) (result f64))) (type $FiF (func (param f64 i32) (result f64))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\1b\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -96,384 +96,265 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/memory/memory.allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $std/operator-overloading/Tester#constructor (; 3 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $3 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $3) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (get_local $3) - ) - ) - ) - ) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $3 + get_local $3 + get_local $1 + i32.store + get_local $3 + get_local $2 + i32.store offset=4 + get_local $3 + end + tee_local $0 + end + tee_local $0 ) (func $std/operator-overloading/Tester.add (; 4 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.add - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.add - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.load + i32.add + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.add + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.sub (; 5 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.sub - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.load + i32.sub + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.sub + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.mul (; 6 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.mul - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.mul - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.load + i32.mul + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.mul + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.div (; 7 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.div_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.div_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.load + i32.div_s + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.div_s + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.mod (; 8 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.rem_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.rem_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.load + i32.rem_s + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.rem_s + call $std/operator-overloading/Tester#constructor ) (func $~lib/math/NativeMath.scalbn (; 9 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (local $3 i32) (local $4 i32) - (set_local $2 - (get_local $0) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (if - (i32.gt_s - (get_local $1) - (i32.const 1023) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.const 8988465674311579538646525e283) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (get_local $1) - (i32.const 1023) - ) - ) - (tee_local $4 - (i32.const 1023) - ) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.mul - (f64.const 2.2250738585072014e-308) - (f64.const 9007199254740992) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.sub - (i32.const 1022) - (i32.const 53) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const -1022) - ) - (block - (set_local $2 - (f64.mul - (get_local $2) - (f64.mul - (f64.const 2.2250738585072014e-308) - (f64.const 9007199254740992) - ) - ) - ) - (set_local $1 - (select - (tee_local $3 - (i32.sub - (i32.add - (get_local $1) - (i32.const 1022) - ) - (i32.const 53) - ) - ) - (tee_local $4 - (i32.const -1022) - ) - (i32.gt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - ) - ) - ) - (f64.mul - (get_local $2) - (f64.reinterpret/i64 - (i64.shl - (i64.add - (i64.const 1023) - (i64.extend_s/i32 - (get_local $1) - ) - ) - (i64.const 52) - ) - ) - ) + get_local $0 + set_local $2 + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $2 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $2 + get_local $1 + i32.const 1023 + i32.sub + set_local $1 + get_local $1 + i32.const 1023 + i32.gt_s + if + get_local $2 + f64.const 8988465674311579538646525e283 + f64.mul + set_local $2 + get_local $1 + i32.const 1023 + i32.sub + tee_local $3 + i32.const 1023 + tee_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + set_local $1 + end + else + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $2 + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + set_local $2 + get_local $1 + i32.const 1022 + i32.const 53 + i32.sub + i32.add + set_local $1 + get_local $1 + i32.const -1022 + i32.lt_s + if + get_local $2 + f64.const 2.2250738585072014e-308 + f64.const 9007199254740992 + f64.mul + f64.mul + set_local $2 + get_local $1 + i32.const 1022 + i32.add + i32.const 53 + i32.sub + tee_local $3 + i32.const -1022 + tee_local $4 + get_local $3 + get_local $4 + i32.gt_s + select + set_local $1 + end + end + end + get_local $2 + i64.const 1023 + get_local $1 + i64.extend_s/i32 + i64.add + i64.const 52 + i64.shl + f64.reinterpret/i64 + f64.mul ) (func $~lib/math/NativeMath.pow (; 10 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -515,3477 +396,2463 @@ (local $38 f64) (local $39 f64) (local $40 i32) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $4 - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_local $2 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $5 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $6 - (i32.wrap/i64 - (get_local $2) - ) - ) - (set_local $7 - (i32.and - (get_local $3) - (i32.const 2147483647) - ) - ) - (set_local $8 - (i32.and - (get_local $5) - (i32.const 2147483647) - ) - ) - (if - (i32.eq - (i32.or - (get_local $8) - (get_local $6) - ) - (i32.const 0) - ) - (return - (f64.const 1) - ) - ) - (if - (if (result i32) - (tee_local $9 - (if (result i32) - (tee_local $9 - (if (result i32) - (tee_local $9 - (i32.gt_s - (get_local $7) - (i32.const 2146435072) - ) - ) - (get_local $9) - (if (result i32) - (tee_local $9 - (i32.eq - (get_local $7) - (i32.const 2146435072) - ) - ) - (i32.ne - (get_local $4) - (i32.const 0) - ) - (get_local $9) - ) - ) - ) - (get_local $9) - (i32.gt_s - (get_local $8) - (i32.const 2146435072) - ) - ) - ) - (get_local $9) - (if (result i32) - (tee_local $9 - (i32.eq - (get_local $8) - (i32.const 2146435072) - ) - ) - (i32.ne - (get_local $6) - (i32.const 0) - ) - (get_local $9) - ) - ) - (return - (f64.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $10 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (if - (i32.ge_s - (get_local $8) - (i32.const 1128267776) - ) - (set_local $10 - (i32.const 2) - ) - (if - (i32.ge_s - (get_local $8) - (i32.const 1072693248) - ) - (block - (set_local $11 - (i32.sub - (i32.shr_s - (get_local $8) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $9 - (i32.sub - (select - (i32.const 52) - (i32.const 20) - (i32.gt_s - (get_local $11) - (i32.const 20) - ) - ) - (get_local $11) - ) - ) - (set_local $12 - (select - (get_local $6) - (get_local $8) - (i32.gt_s - (get_local $11) - (i32.const 20) - ) - ) - ) - (set_local $13 - (i32.shr_s - (get_local $12) - (get_local $9) - ) - ) - (if - (i32.eq - (i32.shl - (get_local $13) - (get_local $9) - ) - (get_local $12) - ) - (set_local $10 - (i32.sub - (i32.const 2) - (i32.and - (get_local $13) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 0) - ) - (block - (if - (i32.eq - (get_local $8) - (i32.const 2146435072) - ) - (block - (if - (i32.eq - (i32.or - (i32.sub - (get_local $7) - (i32.const 1072693248) - ) - (get_local $4) - ) - (i32.const 0) - ) - (return - (f64.const nan:0x8000000000000) - ) - (if - (i32.ge_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (get_local $1) - (f64.const 0) - ) - ) - (return - (if (result f64) - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (f64.const 0) - (f64.neg - (get_local $1) - ) - ) - ) - ) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 1072693248) - ) - (block - (if - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (return - (f64.div - (f64.const 1) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1073741824) - ) - (return - (f64.mul - (get_local $0) - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1071644672) - ) - (if - (i32.ge_s - (get_local $3) - (i32.const 0) - ) - (return - (f64.sqrt - (get_local $0) - ) - ) - ) - ) - ) - ) - (set_local $14 - (f64.abs - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (if - (if (result i32) - (tee_local $13 - (if (result i32) - (tee_local $13 - (i32.eq - (get_local $7) - (i32.const 2146435072) - ) - ) - (get_local $13) - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - ) - (get_local $13) - (i32.eq - (get_local $7) - (i32.const 1072693248) - ) - ) - (block - (set_local $15 - (get_local $14) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (set_local $15 - (f64.div - (f64.const 1) - (get_local $15) - ) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (if - (i32.eq - (i32.or - (i32.sub - (get_local $7) - (i32.const 1072693248) - ) - (get_local $10) - ) - (i32.const 0) - ) - (set_local $15 - (f64.div - (f64.sub - (get_local $15) - (get_local $15) - ) - (f64.sub - (get_local $15) - (get_local $15) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (i32.const 1) - ) - (set_local $15 - (f64.neg - (get_local $15) - ) - ) - ) - ) - ) - (return - (get_local $15) - ) - ) - ) - ) - (set_local $16 - (f64.const 1) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (block - (if - (i32.eq - (get_local $10) - (i32.const 0) - ) - (return - (f64.div - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.sub - (get_local $0) - (get_local $0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (i32.const 1) - ) - (set_local $16 - (f64.const -1) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $8) - (i32.const 1105199104) - ) - (block - (if - (i32.gt_s - (get_local $8) - (i32.const 1139802112) - ) - (block - (if - (i32.le_s - (get_local $7) - (i32.const 1072693247) - ) - (return - (if (result f64) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.const 1.e+300) - (f64.const 1.e+300) - ) - (f64.mul - (f64.const 1e-300) - (f64.const 1e-300) - ) - ) - ) - ) - (if - (i32.ge_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.const 1.e+300) - (f64.const 1.e+300) - ) - (f64.mul - (f64.const 1e-300) - (f64.const 1e-300) - ) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 1072693247) - ) - (return - (if (result f64) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - (if - (i32.gt_s - (get_local $7) - (i32.const 1072693248) - ) - (return - (if (result f64) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - (set_local $22 - (f64.sub - (get_local $14) - (f64.const 1) - ) - ) - (set_local $25 - (f64.mul - (f64.mul - (get_local $22) - (get_local $22) - ) - (f64.sub - (f64.const 0.5) - (f64.mul - (get_local $22) - (f64.sub - (f64.const 0.3333333333333333) - (f64.mul - (get_local $22) - (f64.const 0.25) - ) - ) - ) - ) - ) - ) - (set_local $23 - (f64.mul - (f64.const 1.4426950216293335) - (get_local $22) - ) - ) - (set_local $24 - (f64.sub - (f64.mul - (get_local $22) - (f64.const 1.9259629911266175e-08) - ) - (f64.mul - (get_local $25) - (f64.const 1.4426950408889634) - ) - ) - ) - (set_local $17 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $17 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $17) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $18 - (f64.sub - (get_local $24) - (f64.sub - (get_local $17) - (get_local $23) - ) - ) - ) - ) - (block - (set_local $27 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 1048576) - ) - (block - (set_local $14 - (f64.mul - (get_local $14) - (f64.const 9007199254740992) - ) - ) - (set_local $27 - (i32.sub - (get_local $27) - (i32.const 53) - ) - ) - (set_local $7 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $14) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (set_local $27 - (i32.add - (get_local $27) - (i32.sub - (i32.shr_s - (get_local $7) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - ) - (set_local $26 - (i32.and - (get_local $7) - (i32.const 1048575) - ) - ) - (set_local $7 - (i32.or - (get_local $26) - (i32.const 1072693248) - ) - ) - (if - (i32.le_s - (get_local $26) - (i32.const 235662) - ) - (set_local $11 - (i32.const 0) - ) - (if - (i32.lt_s - (get_local $26) - (i32.const 767610) - ) - (set_local $11 - (i32.const 1) - ) - (block - (set_local $11 - (i32.const 0) - ) - (set_local $27 - (i32.add - (get_local $27) - (i32.const 1) - ) - ) - (set_local $7 - (i32.sub - (get_local $7) - (i32.const 1048576) - ) - ) - ) - ) - ) - (set_local $14 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $14) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $7) - ) - (i64.const 32) - ) - ) - ) - ) - (set_local $34 - (select - (f64.const 1.5) - (f64.const 1) - (get_local $11) - ) - ) - (set_local $23 - (f64.sub - (get_local $14) - (get_local $34) - ) - ) - (set_local $24 - (f64.div - (f64.const 1) - (f64.add - (get_local $14) - (get_local $34) - ) - ) - ) - (set_local $28 - (f64.mul - (get_local $23) - (get_local $24) - ) - ) - (set_local $30 - (get_local $28) - ) - (set_local $30 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $30) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $32 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.add - (i32.add - (i32.or - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - (i32.const 536870912) - ) - (i32.const 524288) - ) - (i32.shl - (get_local $11) - (i32.const 18) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $33 - (f64.sub - (get_local $14) - (f64.sub - (get_local $32) - (get_local $34) - ) - ) - ) - (set_local $31 - (f64.mul - (get_local $24) - (f64.sub - (f64.sub - (get_local $23) - (f64.mul - (get_local $30) - (get_local $32) - ) - ) - (f64.mul - (get_local $30) - (get_local $33) - ) - ) - ) - ) - (set_local $29 - (f64.mul - (get_local $28) - (get_local $28) - ) - ) - (set_local $21 - (f64.mul - (f64.mul - (get_local $29) - (get_local $29) - ) - (f64.add - (f64.const 0.5999999999999946) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.4285714285785502) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.33333332981837743) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.272728123808534) - (f64.mul - (get_local $29) - (f64.add - (f64.const 0.23066074577556175) - (f64.mul - (get_local $29) - (f64.const 0.20697501780033842) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $21 - (f64.add - (get_local $21) - (f64.mul - (get_local $31) - (f64.add - (get_local $30) - (get_local $28) - ) - ) - ) - ) - (set_local $29 - (f64.mul - (get_local $30) - (get_local $30) - ) - ) - (set_local $32 - (f64.add - (f64.add - (f64.const 3) - (get_local $29) - ) - (get_local $21) - ) - ) - (set_local $32 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $32) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $33 - (f64.sub - (get_local $21) - (f64.sub - (f64.sub - (get_local $32) - (f64.const 3) - ) - (get_local $29) - ) - ) - ) - (set_local $23 - (f64.mul - (get_local $30) - (get_local $32) - ) - ) - (set_local $24 - (f64.add - (f64.mul - (get_local $31) - (get_local $32) - ) - (f64.mul - (get_local $33) - (get_local $28) - ) - ) - ) - (set_local $19 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $19 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $19) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $20 - (f64.sub - (get_local $24) - (f64.sub - (get_local $19) - (get_local $23) - ) - ) - ) - (set_local $35 - (f64.mul - (f64.const 0.9617967009544373) - (get_local $19) - ) - ) - (set_local $36 - (select - (f64.const 1.350039202129749e-08) - (f64.const 0) - (get_local $11) - ) - ) - (set_local $37 - (f64.add - (f64.add - (f64.mul - (f64.const -7.028461650952758e-09) - (get_local $19) - ) - (f64.mul - (get_local $20) - (f64.const 0.9617966939259756) - ) - ) - (get_local $36) - ) - ) - (set_local $22 - (f64.convert_s/i32 - (get_local $27) - ) - ) - (set_local $38 - (select - (f64.const 0.5849624872207642) - (f64.const 0) - (get_local $11) - ) - ) - (set_local $17 - (f64.add - (f64.add - (f64.add - (get_local $35) - (get_local $37) - ) - (get_local $38) - ) - (get_local $22) - ) - ) - (set_local $17 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $17) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $18 - (f64.sub - (get_local $37) - (f64.sub - (f64.sub - (f64.sub - (get_local $17) - (get_local $22) - ) - (get_local $38) - ) - (get_local $35) - ) - ) - ) - ) - ) - (set_local $39 - (get_local $1) - ) - (set_local $39 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $39) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $20 - (f64.add - (f64.mul - (f64.sub - (get_local $1) - (get_local $39) - ) - (get_local $17) - ) - (f64.mul - (get_local $1) - (get_local $18) - ) - ) - ) - (set_local $19 - (f64.mul - (get_local $39) - (get_local $17) - ) - ) - (set_local $15 - (f64.add - (get_local $20) - (get_local $19) - ) - ) - (set_local $2 - (i64.reinterpret/f64 - (get_local $15) - ) - ) - (set_local $26 - (i32.wrap/i64 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - ) - (set_local $40 - (i32.wrap/i64 - (get_local $2) - ) - ) - (if - (i32.ge_s - (get_local $26) - (i32.const 1083179008) - ) - (block - (if - (i32.ne - (i32.or - (i32.sub - (get_local $26) - (i32.const 1083179008) - ) - (get_local $40) - ) - (i32.const 0) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - ) - ) - (if - (f64.gt - (f64.add - (get_local $20) - (f64.const 8.008566259537294e-17) - ) - (f64.sub - (get_local $15) - (get_local $19) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1.e+300) - ) - (f64.const 1.e+300) - ) - ) - ) - ) - (if - (i32.ge_s - (i32.and - (get_local $26) - (i32.const 2147483647) - ) - (i32.const 1083231232) - ) - (block - (if - (i32.ne - (i32.or - (i32.sub - (get_local $26) - (i32.const -1064252416) - ) - (get_local $40) - ) - (i32.const 0) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - (if - (f64.le - (get_local $20) - (f64.sub - (get_local $15) - (get_local $19) - ) - ) - (return - (f64.mul - (f64.mul - (get_local $16) - (f64.const 1e-300) - ) - (f64.const 1e-300) - ) - ) - ) - ) - ) - ) - (set_local $40 - (i32.and - (get_local $26) - (i32.const 2147483647) - ) - ) - (set_local $11 - (i32.sub - (i32.shr_s - (get_local $40) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $27 - (i32.const 0) - ) - (if - (i32.gt_s - (get_local $40) - (i32.const 1071644672) - ) - (block - (set_local $27 - (i32.add - (get_local $26) - (i32.shr_s - (i32.const 1048576) - (i32.add - (get_local $11) - (i32.const 1) - ) - ) - ) - ) - (set_local $11 - (i32.sub - (i32.shr_s - (i32.and - (get_local $27) - (i32.const 2147483647) - ) - (i32.const 20) - ) - (i32.const 1023) - ) - ) - (set_local $22 - (f64.const 0) - ) - (set_local $22 - (f64.reinterpret/i64 - (i64.shl - (i64.extend_s/i32 - (i32.and - (get_local $27) - (i32.xor - (i32.shr_s - (i32.const 1048575) - (get_local $11) - ) - (i32.const -1) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (set_local $27 - (i32.shr_s - (i32.or - (i32.and - (get_local $27) - (i32.const 1048575) - ) - (i32.const 1048576) - ) - (i32.sub - (i32.const 20) - (get_local $11) - ) - ) - ) - (if - (i32.lt_s - (get_local $26) - (i32.const 0) - ) - (set_local $27 - (i32.sub - (i32.const 0) - (get_local $27) - ) - ) - ) - (set_local $19 - (f64.sub - (get_local $19) - (get_local $22) - ) - ) - ) - ) - (set_local $22 - (f64.add - (get_local $20) - (get_local $19) - ) - ) - (set_local $22 - (f64.reinterpret/i64 - (i64.and - (i64.reinterpret/f64 - (get_local $22) - ) - (i64.const -4294967296) - ) - ) - ) - (set_local $23 - (f64.mul - (get_local $22) - (f64.const 0.6931471824645996) - ) - ) - (set_local $24 - (f64.add - (f64.mul - (f64.sub - (get_local $20) - (f64.sub - (get_local $22) - (get_local $19) - ) - ) - (f64.const 0.6931471805599453) - ) - (f64.mul - (get_local $22) - (f64.const -1.904654299957768e-09) - ) - ) - ) - (set_local $15 - (f64.add - (get_local $23) - (get_local $24) - ) - ) - (set_local $25 - (f64.sub - (get_local $24) - (f64.sub - (get_local $15) - (get_local $23) - ) - ) - ) - (set_local $22 - (f64.mul - (get_local $15) - (get_local $15) - ) - ) - (set_local $17 - (f64.sub - (get_local $15) - (f64.mul - (get_local $22) - (f64.add - (f64.const 0.16666666666666602) - (f64.mul - (get_local $22) - (f64.add - (f64.const -2.7777777777015593e-03) - (f64.mul - (get_local $22) - (f64.add - (f64.const 6.613756321437934e-05) - (f64.mul - (get_local $22) - (f64.add - (f64.const -1.6533902205465252e-06) - (f64.mul - (get_local $22) - (f64.const 4.1381367970572385e-08) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $21 - (f64.sub - (f64.div - (f64.mul - (get_local $15) - (get_local $17) - ) - (f64.sub - (get_local $17) - (f64.const 2) - ) - ) - (f64.add - (get_local $25) - (f64.mul - (get_local $15) - (get_local $25) - ) - ) - ) - ) - (set_local $15 - (f64.sub - (f64.const 1) - (f64.sub - (get_local $21) - (get_local $15) - ) - ) - ) - (set_local $26 - (i32.wrap/i64 - (i64.shr_u - (i64.reinterpret/f64 - (get_local $15) - ) - (i64.const 32) - ) - ) - ) - (set_local $26 - (i32.add - (get_local $26) - (i32.shl - (get_local $27) - (i32.const 20) - ) - ) - ) - (if - (i32.le_s - (i32.shr_s - (get_local $26) - (i32.const 20) - ) - (i32.const 0) - ) - (set_local $15 - (call $~lib/math/NativeMath.scalbn - (get_local $15) - (get_local $27) - ) - ) - (set_local $15 - (f64.reinterpret/i64 - (i64.or - (i64.and - (i64.reinterpret/f64 - (get_local $15) - ) - (i64.const 4294967295) - ) - (i64.shl - (i64.extend_s/i32 - (get_local $26) - ) - (i64.const 32) - ) - ) - ) - ) - ) - (f64.mul - (get_local $16) - (get_local $15) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $3 + get_local $2 + i32.wrap/i64 + set_local $4 + get_local $1 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $5 + get_local $2 + i32.wrap/i64 + set_local $6 + get_local $3 + i32.const 2147483647 + i32.and + set_local $7 + get_local $5 + i32.const 2147483647 + i32.and + set_local $8 + get_local $8 + get_local $6 + i32.or + i32.const 0 + i32.eq + if + f64.const 1 + return + end + get_local $7 + i32.const 2146435072 + i32.gt_s + tee_local $9 + if (result i32) + get_local $9 + else + get_local $7 + i32.const 2146435072 + i32.eq + tee_local $9 + if (result i32) + get_local $4 + i32.const 0 + i32.ne + else + get_local $9 + end + end + tee_local $9 + if (result i32) + get_local $9 + else + get_local $8 + i32.const 2146435072 + i32.gt_s + end + tee_local $9 + if (result i32) + get_local $9 + else + get_local $8 + i32.const 2146435072 + i32.eq + tee_local $9 + if (result i32) + get_local $6 + i32.const 0 + i32.ne + else + get_local $9 + end + end + if + get_local $0 + get_local $1 + f64.add + return + end + i32.const 0 + set_local $10 + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $8 + i32.const 1128267776 + i32.ge_s + if + i32.const 2 + set_local $10 + else + get_local $8 + i32.const 1072693248 + i32.ge_s + if + get_local $8 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + i32.const 52 + i32.const 20 + get_local $11 + i32.const 20 + i32.gt_s + select + get_local $11 + i32.sub + set_local $9 + get_local $6 + get_local $8 + get_local $11 + i32.const 20 + i32.gt_s + select + set_local $12 + get_local $12 + get_local $9 + i32.shr_s + set_local $13 + get_local $13 + get_local $9 + i32.shl + get_local $12 + i32.eq + if + i32.const 2 + get_local $13 + i32.const 1 + i32.and + i32.sub + set_local $10 + end + end + end + end + get_local $6 + i32.const 0 + i32.eq + if + get_local $8 + i32.const 2146435072 + i32.eq + if + get_local $7 + i32.const 1072693248 + i32.sub + get_local $4 + i32.or + i32.const 0 + i32.eq + if + f64.const nan:0x8000000000000 + return + else + get_local $7 + i32.const 1072693248 + i32.ge_s + if + get_local $5 + i32.const 0 + i32.ge_s + if (result f64) + get_local $1 + else + f64.const 0 + end + return + else + get_local $5 + i32.const 0 + i32.ge_s + if (result f64) + f64.const 0 + else + get_local $1 + f64.neg + end + return + end + unreachable + end + unreachable + unreachable + end + get_local $8 + i32.const 1072693248 + i32.eq + if + get_local $5 + i32.const 0 + i32.ge_s + if + get_local $0 + return + end + f64.const 1 + get_local $0 + f64.div + return + end + get_local $5 + i32.const 1073741824 + i32.eq + if + get_local $0 + get_local $0 + f64.mul + return + end + get_local $5 + i32.const 1071644672 + i32.eq + if + get_local $3 + i32.const 0 + i32.ge_s + if + get_local $0 + f64.sqrt + return + end + end + end + get_local $0 + f64.abs + set_local $14 + get_local $4 + i32.const 0 + i32.eq + if + get_local $7 + i32.const 2146435072 + i32.eq + tee_local $13 + if (result i32) + get_local $13 + else + get_local $7 + i32.const 0 + i32.eq + end + tee_local $13 + if (result i32) + get_local $13 + else + get_local $7 + i32.const 1072693248 + i32.eq + end + if + get_local $14 + set_local $15 + get_local $5 + i32.const 0 + i32.lt_s + if + f64.const 1 + get_local $15 + f64.div + set_local $15 + end + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $7 + i32.const 1072693248 + i32.sub + get_local $10 + i32.or + i32.const 0 + i32.eq + if + get_local $15 + get_local $15 + f64.sub + get_local $15 + get_local $15 + f64.sub + f64.div + set_local $15 + else + get_local $10 + i32.const 1 + i32.eq + if + get_local $15 + f64.neg + set_local $15 + end + end + end + get_local $15 + return + end + end + f64.const 1 + set_local $16 + get_local $3 + i32.const 0 + i32.lt_s + if + get_local $10 + i32.const 0 + i32.eq + if + get_local $0 + get_local $0 + f64.sub + get_local $0 + get_local $0 + f64.sub + f64.div + return + end + get_local $10 + i32.const 1 + i32.eq + if + f64.const -1 + set_local $16 + end + end + get_local $8 + i32.const 1105199104 + i32.gt_s + if + get_local $8 + i32.const 1139802112 + i32.gt_s + if + get_local $7 + i32.const 1072693247 + i32.le_s + if + get_local $5 + i32.const 0 + i32.lt_s + if (result f64) + f64.const 1.e+300 + f64.const 1.e+300 + f64.mul + else + f64.const 1e-300 + f64.const 1e-300 + f64.mul + end + return + end + get_local $7 + i32.const 1072693248 + i32.ge_s + if + get_local $5 + i32.const 0 + i32.gt_s + if (result f64) + f64.const 1.e+300 + f64.const 1.e+300 + f64.mul + else + f64.const 1e-300 + f64.const 1e-300 + f64.mul + end + return + end + end + get_local $7 + i32.const 1072693247 + i32.lt_s + if + get_local $5 + i32.const 0 + i32.lt_s + if (result f64) + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + return + end + get_local $7 + i32.const 1072693248 + i32.gt_s + if + get_local $5 + i32.const 0 + i32.gt_s + if (result f64) + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + else + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + end + return + end + get_local $14 + f64.const 1 + f64.sub + set_local $22 + get_local $22 + get_local $22 + f64.mul + f64.const 0.5 + get_local $22 + f64.const 0.3333333333333333 + get_local $22 + f64.const 0.25 + f64.mul + f64.sub + f64.mul + f64.sub + f64.mul + set_local $25 + f64.const 1.4426950216293335 + get_local $22 + f64.mul + set_local $23 + get_local $22 + f64.const 1.9259629911266175e-08 + f64.mul + get_local $25 + f64.const 1.4426950408889634 + f64.mul + f64.sub + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $17 + get_local $17 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $17 + get_local $24 + get_local $17 + get_local $23 + f64.sub + f64.sub + set_local $18 + else + i32.const 0 + set_local $27 + get_local $7 + i32.const 1048576 + i32.lt_s + if + get_local $14 + f64.const 9007199254740992 + f64.mul + set_local $14 + get_local $27 + i32.const 53 + i32.sub + set_local $27 + get_local $14 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $7 + end + get_local $27 + get_local $7 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + i32.add + set_local $27 + get_local $7 + i32.const 1048575 + i32.and + set_local $26 + get_local $26 + i32.const 1072693248 + i32.or + set_local $7 + get_local $26 + i32.const 235662 + i32.le_s + if + i32.const 0 + set_local $11 + else + get_local $26 + i32.const 767610 + i32.lt_s + if + i32.const 1 + set_local $11 + else + i32.const 0 + set_local $11 + get_local $27 + i32.const 1 + i32.add + set_local $27 + get_local $7 + i32.const 1048576 + i32.sub + set_local $7 + end + end + get_local $14 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $7 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + set_local $14 + f64.const 1.5 + f64.const 1 + get_local $11 + select + set_local $34 + get_local $14 + get_local $34 + f64.sub + set_local $23 + f64.const 1 + get_local $14 + get_local $34 + f64.add + f64.div + set_local $24 + get_local $23 + get_local $24 + f64.mul + set_local $28 + get_local $28 + set_local $30 + get_local $30 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $30 + get_local $7 + i32.const 1 + i32.shr_s + i32.const 536870912 + i32.or + i32.const 524288 + i32.add + get_local $11 + i32.const 18 + i32.shl + i32.add + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $32 + get_local $14 + get_local $32 + get_local $34 + f64.sub + f64.sub + set_local $33 + get_local $24 + get_local $23 + get_local $30 + get_local $32 + f64.mul + f64.sub + get_local $30 + get_local $33 + f64.mul + f64.sub + f64.mul + set_local $31 + get_local $28 + get_local $28 + f64.mul + set_local $29 + get_local $29 + get_local $29 + f64.mul + f64.const 0.5999999999999946 + get_local $29 + f64.const 0.4285714285785502 + get_local $29 + f64.const 0.33333332981837743 + get_local $29 + f64.const 0.272728123808534 + get_local $29 + f64.const 0.23066074577556175 + get_local $29 + f64.const 0.20697501780033842 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + set_local $21 + get_local $21 + get_local $31 + get_local $30 + get_local $28 + f64.add + f64.mul + f64.add + set_local $21 + get_local $30 + get_local $30 + f64.mul + set_local $29 + f64.const 3 + get_local $29 + f64.add + get_local $21 + f64.add + set_local $32 + get_local $32 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $32 + get_local $21 + get_local $32 + f64.const 3 + f64.sub + get_local $29 + f64.sub + f64.sub + set_local $33 + get_local $30 + get_local $32 + f64.mul + set_local $23 + get_local $31 + get_local $32 + f64.mul + get_local $33 + get_local $28 + f64.mul + f64.add + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $19 + get_local $19 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $19 + get_local $24 + get_local $19 + get_local $23 + f64.sub + f64.sub + set_local $20 + f64.const 0.9617967009544373 + get_local $19 + f64.mul + set_local $35 + f64.const 1.350039202129749e-08 + f64.const 0 + get_local $11 + select + set_local $36 + f64.const -7.028461650952758e-09 + get_local $19 + f64.mul + get_local $20 + f64.const 0.9617966939259756 + f64.mul + f64.add + get_local $36 + f64.add + set_local $37 + get_local $27 + f64.convert_s/i32 + set_local $22 + f64.const 0.5849624872207642 + f64.const 0 + get_local $11 + select + set_local $38 + get_local $35 + get_local $37 + f64.add + get_local $38 + f64.add + get_local $22 + f64.add + set_local $17 + get_local $17 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $17 + get_local $37 + get_local $17 + get_local $22 + f64.sub + get_local $38 + f64.sub + get_local $35 + f64.sub + f64.sub + set_local $18 + end + get_local $1 + set_local $39 + get_local $39 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $39 + get_local $1 + get_local $39 + f64.sub + get_local $17 + f64.mul + get_local $1 + get_local $18 + f64.mul + f64.add + set_local $20 + get_local $39 + get_local $17 + f64.mul + set_local $19 + get_local $20 + get_local $19 + f64.add + set_local $15 + get_local $15 + i64.reinterpret/f64 + set_local $2 + get_local $2 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $26 + get_local $2 + i32.wrap/i64 + set_local $40 + get_local $26 + i32.const 1083179008 + i32.ge_s + if + get_local $26 + i32.const 1083179008 + i32.sub + get_local $40 + i32.or + i32.const 0 + i32.ne + if + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + return + end + get_local $20 + f64.const 8.008566259537294e-17 + f64.add + get_local $15 + get_local $19 + f64.sub + f64.gt + if + get_local $16 + f64.const 1.e+300 + f64.mul + f64.const 1.e+300 + f64.mul + return + end + else + get_local $26 + i32.const 2147483647 + i32.and + i32.const 1083231232 + i32.ge_s + if + get_local $26 + i32.const -1064252416 + i32.sub + get_local $40 + i32.or + i32.const 0 + i32.ne + if + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + get_local $20 + get_local $15 + get_local $19 + f64.sub + f64.le + if + get_local $16 + f64.const 1e-300 + f64.mul + f64.const 1e-300 + f64.mul + return + end + end + end + get_local $26 + i32.const 2147483647 + i32.and + set_local $40 + get_local $40 + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + i32.const 0 + set_local $27 + get_local $40 + i32.const 1071644672 + i32.gt_s + if + get_local $26 + i32.const 1048576 + get_local $11 + i32.const 1 + i32.add + i32.shr_s + i32.add + set_local $27 + get_local $27 + i32.const 2147483647 + i32.and + i32.const 20 + i32.shr_s + i32.const 1023 + i32.sub + set_local $11 + f64.const 0 + set_local $22 + get_local $27 + i32.const 1048575 + get_local $11 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i64.extend_s/i32 + i64.const 32 + i64.shl + f64.reinterpret/i64 + set_local $22 + get_local $27 + i32.const 1048575 + i32.and + i32.const 1048576 + i32.or + i32.const 20 + get_local $11 + i32.sub + i32.shr_s + set_local $27 + get_local $26 + i32.const 0 + i32.lt_s + if + i32.const 0 + get_local $27 + i32.sub + set_local $27 + end + get_local $19 + get_local $22 + f64.sub + set_local $19 + end + get_local $20 + get_local $19 + f64.add + set_local $22 + get_local $22 + i64.reinterpret/f64 + i64.const -4294967296 + i64.and + f64.reinterpret/i64 + set_local $22 + get_local $22 + f64.const 0.6931471824645996 + f64.mul + set_local $23 + get_local $20 + get_local $22 + get_local $19 + f64.sub + f64.sub + f64.const 0.6931471805599453 + f64.mul + get_local $22 + f64.const -1.904654299957768e-09 + f64.mul + f64.add + set_local $24 + get_local $23 + get_local $24 + f64.add + set_local $15 + get_local $24 + get_local $15 + get_local $23 + f64.sub + f64.sub + set_local $25 + get_local $15 + get_local $15 + f64.mul + set_local $22 + get_local $15 + get_local $22 + f64.const 0.16666666666666602 + get_local $22 + f64.const -2.7777777777015593e-03 + get_local $22 + f64.const 6.613756321437934e-05 + get_local $22 + f64.const -1.6533902205465252e-06 + get_local $22 + f64.const 4.1381367970572385e-08 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.sub + set_local $17 + get_local $15 + get_local $17 + f64.mul + get_local $17 + f64.const 2 + f64.sub + f64.div + get_local $25 + get_local $15 + get_local $25 + f64.mul + f64.add + f64.sub + set_local $21 + f64.const 1 + get_local $21 + get_local $15 + f64.sub + f64.sub + set_local $15 + get_local $15 + i64.reinterpret/f64 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $26 + get_local $26 + get_local $27 + i32.const 20 + i32.shl + i32.add + set_local $26 + get_local $26 + i32.const 20 + i32.shr_s + i32.const 0 + i32.le_s + if + get_local $15 + get_local $27 + call $~lib/math/NativeMath.scalbn + set_local $15 + else + get_local $15 + i64.reinterpret/f64 + i64.const 4294967295 + i64.and + get_local $26 + i64.extend_s/i32 + i64.const 32 + i64.shl + i64.or + f64.reinterpret/i64 + set_local $15 + end + get_local $16 + get_local $15 + f64.mul ) (func $std/operator-overloading/Tester.pow (; 11 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.trunc_s/f64 - (call $~lib/math/NativeMath.pow - (f64.convert_s/i32 - (i32.load - (get_local $0) - ) - ) - (f64.convert_s/i32 - (i32.load - (get_local $1) - ) - ) - ) - ) - (i32.trunc_s/f64 - (call $~lib/math/NativeMath.pow - (f64.convert_s/i32 - (i32.load offset=4 - (get_local $0) - ) - ) - (f64.convert_s/i32 - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - ) + i32.const 0 + get_local $0 + i32.load + f64.convert_s/i32 + get_local $1 + i32.load + f64.convert_s/i32 + call $~lib/math/NativeMath.pow + i32.trunc_s/f64 + get_local $0 + i32.load offset=4 + f64.convert_s/i32 + get_local $1 + i32.load offset=4 + f64.convert_s/i32 + call $~lib/math/NativeMath.pow + i32.trunc_s/f64 + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.and (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.and - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.and - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.load + i32.and + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.and + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.or (; 13 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.or - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.or - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.load + i32.or + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.or + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.xor (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.xor - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.xor - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.load + i32.xor + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.xor + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.equals (; 15 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if (result i32) - (tee_local $2 - (i32.eq - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (i32.eq - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (get_local $2) - ) + get_local $0 + i32.load + get_local $1 + i32.load + i32.eq + tee_local $2 + if (result i32) + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.eq + else + get_local $2 + end ) (func $std/operator-overloading/Tester.notEquals (; 16 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if (result i32) - (tee_local $2 - (i32.ne - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (i32.ne - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (get_local $2) - ) + get_local $0 + i32.load + get_local $1 + i32.load + i32.ne + tee_local $2 + if (result i32) + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.ne + else + get_local $2 + end ) (func $std/operator-overloading/Tester.greater (; 17 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if (result i32) - (tee_local $2 - (i32.gt_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (i32.gt_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (get_local $2) - ) + get_local $0 + i32.load + get_local $1 + i32.load + i32.gt_s + tee_local $2 + if (result i32) + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.gt_s + else + get_local $2 + end ) (func $std/operator-overloading/Tester.greaterEquals (; 18 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if (result i32) - (tee_local $2 - (i32.ge_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (i32.ge_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (get_local $2) - ) + get_local $0 + i32.load + get_local $1 + i32.load + i32.ge_s + tee_local $2 + if (result i32) + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.ge_s + else + get_local $2 + end ) (func $std/operator-overloading/Tester.less (; 19 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if (result i32) - (tee_local $2 - (i32.lt_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (i32.lt_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (get_local $2) - ) + get_local $0 + i32.load + get_local $1 + i32.load + i32.lt_s + tee_local $2 + if (result i32) + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.lt_s + else + get_local $2 + end ) (func $std/operator-overloading/Tester.lessEquals (; 20 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if (result i32) - (tee_local $2 - (i32.le_s - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - ) - (i32.le_s - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (get_local $2) - ) + get_local $0 + i32.load + get_local $1 + i32.load + i32.le_s + tee_local $2 + if (result i32) + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.le_s + else + get_local $2 + end ) (func $std/operator-overloading/Tester.shr (; 21 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.shr_s - (i32.load - (get_local $0) - ) - (get_local $1) - ) - (i32.shr_s - (i32.load offset=4 - (get_local $0) - ) - (get_local $1) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.shr_s + get_local $0 + i32.load offset=4 + get_local $1 + i32.shr_s + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.shu (; 22 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.shr_u - (i32.load - (get_local $0) - ) - (get_local $1) - ) - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (get_local $1) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.shr_u + get_local $0 + i32.load offset=4 + get_local $1 + i32.shr_u + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.shl (; 23 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.shl - (i32.load - (get_local $0) - ) - (get_local $1) - ) - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (get_local $1) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.shl + get_local $0 + i32.load offset=4 + get_local $1 + i32.shl + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.pos (; 24 ;) (type $ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.load - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) + i32.const 0 + get_local $0 + i32.load + get_local $0 + i32.load offset=4 + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.neg (; 25 ;) (type $ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.sub - (i32.const 0) - (i32.load - (get_local $0) - ) - ) - (i32.sub - (i32.const 0) - (i32.load offset=4 - (get_local $0) - ) - ) - ) + i32.const 0 + i32.const 0 + get_local $0 + i32.load + i32.sub + i32.const 0 + get_local $0 + i32.load offset=4 + i32.sub + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.not (; 26 ;) (type $ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.xor - (i32.load - (get_local $0) - ) - (i32.const -1) - ) - (i32.xor - (i32.load offset=4 - (get_local $0) - ) - (i32.const -1) - ) - ) + i32.const 0 + get_local $0 + i32.load + i32.const -1 + i32.xor + get_local $0 + i32.load offset=4 + i32.const -1 + i32.xor + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester.excl (; 27 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if (result i32) - (tee_local $1 - (i32.eqz - (i32.load - (get_local $0) - ) - ) - ) - (i32.eqz - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $1) - ) + get_local $0 + i32.load + i32.eqz + tee_local $1 + if (result i32) + get_local $0 + i32.load offset=4 + i32.eqz + else + get_local $1 + end ) (func $std/operator-overloading/Tester#inc (; 28 ;) (type $ii) (param $0 i32) (result i32) - (i32.store - (get_local $0) - (i32.add - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $0) + get_local $0 + get_local $0 + i32.load + i32.const 1 + i32.add + i32.store + get_local $0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.add + i32.store offset=4 + get_local $0 ) (func $std/operator-overloading/Tester#dec (; 29 ;) (type $ii) (param $0 i32) (result i32) - (i32.store - (get_local $0) - (i32.sub - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $0) + get_local $0 + get_local $0 + i32.load + i32.const 1 + i32.sub + i32.store + get_local $0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 ) (func $std/operator-overloading/Tester#postInc (; 30 ;) (type $ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.add - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - (i32.add - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) + i32.const 0 + get_local $0 + i32.load + i32.const 1 + i32.add + get_local $0 + i32.load offset=4 + i32.const 1 + i32.add + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/Tester#postDec (; 31 ;) (type $ii) (param $0 i32) (result i32) - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.sub - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) + i32.const 0 + get_local $0 + i32.load + i32.const 1 + i32.sub + get_local $0 + i32.load offset=4 + i32.const 1 + i32.sub + call $std/operator-overloading/Tester#constructor ) (func $std/operator-overloading/TesterInlineStatic#constructor (; 32 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $3 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $3) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (get_local $3) - ) - ) - ) - ) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $3 + get_local $3 + get_local $1 + i32.store + get_local $3 + get_local $2 + i32.store offset=4 + get_local $3 + end + tee_local $0 + end + tee_local $0 ) (func $std/operator-overloading/TesterInlineInstance#constructor (; 33 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $3 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $3) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (get_local $3) - ) - ) - ) - ) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $3 + get_local $3 + get_local $1 + i32.store + get_local $3 + get_local $2 + i32.store offset=4 + get_local $3 + end + tee_local $0 + end + tee_local $0 ) (func $start (; 34 ;) (type $v) (local $0 i32) (local $1 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/operator-overloading/a1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 1) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/a2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 2) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/a - (call $std/operator-overloading/Tester.add - (get_global $std/operator-overloading/a1) - (get_global $std/operator-overloading/a2) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/a) - ) - (i32.const 3) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/a) - ) - (i32.const 5) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 147) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/s1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 2) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/s2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 2) - (i32.const -3) - ) - ) - (set_global $std/operator-overloading/s - (call $std/operator-overloading/Tester.sub - (get_global $std/operator-overloading/s1) - (get_global $std/operator-overloading/s2) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/s) - ) - (i32.const 0) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/s) - ) - (i32.const 6) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 153) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/m1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 2) - (i32.const 5) - ) - ) - (set_global $std/operator-overloading/m2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 3) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/m - (call $std/operator-overloading/Tester.mul - (get_global $std/operator-overloading/m1) - (get_global $std/operator-overloading/m2) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/m) - ) - (i32.const 6) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/m) - ) - (i32.const 10) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/d1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 6) - (i32.const 50) - ) - ) - (set_global $std/operator-overloading/d2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 3) - (i32.const 10) - ) - ) - (set_global $std/operator-overloading/d - (call $std/operator-overloading/Tester.div - (get_global $std/operator-overloading/d1) - (get_global $std/operator-overloading/d2) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/d) - ) - (i32.const 2) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/d) - ) - (i32.const 5) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/f1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 10) - (i32.const 10) - ) - ) - (set_global $std/operator-overloading/f2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 6) - (i32.const 10) - ) - ) - (set_global $std/operator-overloading/f - (call $std/operator-overloading/Tester.mod - (get_global $std/operator-overloading/f1) - (get_global $std/operator-overloading/f2) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/f) - ) - (i32.const 4) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/f) - ) - (i32.const 0) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 171) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/p1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 2) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/p2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 4) - (i32.const 5) - ) - ) - (set_global $std/operator-overloading/p - (call $std/operator-overloading/Tester.pow - (get_global $std/operator-overloading/p1) - (get_global $std/operator-overloading/p2) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/p) - ) - (i32.const 16) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/p) - ) - (i32.const 243) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 177) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/n1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 255) - (i32.const 15) - ) - ) - (set_global $std/operator-overloading/n2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 15) - (i32.const 255) - ) - ) - (set_global $std/operator-overloading/n - (call $std/operator-overloading/Tester.and - (get_global $std/operator-overloading/n1) - (get_global $std/operator-overloading/n2) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/n) - ) - (i32.const 15) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/n) - ) - (i32.const 15) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 183) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/o1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 3855) - (i32.const 255) - ) - ) - (set_global $std/operator-overloading/o2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 61680) - (i32.const 0) - ) - ) - (set_global $std/operator-overloading/o - (call $std/operator-overloading/Tester.or - (get_global $std/operator-overloading/o1) - (get_global $std/operator-overloading/o2) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/o) - ) - (i32.const 65535) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/o) - ) - (i32.const 255) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 189) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/x1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 255) - (i32.const 255) - ) - ) - (set_global $std/operator-overloading/x2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 65280) - (i32.const 0) - ) - ) - (set_global $std/operator-overloading/x - (call $std/operator-overloading/Tester.xor - (get_global $std/operator-overloading/x1) - (get_global $std/operator-overloading/x2) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/x) - ) - (i32.const 65535) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/x) - ) - (i32.const 255) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 195) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/eq1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 1) - (i32.const -2) - ) - ) - (set_global $std/operator-overloading/eq2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 1) - (i32.const -2) - ) - ) - (set_global $std/operator-overloading/eq - (call $std/operator-overloading/Tester.equals - (get_global $std/operator-overloading/eq1) - (get_global $std/operator-overloading/eq2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/operator-overloading/eq) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 201) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/eq3 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 1) - (i32.const 0) - ) - ) - (set_global $std/operator-overloading/eq4 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 0) - (i32.const 1) - ) - ) - (set_global $std/operator-overloading/eqf - (call $std/operator-overloading/Tester.equals - (get_global $std/operator-overloading/eq3) - (get_global $std/operator-overloading/eq4) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/operator-overloading/eqf) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 207) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/eq - (call $std/operator-overloading/Tester.notEquals - (get_global $std/operator-overloading/eq1) - (get_global $std/operator-overloading/eq2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/operator-overloading/eq) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 211) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/eqf - (call $std/operator-overloading/Tester.notEquals - (get_global $std/operator-overloading/eq3) - (get_global $std/operator-overloading/eq4) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/operator-overloading/eqf) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 215) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/gt1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 2) - (get_global $~lib/builtins/i32.MAX_VALUE) - ) - ) - (set_global $std/operator-overloading/gt2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 1) - (i32.const 0) - ) - ) - (set_global $std/operator-overloading/gt - (call $std/operator-overloading/Tester.greater - (get_global $std/operator-overloading/gt1) - (get_global $std/operator-overloading/gt2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/operator-overloading/gt) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 221) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/gte1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 2) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/gte2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 2) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/gte - (call $std/operator-overloading/Tester.greaterEquals - (get_global $std/operator-overloading/gte1) - (get_global $std/operator-overloading/gte2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/operator-overloading/gte) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 227) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/le1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 5) - (i32.const -1) - ) - ) - (set_global $std/operator-overloading/le2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 6) - (i32.const 6) - ) - ) - (set_global $std/operator-overloading/le - (call $std/operator-overloading/Tester.less - (get_global $std/operator-overloading/le1) - (get_global $std/operator-overloading/le2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/operator-overloading/le) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 233) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/leq1 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 4) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/leq2 - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 4) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/leq - (call $std/operator-overloading/Tester.lessEquals - (get_global $std/operator-overloading/leq1) - (get_global $std/operator-overloading/leq2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/operator-overloading/leq) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 239) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/shr - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 8) - (i32.const 16) - ) - ) - (set_global $std/operator-overloading/sres - (call $std/operator-overloading/Tester.shr - (get_global $std/operator-overloading/shr) - (i32.const 3) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/sres) - ) - (i32.const 1) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/sres) - ) - (i32.const 2) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 244) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/shu - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const -8) - (i32.const -16) - ) - ) - (set_global $std/operator-overloading/ures - (call $std/operator-overloading/Tester.shu - (get_global $std/operator-overloading/shu) - (i32.const 3) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/ures) - ) - (i32.const 536870911) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/ures) - ) - (i32.const 536870910) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 249) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/shl - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 1) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/sres - (call $std/operator-overloading/Tester.shl - (get_global $std/operator-overloading/shl) - (i32.const 3) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/sres) - ) - (i32.const 8) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/sres) - ) - (i32.const 16) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 254) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/pos - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 1) - (i32.const -2) - ) - ) - (set_global $std/operator-overloading/pres - (call $std/operator-overloading/Tester.pos - (get_global $std/operator-overloading/pos) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/pres) - ) - (i32.load - (get_global $std/operator-overloading/pos) - ) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/pres) - ) - (i32.load offset=4 - (get_global $std/operator-overloading/pos) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 259) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/neg - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const -1) - (i32.const -2) - ) - ) - (set_global $std/operator-overloading/nres - (call $std/operator-overloading/Tester.neg - (get_global $std/operator-overloading/neg) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/nres) - ) - (i32.sub - (i32.const 0) - (i32.load - (get_global $std/operator-overloading/neg) - ) - ) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/nres) - ) - (i32.sub - (i32.const 0) - (i32.load offset=4 - (get_global $std/operator-overloading/neg) - ) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 264) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/not - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 255) - (i32.const 16) - ) - ) - (set_global $std/operator-overloading/res - (call $std/operator-overloading/Tester.not - (get_global $std/operator-overloading/not) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/res) - ) - (i32.xor - (i32.load - (get_global $std/operator-overloading/not) - ) - (i32.const -1) - ) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/res) - ) - (i32.xor - (i32.load offset=4 - (get_global $std/operator-overloading/not) - ) - (i32.const -1) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 269) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/excl - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 0) - (i32.const 0) - ) - ) - (set_global $std/operator-overloading/bres - (call $std/operator-overloading/Tester.excl - (get_global $std/operator-overloading/excl) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/operator-overloading/bres) - (if (result i32) - (tee_local $0 - (i32.eqz - (i32.load - (get_global $std/operator-overloading/excl) - ) - ) - ) - (i32.eqz - (i32.load offset=4 - (get_global $std/operator-overloading/excl) - ) - ) - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 274) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/operator-overloading/bres) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 275) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 0) - (i32.const 1) - ) - ) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#inc - (get_global $std/operator-overloading/incdec) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/incdec) - ) - (i32.const 1) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/incdec) - ) - (i32.const 2) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 281) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#dec - (get_global $std/operator-overloading/incdec) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/incdec) - ) - (i32.const 0) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/incdec) - ) - (i32.const 1) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 284) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#constructor - (i32.const 0) - (i32.const 0) - (i32.const 1) - ) - ) - (set_global $std/operator-overloading/tmp - (block (result i32) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#postInc - (tee_local $0 - (get_global $std/operator-overloading/incdec) - ) - ) - ) - (get_local $0) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/tmp) - ) - (i32.const 0) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/tmp) - ) - (i32.const 1) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 289) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/incdec) - ) - (i32.const 1) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/incdec) - ) - (i32.const 2) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 290) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/tmp - (block (result i32) - (set_global $std/operator-overloading/incdec - (call $std/operator-overloading/Tester#postDec - (tee_local $0 - (get_global $std/operator-overloading/incdec) - ) - ) - ) - (get_local $0) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/tmp) - ) - (i32.const 1) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/tmp) - ) - (i32.const 2) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 293) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/incdec) - ) - (i32.const 0) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/incdec) - ) - (i32.const 1) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 294) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/ais1 - (call $std/operator-overloading/TesterInlineStatic#constructor - (i32.const 0) - (i32.const 1) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/ais1 - (block $std/operator-overloading/TesterInlineStatic.postInc|inlined.0 (result i32) - (set_local $0 - (get_global $std/operator-overloading/ais1) - ) - (call $std/operator-overloading/TesterInlineStatic#constructor - (i32.const 0) - (i32.add - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - (i32.add - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - ) - ) - (set_global $std/operator-overloading/ais2 - (call $std/operator-overloading/TesterInlineStatic#constructor - (i32.const 0) - (i32.const 2) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/ais - (block $std/operator-overloading/TesterInlineStatic.add|inlined.0 (result i32) - (set_local $0 - (get_global $std/operator-overloading/ais1) - ) - (set_local $1 - (get_global $std/operator-overloading/ais2) - ) - (call $std/operator-overloading/TesterInlineStatic#constructor - (i32.const 0) - (i32.add - (i32.load - (get_local $0) - ) - (i32.load - (get_local $1) - ) - ) - (i32.add - (i32.load offset=4 - (get_local $0) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (i32.eq - (i32.load - (get_global $std/operator-overloading/ais) - ) - (i32.const 4) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/ais) - ) - (i32.const 6) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 314) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/operator-overloading/aii1 - (call $std/operator-overloading/TesterInlineInstance#constructor - (i32.const 0) - (i32.const 1) - (i32.const 2) - ) - ) - (set_global $std/operator-overloading/aii1 - (block $std/operator-overloading/TesterInlineInstance#postInc|inlined.0 (result i32) - (set_local $1 - (get_global $std/operator-overloading/aii1) - ) - (call $std/operator-overloading/TesterInlineInstance#constructor - (i32.const 0) - (i32.add - (i32.load - (get_local $1) - ) - (i32.const 1) - ) - (i32.add - (i32.load offset=4 - (get_local $1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_global $std/operator-overloading/aii2 - (call $std/operator-overloading/TesterInlineInstance#constructor - (i32.const 0) - (i32.const 2) - (i32.const 3) - ) - ) - (set_global $std/operator-overloading/aii - (block $std/operator-overloading/TesterInlineInstance#add|inlined.0 (result i32) - (set_local $1 - (get_global $std/operator-overloading/aii1) - ) - (set_local $0 - (get_global $std/operator-overloading/aii2) - ) - (call $std/operator-overloading/TesterInlineInstance#constructor - (i32.const 0) - (i32.add - (i32.load - (get_local $1) - ) - (i32.load - (get_local $0) - ) - ) - (i32.add - (i32.load offset=4 - (get_local $1) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (i32.eq - (i32.load - (get_global $std/operator-overloading/aii) - ) - (i32.const 4) - ) - ) - (i32.eq - (i32.load offset=4 - (get_global $std/operator-overloading/aii) - ) - (i32.const 6) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 334) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + i32.const 1 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/a1 + i32.const 0 + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/a2 + get_global $std/operator-overloading/a1 + get_global $std/operator-overloading/a2 + call $std/operator-overloading/Tester.add + set_global $std/operator-overloading/a + get_global $std/operator-overloading/a + i32.load + i32.const 3 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/a + i32.load offset=4 + i32.const 5 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 147 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/s1 + i32.const 0 + i32.const 2 + i32.const -3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/s2 + get_global $std/operator-overloading/s1 + get_global $std/operator-overloading/s2 + call $std/operator-overloading/Tester.sub + set_global $std/operator-overloading/s + get_global $std/operator-overloading/s + i32.load + i32.const 0 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/s + i32.load offset=4 + i32.const 6 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 153 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 5 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/m1 + i32.const 0 + i32.const 3 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/m2 + get_global $std/operator-overloading/m1 + get_global $std/operator-overloading/m2 + call $std/operator-overloading/Tester.mul + set_global $std/operator-overloading/m + get_global $std/operator-overloading/m + i32.load + i32.const 6 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/m + i32.load offset=4 + i32.const 10 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 6 + i32.const 50 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/d1 + i32.const 0 + i32.const 3 + i32.const 10 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/d2 + get_global $std/operator-overloading/d1 + get_global $std/operator-overloading/d2 + call $std/operator-overloading/Tester.div + set_global $std/operator-overloading/d + get_global $std/operator-overloading/d + i32.load + i32.const 2 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/d + i32.load offset=4 + i32.const 5 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 10 + i32.const 10 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/f1 + i32.const 0 + i32.const 6 + i32.const 10 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/f2 + get_global $std/operator-overloading/f1 + get_global $std/operator-overloading/f2 + call $std/operator-overloading/Tester.mod + set_global $std/operator-overloading/f + get_global $std/operator-overloading/f + i32.load + i32.const 4 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/f + i32.load offset=4 + i32.const 0 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 171 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/p1 + i32.const 0 + i32.const 4 + i32.const 5 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/p2 + get_global $std/operator-overloading/p1 + get_global $std/operator-overloading/p2 + call $std/operator-overloading/Tester.pow + set_global $std/operator-overloading/p + get_global $std/operator-overloading/p + i32.load + i32.const 16 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/p + i32.load offset=4 + i32.const 243 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 177 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 255 + i32.const 15 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/n1 + i32.const 0 + i32.const 15 + i32.const 255 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/n2 + get_global $std/operator-overloading/n1 + get_global $std/operator-overloading/n2 + call $std/operator-overloading/Tester.and + set_global $std/operator-overloading/n + get_global $std/operator-overloading/n + i32.load + i32.const 15 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/n + i32.load offset=4 + i32.const 15 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 183 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 3855 + i32.const 255 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/o1 + i32.const 0 + i32.const 61680 + i32.const 0 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/o2 + get_global $std/operator-overloading/o1 + get_global $std/operator-overloading/o2 + call $std/operator-overloading/Tester.or + set_global $std/operator-overloading/o + get_global $std/operator-overloading/o + i32.load + i32.const 65535 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/o + i32.load offset=4 + i32.const 255 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 189 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 255 + i32.const 255 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/x1 + i32.const 0 + i32.const 65280 + i32.const 0 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/x2 + get_global $std/operator-overloading/x1 + get_global $std/operator-overloading/x2 + call $std/operator-overloading/Tester.xor + set_global $std/operator-overloading/x + get_global $std/operator-overloading/x + i32.load + i32.const 65535 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/x + i32.load offset=4 + i32.const 255 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 195 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/eq1 + i32.const 0 + i32.const 1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/eq2 + get_global $std/operator-overloading/eq1 + get_global $std/operator-overloading/eq2 + call $std/operator-overloading/Tester.equals + set_global $std/operator-overloading/eq + get_global $std/operator-overloading/eq + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 201 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 0 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/eq3 + i32.const 0 + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/eq4 + get_global $std/operator-overloading/eq3 + get_global $std/operator-overloading/eq4 + call $std/operator-overloading/Tester.equals + set_global $std/operator-overloading/eqf + get_global $std/operator-overloading/eqf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 207 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/eq1 + get_global $std/operator-overloading/eq2 + call $std/operator-overloading/Tester.notEquals + set_global $std/operator-overloading/eq + get_global $std/operator-overloading/eq + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 211 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/eq3 + get_global $std/operator-overloading/eq4 + call $std/operator-overloading/Tester.notEquals + set_global $std/operator-overloading/eqf + get_global $std/operator-overloading/eqf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 215 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 2 + get_global $~lib/builtins/i32.MAX_VALUE + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/gt1 + i32.const 0 + i32.const 1 + i32.const 0 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/gt2 + get_global $std/operator-overloading/gt1 + get_global $std/operator-overloading/gt2 + call $std/operator-overloading/Tester.greater + set_global $std/operator-overloading/gt + get_global $std/operator-overloading/gt + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 221 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/gte1 + i32.const 0 + i32.const 2 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/gte2 + get_global $std/operator-overloading/gte1 + get_global $std/operator-overloading/gte2 + call $std/operator-overloading/Tester.greaterEquals + set_global $std/operator-overloading/gte + get_global $std/operator-overloading/gte + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 227 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 5 + i32.const -1 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/le1 + i32.const 0 + i32.const 6 + i32.const 6 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/le2 + get_global $std/operator-overloading/le1 + get_global $std/operator-overloading/le2 + call $std/operator-overloading/Tester.less + set_global $std/operator-overloading/le + get_global $std/operator-overloading/le + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 233 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 4 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/leq1 + i32.const 0 + i32.const 4 + i32.const 3 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/leq2 + get_global $std/operator-overloading/leq1 + get_global $std/operator-overloading/leq2 + call $std/operator-overloading/Tester.lessEquals + set_global $std/operator-overloading/leq + get_global $std/operator-overloading/leq + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 239 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 8 + i32.const 16 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/shr + get_global $std/operator-overloading/shr + i32.const 3 + call $std/operator-overloading/Tester.shr + set_global $std/operator-overloading/sres + get_global $std/operator-overloading/sres + i32.load + i32.const 1 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/sres + i32.load offset=4 + i32.const 2 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 244 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const -8 + i32.const -16 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/shu + get_global $std/operator-overloading/shu + i32.const 3 + call $std/operator-overloading/Tester.shu + set_global $std/operator-overloading/ures + get_global $std/operator-overloading/ures + i32.load + i32.const 536870911 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/ures + i32.load offset=4 + i32.const 536870910 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/shl + get_global $std/operator-overloading/shl + i32.const 3 + call $std/operator-overloading/Tester.shl + set_global $std/operator-overloading/sres + get_global $std/operator-overloading/sres + i32.load + i32.const 8 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/sres + i32.load offset=4 + i32.const 16 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 254 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/pos + get_global $std/operator-overloading/pos + call $std/operator-overloading/Tester.pos + set_global $std/operator-overloading/pres + get_global $std/operator-overloading/pres + i32.load + get_global $std/operator-overloading/pos + i32.load + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/pres + i32.load offset=4 + get_global $std/operator-overloading/pos + i32.load offset=4 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 259 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const -1 + i32.const -2 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/neg + get_global $std/operator-overloading/neg + call $std/operator-overloading/Tester.neg + set_global $std/operator-overloading/nres + get_global $std/operator-overloading/nres + i32.load + i32.const 0 + get_global $std/operator-overloading/neg + i32.load + i32.sub + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/nres + i32.load offset=4 + i32.const 0 + get_global $std/operator-overloading/neg + i32.load offset=4 + i32.sub + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 264 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 255 + i32.const 16 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/not + get_global $std/operator-overloading/not + call $std/operator-overloading/Tester.not + set_global $std/operator-overloading/res + get_global $std/operator-overloading/res + i32.load + get_global $std/operator-overloading/not + i32.load + i32.const -1 + i32.xor + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/res + i32.load offset=4 + get_global $std/operator-overloading/not + i32.load offset=4 + i32.const -1 + i32.xor + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 269 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.const 0 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/excl + get_global $std/operator-overloading/excl + call $std/operator-overloading/Tester.excl + set_global $std/operator-overloading/bres + get_global $std/operator-overloading/bres + get_global $std/operator-overloading/excl + i32.load + i32.eqz + tee_local $0 + if (result i32) + get_global $std/operator-overloading/excl + i32.load offset=4 + i32.eqz + else + get_local $0 + end + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 274 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/bres + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 275 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/incdec + get_global $std/operator-overloading/incdec + call $std/operator-overloading/Tester#inc + set_global $std/operator-overloading/incdec + get_global $std/operator-overloading/incdec + i32.load + i32.const 1 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/incdec + i32.load offset=4 + i32.const 2 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 281 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/incdec + call $std/operator-overloading/Tester#dec + set_global $std/operator-overloading/incdec + get_global $std/operator-overloading/incdec + i32.load + i32.const 0 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/incdec + i32.load offset=4 + i32.const 1 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 284 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + set_global $std/operator-overloading/incdec + block (result i32) + get_global $std/operator-overloading/incdec + tee_local $0 + call $std/operator-overloading/Tester#postInc + set_global $std/operator-overloading/incdec + get_local $0 + end + set_global $std/operator-overloading/tmp + get_global $std/operator-overloading/tmp + i32.load + i32.const 0 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/tmp + i32.load offset=4 + i32.const 1 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 289 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/incdec + i32.load + i32.const 1 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/incdec + i32.load offset=4 + i32.const 2 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 290 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + get_global $std/operator-overloading/incdec + tee_local $0 + call $std/operator-overloading/Tester#postDec + set_global $std/operator-overloading/incdec + get_local $0 + end + set_global $std/operator-overloading/tmp + get_global $std/operator-overloading/tmp + i32.load + i32.const 1 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/tmp + i32.load offset=4 + i32.const 2 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 293 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/operator-overloading/incdec + i32.load + i32.const 0 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/incdec + i32.load offset=4 + i32.const 1 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 294 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + call $std/operator-overloading/TesterInlineStatic#constructor + set_global $std/operator-overloading/ais1 + block $std/operator-overloading/TesterInlineStatic.postInc|inlined.0 (result i32) + get_global $std/operator-overloading/ais1 + set_local $0 + i32.const 0 + get_local $0 + i32.load + i32.const 1 + i32.add + get_local $0 + i32.load offset=4 + i32.const 1 + i32.add + call $std/operator-overloading/TesterInlineStatic#constructor + end + set_global $std/operator-overloading/ais1 + i32.const 0 + i32.const 2 + i32.const 3 + call $std/operator-overloading/TesterInlineStatic#constructor + set_global $std/operator-overloading/ais2 + block $std/operator-overloading/TesterInlineStatic.add|inlined.0 (result i32) + get_global $std/operator-overloading/ais1 + set_local $0 + get_global $std/operator-overloading/ais2 + set_local $1 + i32.const 0 + get_local $0 + i32.load + get_local $1 + i32.load + i32.add + get_local $0 + i32.load offset=4 + get_local $1 + i32.load offset=4 + i32.add + call $std/operator-overloading/TesterInlineStatic#constructor + end + set_global $std/operator-overloading/ais + get_global $std/operator-overloading/ais + i32.load + i32.const 4 + i32.eq + tee_local $1 + if (result i32) + get_global $std/operator-overloading/ais + i32.load offset=4 + i32.const 6 + i32.eq + else + get_local $1 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 314 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + call $std/operator-overloading/TesterInlineInstance#constructor + set_global $std/operator-overloading/aii1 + block $std/operator-overloading/TesterInlineInstance#postInc|inlined.0 (result i32) + get_global $std/operator-overloading/aii1 + set_local $1 + i32.const 0 + get_local $1 + i32.load + i32.const 1 + i32.add + get_local $1 + i32.load offset=4 + i32.const 1 + i32.add + call $std/operator-overloading/TesterInlineInstance#constructor + end + set_global $std/operator-overloading/aii1 + i32.const 0 + i32.const 2 + i32.const 3 + call $std/operator-overloading/TesterInlineInstance#constructor + set_global $std/operator-overloading/aii2 + block $std/operator-overloading/TesterInlineInstance#add|inlined.0 (result i32) + get_global $std/operator-overloading/aii1 + set_local $1 + get_global $std/operator-overloading/aii2 + set_local $0 + i32.const 0 + get_local $1 + i32.load + get_local $0 + i32.load + i32.add + get_local $1 + i32.load offset=4 + get_local $0 + i32.load offset=4 + i32.add + call $std/operator-overloading/TesterInlineInstance#constructor + end + set_global $std/operator-overloading/aii + get_global $std/operator-overloading/aii + i32.load + i32.const 4 + i32.eq + tee_local $0 + if (result i32) + get_global $std/operator-overloading/aii + i32.load offset=4 + i32.const 6 + i32.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 334 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 35 ;) (type $v) ) diff --git a/tests/compiler/std/pointer.optimized.wat b/tests/compiler/std/pointer.optimized.wat index 3d678dc5..0bc70743 100644 --- a/tests/compiler/std/pointer.optimized.wat +++ b/tests/compiler/std/pointer.optimized.wat @@ -8,11 +8,11 @@ (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$vii (func (param i32 i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0e\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $std/pointer/one (mut i32) (i32.const 0)) (global $std/pointer/two (mut i32) (i32.const 0)) (global $std/pointer/add (mut i32) (i32.const 0)) @@ -22,2324 +22,1572 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $std/pointer/Pointer#constructor (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (get_local $0) + (func $std/pointer/Pointer#constructor (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + get_local $0 ) - (func $~lib/internal/memory/memset (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/internal/memory/memset (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) - (i32.store8 - (get_local $0) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $1) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $1) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $1) - (i32.const 4) - ) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.store8 + get_local $0 + i32.const 8 + i32.add + tee_local $1 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + get_local $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + get_local $1 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + get_local $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + get_local $1 + i32.const 4 + i32.sub + i32.const 0 + i32.store8 ) - (func $~lib/internal/memory/memcpy (; 3 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memcpy (; 3 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (loop $continue|0 - (if - (tee_local $3 - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - ) - (block - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (block - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (if - (i32.ne - (tee_local $3 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 1) - ) - (block - (br_if $case1|2 - (i32.eq - (get_local $3) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $3) - (i32.const 3) - ) - ) - (br $break|2) - ) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|3) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|4) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + tee_local $3 + if + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|0 + end + end + get_local $0 + i32.const 3 + i32.and + i32.eqz + if + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|1 + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + get_local $0 + i32.const 3 + i32.and + tee_local $3 + i32.const 1 + i32.ne + if + get_local $3 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $3 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 1 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 5 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 9 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 13 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|3 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 2 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 6 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 10 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 14 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|4 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 3 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 7 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 11 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 15 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|5 + end + end + end + end + get_local $2 + i32.const 16 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end ) - (func $~lib/internal/memory/memmove (; 4 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memmove (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $2 - (i32.const 8) - ) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (i32.eqz - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (i32.const 8) - ) - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.le_u - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $3) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (i32.const 8) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (get_local $2) - (block - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) + i32.const 8 + set_local $2 + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + i32.const 8 + i32.add + get_local $0 + i32.le_u + tee_local $3 + i32.eqz + if + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.le_u + set_local $3 + end + get_local $3 + if + get_local $0 + get_local $1 + i32.const 8 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + br $continue|0 + end + end + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + br $continue|1 + end + end + end + loop $continue|2 + get_local $2 + if + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|2 + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|3 + end + end + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 8 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + br $continue|4 + end + end + end + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end ) - (func $std/pointer/Pointer#set:value (; 5 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - (if - (get_local $1) - (call $~lib/internal/memory/memmove - (get_local $0) - (get_local $1) - ) - (call $~lib/internal/memory/memset - (get_local $0) - ) - ) + (func $std/pointer/Pointer#set:value (; 5 ;) (type $iiv) (param $0 i32) (param $1 i32) + get_local $1 + if + get_local $0 + get_local $1 + call $~lib/internal/memory/memmove + else + get_local $0 + call $~lib/internal/memory/memset + end ) - (func $std/pointer/Pointer#set (; 6 ;) (; has Stack IR ;) (type $iifv) (param $0 i32) (param $1 i32) (param $2 f32) - (f32.store - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) + (func $std/pointer/Pointer#set (; 6 ;) (type $iifv) (param $0 i32) (param $1 i32) (param $2 f32) + get_local $0 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + f32.store ) - (func $std/pointer/Pointer#get (; 7 ;) (; has Stack IR ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) - (f32.load - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) + (func $std/pointer/Pointer#get (; 7 ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) + get_local $0 + get_local $1 + i32.const 2 + i32.shl + i32.add + f32.load ) - (func $std/pointer/Pointer#set:value (; 8 ;) (; has Stack IR ;) (type $FUNCSIG$vi) (param $0 i32) - (f32.store - (get_local $0) - (f32.const 1.399999976158142) - ) + (func $std/pointer/Pointer#set:value (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + get_local $0 + f32.const 1.399999976158142 + f32.store ) - (func $start (; 9 ;) (; has Stack IR ;) (type $v) - (set_global $std/pointer/one - (call $std/pointer/Pointer#constructor - (i32.const 8) - ) - ) - (set_global $std/pointer/two - (call $std/pointer/Pointer#constructor - (i32.const 24) - ) - ) - (if - (i32.ne - (get_global $std/pointer/one) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 79) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $std/pointer/two) - (i32.const 24) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 80) - (i32.const 0) - ) - (unreachable) - ) - ) - (i32.store - (get_global $std/pointer/one) - (i32.const 1) - ) - (i32.store offset=4 - (get_global $std/pointer/one) - (i32.const 2) - ) - (if - (i32.ne - (i32.load - (get_global $std/pointer/one) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 84) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/pointer/one) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 85) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/pointer/add - (i32.add - (get_global $std/pointer/one) - (get_global $std/pointer/two) - ) - ) - (if - (i32.ne - (get_global $std/pointer/add) - (i32.const 32) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 88) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/pointer/sub - (i32.sub - (get_global $std/pointer/two) - (get_global $std/pointer/one) - ) - ) - (if - (i32.ne - (get_global $std/pointer/sub) - (i32.const 16) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 91) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $std/pointer/one) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 93) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/pointer/one - (i32.add - (get_global $std/pointer/one) - (i32.const 8) - ) - ) - (set_global $std/pointer/nextOne - (get_global $std/pointer/one) - ) - (if - (i32.ne - (get_global $std/pointer/nextOne) - (get_global $std/pointer/one) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 95) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $std/pointer/one) - (i32.const 16) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 96) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $std/pointer/two) - (i32.const 24) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 98) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/pointer/two - (i32.sub - (get_global $std/pointer/two) - (i32.const 8) - ) - ) - (set_global $std/pointer/two - (i32.sub - (get_global $std/pointer/two) - (i32.const 8) - ) - ) - (if - (i32.ne - (get_global $std/pointer/two) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load - (get_global $std/pointer/two) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/pointer/two) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 103) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/pointer/Pointer#set:value - (get_global $std/pointer/one) - (get_global $std/pointer/two) - ) - (if - (i32.eq - (get_global $std/pointer/one) - (get_global $std/pointer/two) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load - (get_global $std/pointer/one) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/pointer/one) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 108) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/pointer/buf - (call $std/pointer/Pointer#constructor - (i32.const 0) - ) - ) - (call $std/pointer/Pointer#set - (get_global $std/pointer/buf) - (i32.const 0) - (f32.const 1.100000023841858) - ) - (call $std/pointer/Pointer#set - (get_global $std/pointer/buf) - (i32.const 1) - (f32.const 1.2000000476837158) - ) - (if - (f32.ne - (call $std/pointer/Pointer#get - (get_global $std/pointer/buf) - (i32.const 0) - ) - (f32.const 1.100000023841858) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (call $std/pointer/Pointer#get - (get_global $std/pointer/buf) - (i32.const 1) - ) - (f32.const 1.2000000476837158) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (f32.load - (get_global $std/pointer/buf) - ) - (f32.const 1.100000023841858) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (f32.load - (i32.add - (get_global $std/pointer/buf) - (i32.const 4) - ) - ) - (f32.const 1.2000000476837158) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 118) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (f32.load - (i32.const 0) - ) - (f32.const 1.100000023841858) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 120) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (f32.load - (i32.const 4) - ) - (f32.const 1.2000000476837158) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 121) - (i32.const 0) - ) - (unreachable) - ) - ) - (f32.store - (i32.add - (get_global $std/pointer/buf) - (i32.const 8) - ) - (f32.const 1.2999999523162842) - ) - (if - (f32.ne - (call $std/pointer/Pointer#get - (get_global $std/pointer/buf) - (i32.const 2) - ) - (f32.const 1.2999999523162842) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (f32.load - (i32.add - (get_global $std/pointer/buf) - (i32.const 8) - ) - ) - (f32.const 1.2999999523162842) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 125) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (f32.load - (i32.const 8) - ) - (f32.const 1.2999999523162842) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/pointer/Pointer#set:value - (get_global $std/pointer/buf) - ) - (if - (f32.ne - (f32.load - (get_global $std/pointer/buf) - ) - (f32.const 1.399999976158142) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (f32.load - (i32.const 0) - ) - (f32.const 1.399999976158142) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 9 ;) (type $v) + i32.const 8 + call $std/pointer/Pointer#constructor + set_global $std/pointer/one + i32.const 24 + call $std/pointer/Pointer#constructor + set_global $std/pointer/two + get_global $std/pointer/one + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 79 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/two + i32.const 24 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 80 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/one + i32.const 1 + i32.store + get_global $std/pointer/one + i32.const 2 + i32.store offset=4 + get_global $std/pointer/one + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 84 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/one + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 85 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/one + get_global $std/pointer/two + i32.add + set_global $std/pointer/add + get_global $std/pointer/add + i32.const 32 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 88 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/two + get_global $std/pointer/one + i32.sub + set_global $std/pointer/sub + get_global $std/pointer/sub + i32.const 16 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 91 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/one + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 93 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/one + i32.const 8 + i32.add + set_global $std/pointer/one + get_global $std/pointer/one + set_global $std/pointer/nextOne + get_global $std/pointer/nextOne + get_global $std/pointer/one + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 95 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/one + i32.const 16 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 96 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/two + i32.const 24 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 98 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/two + i32.const 8 + i32.sub + set_global $std/pointer/two + get_global $std/pointer/two + i32.const 8 + i32.sub + set_global $std/pointer/two + get_global $std/pointer/two + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 101 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/two + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 102 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/two + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 103 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/one + get_global $std/pointer/two + call $std/pointer/Pointer#set:value + get_global $std/pointer/one + get_global $std/pointer/two + i32.eq + if + i32.const 0 + i32.const 8 + i32.const 106 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/one + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 107 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/one + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 108 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $std/pointer/Pointer#constructor + set_global $std/pointer/buf + get_global $std/pointer/buf + i32.const 0 + f32.const 1.100000023841858 + call $std/pointer/Pointer#set + get_global $std/pointer/buf + i32.const 1 + f32.const 1.2000000476837158 + call $std/pointer/Pointer#set + get_global $std/pointer/buf + i32.const 0 + call $std/pointer/Pointer#get + f32.const 1.100000023841858 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 114 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/buf + i32.const 1 + call $std/pointer/Pointer#get + f32.const 1.2000000476837158 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 115 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/buf + f32.load + f32.const 1.100000023841858 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 117 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/buf + i32.const 4 + i32.add + f32.load + f32.const 1.2000000476837158 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 118 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + f32.load + f32.const 1.100000023841858 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 120 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + f32.load + f32.const 1.2000000476837158 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 121 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/buf + i32.const 8 + i32.add + f32.const 1.2999999523162842 + f32.store + get_global $std/pointer/buf + i32.const 2 + call $std/pointer/Pointer#get + f32.const 1.2999999523162842 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 124 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/buf + i32.const 8 + i32.add + f32.load + f32.const 1.2999999523162842 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 125 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + f32.load + f32.const 1.2999999523162842 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/buf + call $std/pointer/Pointer#set:value + get_global $std/pointer/buf + f32.load + f32.const 1.399999976158142 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 129 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + f32.load + f32.const 1.399999976158142 + f32.ne + if + i32.const 0 + i32.const 8 + i32.const 130 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 10 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 10 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat index 4b29c689..ba6bdd45 100644 --- a/tests/compiler/std/pointer.untouched.wat +++ b/tests/compiler/std/pointer.untouched.wat @@ -7,11 +7,11 @@ (type $iif (func (param i32 i32) (result f32))) (type $ifv (func (param i32 f32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0e\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $std/pointer/one (mut i32) (i32.const 0)) (global $std/pointer/two (mut i32) (i32.const 0)) (global $std/pointer/add (mut i32) (i32.const 0)) @@ -23,3256 +23,2302 @@ (export "table" (table $0)) (start $start) (func $std/pointer/Pointer#constructor (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (get_local $1) + get_local $1 ) (func $~lib/internal/memory/memset (; 2 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/internal/memory/memcpy (; 3 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (block - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $5 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (br_if $case0|2 - (i32.eq - (get_local $5) - (i32.const 1) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $5) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $5) - (i32.const 3) - ) - ) - (br $break|2) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - (br $break|2) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) + block $break|0 + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + if + block + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|0 + end + end + end + get_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + block + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|1 + end + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $0 + i32.const 3 + i32.and + set_local $5 + get_local $5 + i32.const 1 + i32.eq + br_if $case0|2 + get_local $5 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + block $break|3 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + block + get_local $1 + i32.const 1 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 5 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 9 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 13 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|3 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $break|4 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + block + get_local $1 + i32.const 2 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 6 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 10 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 14 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|4 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block $break|5 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + block + get_local $1 + i32.const 3 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 7 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 11 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 15 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|5 + end + end + end + br $break|2 + unreachable + end + unreachable + end + end + get_local $2 + i32.const 16 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end ) (func $~lib/internal/memory/memmove (; 4 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (if (result i32) - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - (get_local $3) - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|0 - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (get_local $2) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|3 - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (i64.store - (i32.add - (get_local $0) - (get_local $2) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + end + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|0 + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + end + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + get_local $2 + if + block + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|2 + end + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|3 + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + end + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + end + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end ) (func $std/pointer/Pointer#set:value (; 5 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $1) - (i32.const 0) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $2 - (i32.const 0) - ) - (set_local $3 - (i32.const 8) - ) - (call $~lib/internal/memory/memset - (get_local $0) - (get_local $2) - (get_local $3) - ) - ) - (block $~lib/memory/memory.copy|inlined.0 - (set_local $3 - (i32.const 8) - ) - (call $~lib/internal/memory/memmove - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - ) + get_local $1 + i32.const 0 + i32.eq + if + i32.const 0 + set_local $2 + i32.const 8 + set_local $3 + get_local $0 + get_local $2 + get_local $3 + call $~lib/internal/memory/memset + else + i32.const 8 + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/internal/memory/memmove + end ) (func $std/pointer/Pointer#constructor (; 6 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (get_local $1) + get_local $1 ) (func $std/pointer/Pointer#set (; 7 ;) (type $iifv) (param $0 i32) (param $1 i32) (param $2 f32) - (f32.store - (i32.add - (get_local $0) - (i32.mul - (get_local $1) - (i32.const 4) - ) - ) - (get_local $2) - ) + get_local $0 + get_local $1 + i32.const 4 + i32.mul + i32.add + get_local $2 + f32.store ) (func $std/pointer/Pointer#get (; 8 ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) - (f32.load - (i32.add - (get_local $0) - (i32.mul - (get_local $1) - (i32.const 4) - ) - ) - ) + get_local $0 + get_local $1 + i32.const 4 + i32.mul + i32.add + f32.load ) (func $std/pointer/Pointer#set:value (; 9 ;) (type $ifv) (param $0 i32) (param $1 f32) - (f32.store - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + f32.store ) (func $start (; 10 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 f32) - (set_global $std/pointer/one - (call $std/pointer/Pointer#constructor - (i32.const 0) - (i32.const 8) - ) - ) - (set_global $std/pointer/two - (call $std/pointer/Pointer#constructor - (i32.const 0) - (i32.const 24) - ) - ) - (if - (i32.eqz - (i32.eq - (block $std/pointer/Pointer#get:offset|inlined.0 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (get_local $0) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 79) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $std/pointer/Pointer#get:offset|inlined.1 (result i32) - (set_local $0 - (get_global $std/pointer/two) - ) - (get_local $0) - ) - (i32.const 24) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 80) - (i32.const 0) - ) - (unreachable) - ) - ) - (i32.store - (block $std/pointer/Pointer#get:value|inlined.0 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (br $std/pointer/Pointer#get:value|inlined.0 - (get_local $0) - ) - ) - (i32.const 1) - ) - (i32.store offset=4 - (block $std/pointer/Pointer#get:value|inlined.1 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (br $std/pointer/Pointer#get:value|inlined.1 - (get_local $0) - ) - ) - (i32.const 2) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (block $std/pointer/Pointer#get:value|inlined.2 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (br $std/pointer/Pointer#get:value|inlined.2 - (get_local $0) - ) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 84) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (block $std/pointer/Pointer#get:value|inlined.3 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (br $std/pointer/Pointer#get:value|inlined.3 - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 85) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/pointer/add - (block $std/pointer/Pointer#add|inlined.0 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (set_local $1 - (get_global $std/pointer/two) - ) - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (block $std/pointer/Pointer#get:offset|inlined.2 (result i32) - (set_local $1 - (get_global $std/pointer/add) - ) - (get_local $1) - ) - (i32.const 32) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 88) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/pointer/sub - (block $std/pointer/Pointer#sub|inlined.0 (result i32) - (set_local $1 - (get_global $std/pointer/two) - ) - (set_local $0 - (get_global $std/pointer/one) - ) - (i32.sub - (get_local $1) - (get_local $0) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (block $std/pointer/Pointer#get:offset|inlined.3 (result i32) - (set_local $0 - (get_global $std/pointer/sub) - ) - (get_local $0) - ) - (i32.const 16) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 91) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $std/pointer/Pointer#get:offset|inlined.4 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (get_local $0) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 93) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/pointer/nextOne - (block (result i32) - (set_global $std/pointer/one - (block $std/pointer/Pointer#inc|inlined.0 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - ) - (get_global $std/pointer/one) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/pointer/nextOne) - (get_global $std/pointer/one) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 95) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $std/pointer/Pointer#get:offset|inlined.5 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (get_local $0) - ) - (i32.const 16) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 96) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $std/pointer/Pointer#get:offset|inlined.6 (result i32) - (set_local $0 - (get_global $std/pointer/two) - ) - (get_local $0) - ) - (i32.const 24) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 98) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/pointer/two - (block $std/pointer/Pointer#dec|inlined.0 (result i32) - (set_local $0 - (get_global $std/pointer/two) - ) - (i32.sub - (get_local $0) - (i32.const 8) - ) - ) - ) - (set_global $std/pointer/two - (block $std/pointer/Pointer#dec|inlined.1 (result i32) - (set_local $0 - (get_global $std/pointer/two) - ) - (i32.sub - (get_local $0) - (i32.const 8) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (block $std/pointer/Pointer#get:offset|inlined.7 (result i32) - (set_local $0 - (get_global $std/pointer/two) - ) - (get_local $0) - ) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (block $std/pointer/Pointer#get:value|inlined.4 (result i32) - (set_local $0 - (get_global $std/pointer/two) - ) - (br $std/pointer/Pointer#get:value|inlined.4 - (get_local $0) - ) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (block $std/pointer/Pointer#get:value|inlined.5 (result i32) - (set_local $0 - (get_global $std/pointer/two) - ) - (br $std/pointer/Pointer#get:value|inlined.5 - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 103) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/pointer/Pointer#set:value - (get_global $std/pointer/one) - (block $std/pointer/Pointer#get:value|inlined.6 (result i32) - (set_local $0 - (get_global $std/pointer/two) - ) - (br $std/pointer/Pointer#get:value|inlined.6 - (get_local $0) - ) - ) - ) - (if - (i32.eqz - (i32.ne - (block $std/pointer/Pointer#get:offset|inlined.8 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (get_local $0) - ) - (block $std/pointer/Pointer#get:offset|inlined.9 (result i32) - (set_local $0 - (get_global $std/pointer/two) - ) - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (block $std/pointer/Pointer#get:value|inlined.7 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (br $std/pointer/Pointer#get:value|inlined.7 - (get_local $0) - ) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (block $std/pointer/Pointer#get:value|inlined.8 (result i32) - (set_local $0 - (get_global $std/pointer/one) - ) - (br $std/pointer/Pointer#get:value|inlined.8 - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 108) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/pointer/buf - (call $std/pointer/Pointer#constructor - (i32.const 0) - (i32.const 0) - ) - ) - (call $std/pointer/Pointer#set - (get_global $std/pointer/buf) - (i32.const 0) - (f32.const 1.100000023841858) - ) - (call $std/pointer/Pointer#set - (get_global $std/pointer/buf) - (i32.const 1) - (f32.const 1.2000000476837158) - ) - (if - (i32.eqz - (f32.eq - (call $std/pointer/Pointer#get - (get_global $std/pointer/buf) - (i32.const 0) - ) - (f32.const 1.100000023841858) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (call $std/pointer/Pointer#get - (get_global $std/pointer/buf) - (i32.const 1) - ) - (f32.const 1.2000000476837158) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (block $std/pointer/Pointer#get|inlined.0 (result f32) - (set_local $0 - (get_global $std/pointer/buf) - ) - (set_local $1 - (i32.const 0) - ) - (f32.load - (i32.add - (get_local $0) - (i32.mul - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (f32.const 1.100000023841858) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (block $std/pointer/Pointer#get|inlined.1 (result f32) - (set_local $1 - (get_global $std/pointer/buf) - ) - (set_local $0 - (i32.const 1) - ) - (f32.load - (i32.add - (get_local $1) - (i32.mul - (get_local $0) - (i32.const 4) - ) - ) - ) - ) - (f32.const 1.2000000476837158) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 118) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (f32.load - (i32.const 0) - ) - (f32.const 1.100000023841858) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 120) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (f32.load - (i32.const 4) - ) - (f32.const 1.2000000476837158) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 121) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $std/pointer/Pointer#set|inlined.0 - (set_local $0 - (get_global $std/pointer/buf) - ) - (set_local $1 - (i32.const 2) - ) - (set_local $2 - (f32.const 1.2999999523162842) - ) - (f32.store - (i32.add - (get_local $0) - (i32.mul - (get_local $1) - (i32.const 4) - ) - ) - (get_local $2) - ) - ) - (if - (i32.eqz - (f32.eq - (call $std/pointer/Pointer#get - (get_global $std/pointer/buf) - (i32.const 2) - ) - (f32.const 1.2999999523162842) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (block $std/pointer/Pointer#get|inlined.2 (result f32) - (set_local $1 - (get_global $std/pointer/buf) - ) - (set_local $0 - (i32.const 2) - ) - (f32.load - (i32.add - (get_local $1) - (i32.mul - (get_local $0) - (i32.const 4) - ) - ) - ) - ) - (f32.const 1.2999999523162842) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 125) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (f32.load - (i32.const 8) - ) - (f32.const 1.2999999523162842) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $std/pointer/Pointer#set:value - (get_global $std/pointer/buf) - (f32.const 1.399999976158142) - ) - (if - (i32.eqz - (f32.eq - (block $std/pointer/Pointer#get:value|inlined.0 (result f32) - (set_local $0 - (get_global $std/pointer/buf) - ) - (br $std/pointer/Pointer#get:value|inlined.0 - (f32.load - (get_local $0) - ) - ) - ) - (f32.const 1.399999976158142) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (f32.load - (i32.const 0) - ) - (f32.const 1.399999976158142) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 0 + i32.const 8 + call $std/pointer/Pointer#constructor + set_global $std/pointer/one + i32.const 0 + i32.const 24 + call $std/pointer/Pointer#constructor + set_global $std/pointer/two + block $std/pointer/Pointer#get:offset|inlined.0 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 79 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get:offset|inlined.1 (result i32) + get_global $std/pointer/two + set_local $0 + get_local $0 + end + i32.const 24 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 80 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.0 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + br $std/pointer/Pointer#get:value|inlined.0 + end + i32.const 1 + i32.store + block $std/pointer/Pointer#get:value|inlined.1 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + br $std/pointer/Pointer#get:value|inlined.1 + end + i32.const 2 + i32.store offset=4 + block $std/pointer/Pointer#get:value|inlined.2 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + br $std/pointer/Pointer#get:value|inlined.2 + end + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 84 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.3 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + br $std/pointer/Pointer#get:value|inlined.3 + end + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 85 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#add|inlined.0 (result i32) + get_global $std/pointer/one + set_local $0 + get_global $std/pointer/two + set_local $1 + get_local $0 + get_local $1 + i32.add + end + set_global $std/pointer/add + block $std/pointer/Pointer#get:offset|inlined.2 (result i32) + get_global $std/pointer/add + set_local $1 + get_local $1 + end + i32.const 32 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 88 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#sub|inlined.0 (result i32) + get_global $std/pointer/two + set_local $1 + get_global $std/pointer/one + set_local $0 + get_local $1 + get_local $0 + i32.sub + end + set_global $std/pointer/sub + block $std/pointer/Pointer#get:offset|inlined.3 (result i32) + get_global $std/pointer/sub + set_local $0 + get_local $0 + end + i32.const 16 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 91 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get:offset|inlined.4 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 93 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + block $std/pointer/Pointer#inc|inlined.0 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + i32.const 8 + i32.add + end + set_global $std/pointer/one + get_global $std/pointer/one + end + set_global $std/pointer/nextOne + get_global $std/pointer/nextOne + get_global $std/pointer/one + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 95 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get:offset|inlined.5 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + end + i32.const 16 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 96 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get:offset|inlined.6 (result i32) + get_global $std/pointer/two + set_local $0 + get_local $0 + end + i32.const 24 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 98 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#dec|inlined.0 (result i32) + get_global $std/pointer/two + set_local $0 + get_local $0 + i32.const 8 + i32.sub + end + set_global $std/pointer/two + block $std/pointer/Pointer#dec|inlined.1 (result i32) + get_global $std/pointer/two + set_local $0 + get_local $0 + i32.const 8 + i32.sub + end + set_global $std/pointer/two + block $std/pointer/Pointer#get:offset|inlined.7 (result i32) + get_global $std/pointer/two + set_local $0 + get_local $0 + end + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 101 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.4 (result i32) + get_global $std/pointer/two + set_local $0 + get_local $0 + br $std/pointer/Pointer#get:value|inlined.4 + end + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 102 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.5 (result i32) + get_global $std/pointer/two + set_local $0 + get_local $0 + br $std/pointer/Pointer#get:value|inlined.5 + end + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 103 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/one + block $std/pointer/Pointer#get:value|inlined.6 (result i32) + get_global $std/pointer/two + set_local $0 + get_local $0 + br $std/pointer/Pointer#get:value|inlined.6 + end + call $std/pointer/Pointer#set:value + block $std/pointer/Pointer#get:offset|inlined.8 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + end + block $std/pointer/Pointer#get:offset|inlined.9 (result i32) + get_global $std/pointer/two + set_local $0 + get_local $0 + end + i32.ne + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 106 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.7 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + br $std/pointer/Pointer#get:value|inlined.7 + end + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 107 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get:value|inlined.8 (result i32) + get_global $std/pointer/one + set_local $0 + get_local $0 + br $std/pointer/Pointer#get:value|inlined.8 + end + i32.load offset=4 + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 108 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 0 + call $std/pointer/Pointer#constructor + set_global $std/pointer/buf + get_global $std/pointer/buf + i32.const 0 + f32.const 1.100000023841858 + call $std/pointer/Pointer#set + get_global $std/pointer/buf + i32.const 1 + f32.const 1.2000000476837158 + call $std/pointer/Pointer#set + get_global $std/pointer/buf + i32.const 0 + call $std/pointer/Pointer#get + f32.const 1.100000023841858 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 114 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/buf + i32.const 1 + call $std/pointer/Pointer#get + f32.const 1.2000000476837158 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 115 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get|inlined.0 (result f32) + get_global $std/pointer/buf + set_local $0 + i32.const 0 + set_local $1 + get_local $0 + get_local $1 + i32.const 4 + i32.mul + i32.add + f32.load + end + f32.const 1.100000023841858 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 117 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get|inlined.1 (result f32) + get_global $std/pointer/buf + set_local $1 + i32.const 1 + set_local $0 + get_local $1 + get_local $0 + i32.const 4 + i32.mul + i32.add + f32.load + end + f32.const 1.2000000476837158 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 118 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + f32.load + f32.const 1.100000023841858 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 120 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + f32.load + f32.const 1.2000000476837158 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 121 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#set|inlined.0 + get_global $std/pointer/buf + set_local $0 + i32.const 2 + set_local $1 + f32.const 1.2999999523162842 + set_local $2 + get_local $0 + get_local $1 + i32.const 4 + i32.mul + i32.add + get_local $2 + f32.store + end + get_global $std/pointer/buf + i32.const 2 + call $std/pointer/Pointer#get + f32.const 1.2999999523162842 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 124 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $std/pointer/Pointer#get|inlined.2 (result f32) + get_global $std/pointer/buf + set_local $1 + i32.const 2 + set_local $0 + get_local $1 + get_local $0 + i32.const 4 + i32.mul + i32.add + f32.load + end + f32.const 1.2999999523162842 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 125 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + f32.load + f32.const 1.2999999523162842 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/pointer/buf + f32.const 1.399999976158142 + call $std/pointer/Pointer#set:value + block $std/pointer/Pointer#get:value|inlined.0 (result f32) + get_global $std/pointer/buf + set_local $0 + get_local $0 + f32.load + br $std/pointer/Pointer#get:value|inlined.0 + end + f32.const 1.399999976158142 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 129 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + f32.load + f32.const 1.399999976158142 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 130 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 11 ;) (type $v) ) diff --git a/tests/compiler/std/polyfills.optimized.wat b/tests/compiler/std/polyfills.optimized.wat index abd52336..b8d5d5ef 100644 --- a/tests/compiler/std/polyfills.optimized.wat +++ b/tests/compiler/std/polyfills.optimized.wat @@ -4,350 +4,261 @@ (type $v (func)) (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$j (func (result i64))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\11\00\00\00~\00l\00i\00b\00/\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s") (data (i32.const 48) "\10\00\00\00s\00t\00d\00/\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/polyfills/bswap16 (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/polyfills/bswap16 (; 1 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (tee_local $1 - (i32.const 1) - ) - ) - (set_local $1 - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (tee_local $1 - (i32.const 1) - ) - (return - (i32.or - (i32.or - (i32.and - (i32.shl - (get_local $0) - (i32.const 8) - ) - (i32.const 65280) - ) - (i32.shr_u - (i32.and - (get_local $0) - (i32.const 65535) - ) - (i32.const 8) - ) - ) - (i32.and - (get_local $0) - (i32.const -65536) - ) - ) - ) - ) - (get_local $0) + i32.const 1 + tee_local $1 + i32.eqz + if + i32.const 0 + set_local $1 + end + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 1 + tee_local $1 + if + get_local $0 + i32.const 8 + i32.shl + i32.const 65280 + i32.and + get_local $0 + i32.const 65535 + i32.and + i32.const 8 + i32.shr_u + i32.or + get_local $0 + i32.const -65536 + i32.and + i32.or + return + end + get_local $0 ) - (func $~lib/polyfills/bswap (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/polyfills/bswap16 - (i32.const 43707) - ) + (func $~lib/polyfills/bswap (; 2 ;) (type $FUNCSIG$i) (result i32) + i32.const 43707 + call $~lib/polyfills/bswap16 ) - (func $~lib/polyfills/bswap16 (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/polyfills/bswap16 (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (tee_local $1 - (i32.const 1) - ) - ) - (set_local $1 - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (tee_local $1 - (i32.const 1) - ) - (return - (i32.or - (i32.or - (i32.and - (i32.shl - (get_local $0) - (i32.const 8) - ) - (i32.const 65280) - ) - (i32.and - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 24) - ) - (i32.const 255) - ) - ) - (i32.and - (get_local $0) - (i32.const -65536) - ) - ) - ) - ) - (get_local $0) + i32.const 1 + tee_local $1 + i32.eqz + if + i32.const 0 + set_local $1 + end + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 1 + tee_local $1 + if + get_local $0 + i32.const 8 + i32.shl + i32.const 65280 + i32.and + get_local $0 + i32.const 16 + i32.shl + i32.const 24 + i32.shr_s + i32.const 255 + i32.and + i32.or + get_local $0 + i32.const -65536 + i32.and + i32.or + return + end + get_local $0 ) - (func $~lib/polyfills/bswap (; 4 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/polyfills/bswap16 - (i32.const 43707) - ) + (func $~lib/polyfills/bswap (; 4 ;) (type $FUNCSIG$i) (result i32) + i32.const 43707 + call $~lib/polyfills/bswap16 ) - (func $~lib/polyfills/bswap (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const -573785174) + (func $~lib/polyfills/bswap (; 5 ;) (type $FUNCSIG$i) (result i32) + i32.const -573785174 ) - (func $~lib/polyfills/bswap (; 6 ;) (; has Stack IR ;) (type $FUNCSIG$j) (result i64) - (i64.const -2464388556401798912) + (func $~lib/polyfills/bswap (; 6 ;) (type $FUNCSIG$j) (result i64) + i64.const -2464388556401798912 ) - (func $~lib/polyfills/bswap16 (; 7 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const -7816278) + (func $~lib/polyfills/bswap16 (; 7 ;) (type $FUNCSIG$i) (result i32) + i32.const -7816278 ) - (func $start (; 8 ;) (; has Stack IR ;) (type $v) - (if - (i32.ne - (i32.and - (call $~lib/polyfills/bswap) - (i32.const 65535) - ) - (i32.const 48042) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.and - (call $~lib/polyfills/bswap) - (i32.const 65535) - ) - (i32.const 48042) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/polyfills/bswap) - (i32.const -573785174) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/polyfills/bswap) - (i32.const -573785174) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/polyfills/bswap) - (i64.const -2464388556401798912) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/polyfills/bswap) - (i64.const -2464388556401798912) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/polyfills/bswap) - (i32.const -573785174) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/polyfills/bswap) - (i32.const -573785174) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.and - (call $~lib/polyfills/bswap16 - (i32.const 43707) - ) - (i32.const 65535) - ) - (i32.const 48042) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.and - (call $~lib/polyfills/bswap16 - (i32.const 43707) - ) - (i32.const 65535) - ) - (i32.const 48042) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/polyfills/bswap16) - (i32.const -7816278) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/polyfills/bswap16) - (i32.const -7816278) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 8 ;) (type $v) + call $~lib/polyfills/bswap + i32.const 65535 + i32.and + i32.const 48042 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/polyfills/bswap + i32.const 65535 + i32.and + i32.const 48042 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/polyfills/bswap + i32.const -573785174 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/polyfills/bswap + i32.const -573785174 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/polyfills/bswap + i64.const -2464388556401798912 + i64.ne + if + i32.const 0 + i32.const 48 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/polyfills/bswap + i64.const -2464388556401798912 + i64.ne + if + i32.const 0 + i32.const 48 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/polyfills/bswap + i32.const -573785174 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/polyfills/bswap + i32.const -573785174 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 43707 + call $~lib/polyfills/bswap16 + i32.const 65535 + i32.and + i32.const 48042 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 43707 + call $~lib/polyfills/bswap16 + i32.const 65535 + i32.and + i32.const 48042 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/polyfills/bswap16 + i32.const -7816278 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/polyfills/bswap16 + i32.const -7816278 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 9 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 9 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/polyfills.untouched.wat b/tests/compiler/std/polyfills.untouched.wat index 546c193d..4d39ef52 100644 --- a/tests/compiler/std/polyfills.untouched.wat +++ b/tests/compiler/std/polyfills.untouched.wat @@ -3,1162 +3,883 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $II (func (param i64) (result i64))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\11\00\00\00~\00l\00i\00b\00/\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s\00") (data (i32.const 48) "\10\00\00\00s\00t\00d\00/\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $HEAP_BASE i32 (i32.const 84)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $~lib/polyfills/bswap16 (; 1 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 2) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 4) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 2) - (i32.const 2) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 4) - ) - ) - (return - (i32.or - (i32.or - (i32.and - (i32.shl - (get_local $0) - (i32.const 8) - ) - (i32.const 65280) - ) - (i32.and - (i32.shr_u - (i32.and - (get_local $0) - (i32.const 65535) - ) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.and - (get_local $0) - (i32.const -65536) - ) - ) - ) - ) - (get_local $0) + i32.const 2 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 4 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 4 + i32.eq + end + if + get_local $0 + i32.const 8 + i32.shl + i32.const 65280 + i32.and + get_local $0 + i32.const 65535 + i32.and + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.or + get_local $0 + i32.const -65536 + i32.and + i32.or + return + end + get_local $0 ) (func $~lib/polyfills/bswap (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 2) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 4) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 8) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2) - (i32.const 2) - ) - (unreachable) - ) - ) - (return - (call $~lib/polyfills/bswap16 - (get_local $0) - ) - ) + i32.const 2 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 4 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 8 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/polyfills/bswap16 + return ) (func $~lib/polyfills/bswap16 (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 2) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 4) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 2) - (i32.const 2) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 4) - ) - ) - (return - (i32.or - (i32.or - (i32.and - (i32.shl - (get_local $0) - (i32.const 8) - ) - (i32.const 65280) - ) - (i32.and - (i32.shr_s - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.and - (get_local $0) - (i32.const -65536) - ) - ) - ) - ) - (get_local $0) + i32.const 2 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 4 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 4 + i32.eq + end + if + get_local $0 + i32.const 8 + i32.shl + i32.const 65280 + i32.and + get_local $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 8 + i32.shr_s + i32.const 255 + i32.and + i32.or + get_local $0 + i32.const -65536 + i32.and + i32.or + return + end + get_local $0 ) (func $~lib/polyfills/bswap (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 2) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 4) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 2) - (i32.const 8) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2) - (i32.const 2) - ) - (unreachable) - ) - ) - (return - (call $~lib/polyfills/bswap16 - (get_local $0) - ) - ) + i32.const 2 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 4 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 2 + i32.const 8 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/polyfills/bswap16 + return ) (func $~lib/polyfills/bswap (; 5 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 4) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 8) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2) - (i32.const 2) - ) - (unreachable) - ) - ) - (return - (i32.or - (i32.rotl - (i32.and - (get_local $0) - (i32.const -16711936) - ) - (i32.const 8) - ) - (i32.rotr - (i32.and - (get_local $0) - (i32.const 16711935) - ) - (i32.const 8) - ) - ) - ) + i32.const 4 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 4 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 8 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + get_local $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + return ) (func $~lib/polyfills/bswap (; 6 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 4) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 8) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2) - (i32.const 2) - ) - (unreachable) - ) - ) - (return - (i32.or - (i32.rotl - (i32.and - (get_local $0) - (i32.const -16711936) - ) - (i32.const 8) - ) - (i32.rotr - (i32.and - (get_local $0) - (i32.const 16711935) - ) - (i32.const 8) - ) - ) - ) + i32.const 4 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 4 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 8 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + get_local $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + return ) (func $~lib/polyfills/bswap (; 7 ;) (type $II) (param $0 i64) (result i64) (local $1 i32) (local $2 i64) (local $3 i64) (local $4 i64) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 8) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 8) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 8) - (i32.const 4) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 8) - (i32.const 8) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $2 - (i64.and - (i64.shr_u - (get_local $0) - (i64.const 8) - ) - (i64.const 71777214294589695) - ) - ) - (set_local $3 - (i64.shl - (i64.and - (get_local $0) - (i64.const 71777214294589695) - ) - (i64.const 8) - ) - ) - (set_local $4 - (i64.or - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i64.and - (i64.shr_u - (get_local $4) - (i64.const 16) - ) - (i64.const 281470681808895) - ) - ) - (set_local $3 - (i64.shl - (i64.and - (get_local $4) - (i64.const 281470681808895) - ) - (i64.const 16) - ) - ) - (return - (i64.rotr - (i64.or - (get_local $2) - (get_local $3) - ) - (i64.const 32) - ) - ) + i32.const 8 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 8 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 8 + i32.const 4 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 8 + i32.const 8 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + set_local $2 + get_local $0 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + set_local $3 + get_local $2 + get_local $3 + i64.or + set_local $4 + get_local $4 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + set_local $2 + get_local $4 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + set_local $3 + get_local $2 + get_local $3 + i64.or + i64.const 32 + i64.rotr + return ) (func $~lib/polyfills/bswap (; 8 ;) (type $II) (param $0 i64) (result i64) (local $1 i32) (local $2 i64) (local $3 i64) (local $4 i64) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 8) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 8) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 8) - (i32.const 4) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 8) - (i32.const 8) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $2 - (i64.and - (i64.shr_u - (get_local $0) - (i64.const 8) - ) - (i64.const 71777214294589695) - ) - ) - (set_local $3 - (i64.shl - (i64.and - (get_local $0) - (i64.const 71777214294589695) - ) - (i64.const 8) - ) - ) - (set_local $4 - (i64.or - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i64.and - (i64.shr_u - (get_local $4) - (i64.const 16) - ) - (i64.const 281470681808895) - ) - ) - (set_local $3 - (i64.shl - (i64.and - (get_local $4) - (i64.const 281470681808895) - ) - (i64.const 16) - ) - ) - (return - (i64.rotr - (i64.or - (get_local $2) - (get_local $3) - ) - (i64.const 32) - ) - ) + i32.const 8 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 8 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 8 + i32.const 4 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 8 + i32.const 8 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + set_local $2 + get_local $0 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + set_local $3 + get_local $2 + get_local $3 + i64.or + set_local $4 + get_local $4 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + set_local $2 + get_local $4 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + set_local $3 + get_local $2 + get_local $3 + i64.or + i64.const 32 + i64.rotr + return ) (func $~lib/polyfills/bswap (; 9 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 4) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 8) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2) - (i32.const 2) - ) - (unreachable) - ) - ) - (return - (i32.or - (i32.rotl - (i32.and - (get_local $0) - (i32.const -16711936) - ) - (i32.const 8) - ) - (i32.rotr - (i32.and - (get_local $0) - (i32.const 16711935) - ) - (i32.const 8) - ) - ) - ) + i32.const 4 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 4 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 8 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + get_local $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + return ) (func $~lib/polyfills/bswap (; 10 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 4) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 8) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2) - (i32.const 2) - ) - (unreachable) - ) - ) - (return - (i32.or - (i32.rotl - (i32.and - (get_local $0) - (i32.const -16711936) - ) - (i32.const 8) - ) - (i32.rotr - (i32.and - (get_local $0) - (i32.const 16711935) - ) - (i32.const 8) - ) - ) - ) + i32.const 4 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 4 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 8 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + get_local $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + return ) (func $~lib/polyfills/bswap16 (; 11 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 4) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 4) - (i32.const 2) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - (return - (i32.or - (i32.or - (i32.and - (i32.shl - (get_local $0) - (i32.const 8) - ) - (i32.const 65280) - ) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.and - (get_local $0) - (i32.const -65536) - ) - ) - ) - ) - (get_local $0) + i32.const 4 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 4 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 4 + i32.eq + end + if + get_local $0 + i32.const 8 + i32.shl + i32.const 65280 + i32.and + get_local $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.or + get_local $0 + i32.const -65536 + i32.and + i32.or + return + end + get_local $0 ) (func $~lib/polyfills/bswap16 (; 12 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 4) - (i32.const 1) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 2) - ) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (if (result i32) - (tee_local $1 - (i32.eq - (i32.const 4) - (i32.const 2) - ) - ) - (get_local $1) - (i32.eq - (i32.const 4) - (i32.const 4) - ) - ) - (return - (i32.or - (i32.or - (i32.and - (i32.shl - (get_local $0) - (i32.const 8) - ) - (i32.const 65280) - ) - (i32.and - (i32.shr_s - (get_local $0) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.and - (get_local $0) - (i32.const -65536) - ) - ) - ) - ) - (get_local $0) + i32.const 4 + i32.const 1 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 2 + i32.eq + end + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 4 + i32.eq + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.eq + tee_local $1 + if (result i32) + get_local $1 + else + i32.const 4 + i32.const 4 + i32.eq + end + if + get_local $0 + i32.const 8 + i32.shl + i32.const 65280 + i32.and + get_local $0 + i32.const 8 + i32.shr_s + i32.const 255 + i32.and + i32.or + get_local $0 + i32.const -65536 + i32.and + i32.or + return + end + get_local $0 ) (func $start (; 13 ;) (type $v) - (if - (i32.eqz - (i32.eq - (i32.and - (call $~lib/polyfills/bswap - (i32.const 43707) - ) - (i32.const 65535) - ) - (i32.const 48042) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (call $~lib/polyfills/bswap - (i32.const 43707) - ) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.shr_s - (i32.shl - (i32.const 48042) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/polyfills/bswap - (i32.const -1430532899) - ) - (i32.const -573785174) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/polyfills/bswap - (i32.const -1430532899) - ) - (i32.const -573785174) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/polyfills/bswap - (i64.const 4822679907192029) - ) - (i64.const -2464388556401798912) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/polyfills/bswap - (i64.const 4822679907192029) - ) - (i64.const -2464388556401798912) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/polyfills/bswap - (i32.const -1430532899) - ) - (i32.const -573785174) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/polyfills/bswap - (i32.const -1430532899) - ) - (i32.const -573785174) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (call $~lib/polyfills/bswap16 - (i32.const 43707) - ) - (i32.const 65535) - ) - (i32.const 48042) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.shr_s - (i32.shl - (call $~lib/polyfills/bswap16 - (i32.const 43707) - ) - (i32.const 16) - ) - (i32.const 16) - ) - (i32.shr_s - (i32.shl - (i32.const 48042) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/polyfills/bswap16 - (i32.const -7820613) - ) - (i32.const -7816278) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/polyfills/bswap16 - (i32.const -7820613) - ) - (i32.const -7816278) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 43707 + call $~lib/polyfills/bswap + i32.const 65535 + i32.and + i32.const 48042 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 43707 + call $~lib/polyfills/bswap + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 48042 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1430532899 + call $~lib/polyfills/bswap + i32.const -573785174 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1430532899 + call $~lib/polyfills/bswap + i32.const -573785174 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 4822679907192029 + call $~lib/polyfills/bswap + i64.const -2464388556401798912 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 4822679907192029 + call $~lib/polyfills/bswap + i64.const -2464388556401798912 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1430532899 + call $~lib/polyfills/bswap + i32.const -573785174 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1430532899 + call $~lib/polyfills/bswap + i32.const -573785174 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 43707 + call $~lib/polyfills/bswap16 + i32.const 65535 + i32.and + i32.const 48042 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 43707 + call $~lib/polyfills/bswap16 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 48042 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -7820613 + call $~lib/polyfills/bswap16 + i32.const -7816278 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -7820613 + call $~lib/polyfills/bswap16 + i32.const -7816278 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 14 ;) (type $v) ) diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 9ef39b48..fa6b7359 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -21,670 +21,490 @@ (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\13\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") (data (i32.const 56) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") (data (i32.const 120) "\n\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 1 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/memory/memory.allocate (; 2 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (i32.const 24) - ) + (func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$i) (result i32) + i32.const 24 + call $~lib/allocator/arena/__memory_allocate ) - (func $~lib/internal/arraybuffer/computeSize (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - ) - ) + (func $~lib/internal/arraybuffer/computeSize (; 3 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + get_local $0 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl ) - (func $~lib/internal/arraybuffer/allocateUnsafe (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/arraybuffer/allocateUnsafe (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 56) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 56 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/internal/memory/memset (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memset (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $1) - ) - (return) - ) - (i32.store8 - (get_local $0) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $2) - (i32.const 3) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $1 - (i32.and - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 8) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 28) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 16) - ) - (i32.const 0) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i64.const 0) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $1 + i32.eqz + if + return + end + get_local $0 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + get_local $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $2 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $0 + get_local $1 + get_local $2 + i32.sub + i32.const -4 + i32.and + tee_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 8 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 12 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 8 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 16 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 20 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 24 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 28 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 24 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 20 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 16 + i32.sub + i32.const 0 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $2 + i32.add + set_local $0 + get_local $1 + get_local $2 + i32.sub + set_local $1 + loop $continue|0 + get_local $1 + i32.const 32 + i32.ge_u + if + get_local $0 + i64.const 0 + i64.store + get_local $0 + i32.const 8 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 16 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 24 + i32.add + i64.const 0 + i64.store + get_local $1 + i32.const 32 + i32.sub + set_local $1 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 6 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 40) - ) - (unreachable) - ) - ) - (set_local $2 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $1) - (i32.const 1) - ) - ) - (call $~lib/internal/memory/memset - (i32.add - (get_local $2) - (i32.const 8) - ) - (get_local $0) - ) - ) - (get_local $2) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 40 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $2 + get_local $1 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + i32.const 8 + i32.add + get_local $0 + call $~lib/internal/memory/memset + end + get_local $2 ) - (func $~lib/set/Set#clear (; 7 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/set/Set#clear (; 7 ;) (type $iv) (param $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 3) - ) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 32) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (get_local $1) - ) - (i32.store offset=12 - (get_local $0) - (i32.const 4) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $1 + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 3 + i32.store offset=4 + i32.const 32 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $1 + get_local $0 + get_local $1 + i32.store offset=8 + get_local $0 + i32.const 4 + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 8 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 8 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (get_local $0) + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + i32.const 0 + i32.store offset=8 + get_local $0 + i32.const 0 + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 + get_local $0 + call $~lib/set/Set#clear + get_local $0 ) - (func $~lib/internal/hash/hash8 (; 9 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.mul - (i32.xor - (get_local $0) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) + (func $~lib/internal/hash/hash8 (; 9 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul ) - (func $~lib/internal/hash/hash (; 10 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - ) + (func $~lib/internal/hash/hash (; 10 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 ) - (func $~lib/set/Set#find (; 11 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load8_u - (get_local $2) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/set/Set#find (; 11 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + i32.load8_u + get_local $1 + i32.const 255 + i32.and + i32.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=4 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/set/Set#has (; 12 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/Set#rehash (; 13 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 13 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -692,759 +512,542 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $2 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.shl - (i32.load offset=16 - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $2) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (block - (i32.store8 - (get_local $3) - (i32.load8_s - (get_local $2) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash8 - (i32.load8_s - (get_local $2) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 8) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 3 + i32.shl + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $2 + get_local $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $3 + loop $continue|0 + get_local $2 + get_local $8 + i32.ne + if + get_local $2 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_local $2 + i32.load8_s + i32.store8 + get_local $2 + i32.load8_s + call $~lib/internal/hash/hash8 + set_local $4 + get_local $3 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=4 + get_local $4 + get_local $3 + i32.store offset=8 + get_local $3 + i32.const 8 + i32.add + set_local $3 + end + get_local $2 + i32.const 8 + i32.add + set_local $2 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/set/Set#add (; 14 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 14 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $4 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (tee_local $2 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $2 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $3 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (tee_local $2 - (i32.add - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=8 - (tee_local $3 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $4) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $4 + get_local $0 + get_local $1 + get_local $4 + call $~lib/set/Set#find + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $2 + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $2 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $3 + i32.const 1 + i32.add + i32.store offset=16 + get_local $2 + i32.const 8 + i32.add + get_local $3 + i32.const 3 + i32.shl + i32.add + tee_local $2 + get_local $1 + i32.store8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $2 + get_local $0 + i32.load + get_local $4 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $3 + i32.load offset=8 + i32.store offset=4 + get_local $3 + get_local $2 + i32.store offset=8 + end ) - (func $~lib/set/Set#get:size (; 15 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + (func $~lib/set/Set#get:size (; 15 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.load offset=20 ) - (func $~lib/set/Set#delete (; 16 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 16 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/set/Set#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $1 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/set/Set#rehash - (get_local $2) - (get_local $1) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/set/Set#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $1 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $1 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $std/set/test (; 17 ;) (; has Stack IR ;) (type $v) + (func $std/set/test (; 17 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/set/Set#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $1) - ) - (if - (call $~lib/set/Set#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/set/Set#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/set/Set#clear + get_local $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/internal/hash/hash (; 18 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $0) - (i32.const 255) - ) - ) + (func $~lib/internal/hash/hash (; 18 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 ) - (func $~lib/set/Set#has (; 19 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 19 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/Set#rehash (; 20 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 20 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1452,841 +1055,598 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $2 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.shl - (i32.load offset=16 - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $2) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (block - (i32.store8 - (get_local $3) - (i32.load8_u - (get_local $2) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash8 - (i32.load8_u - (get_local $2) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 8) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 3 + i32.shl + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $2 + get_local $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $3 + loop $continue|0 + get_local $2 + get_local $8 + i32.ne + if + get_local $2 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_local $2 + i32.load8_u + i32.store8 + get_local $2 + i32.load8_u + call $~lib/internal/hash/hash8 + set_local $4 + get_local $3 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=4 + get_local $4 + get_local $3 + i32.store offset=8 + get_local $3 + i32.const 8 + i32.add + set_local $3 + end + get_local $2 + i32.const 8 + i32.add + set_local $2 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/set/Set#add (; 21 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 21 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $4 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (tee_local $2 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $2 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $3 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (tee_local $2 - (i32.add - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=8 - (tee_local $3 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $4) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $4 + get_local $0 + get_local $1 + get_local $4 + call $~lib/set/Set#find + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $2 + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $2 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $3 + i32.const 1 + i32.add + i32.store offset=16 + get_local $2 + i32.const 8 + i32.add + get_local $3 + i32.const 3 + i32.shl + i32.add + tee_local $2 + get_local $1 + i32.store8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $2 + get_local $0 + i32.load + get_local $4 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $3 + i32.load offset=8 + i32.store offset=4 + get_local $3 + get_local $2 + i32.store offset=8 + end ) - (func $~lib/set/Set#delete (; 22 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 22 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/set/Set#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $1 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/set/Set#rehash - (get_local $2) - (get_local $1) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/set/Set#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $1 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $1 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $std/set/test (; 23 ;) (; has Stack IR ;) (type $v) + (func $std/set/test (; 23 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/set/Set#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $1) - ) - (if - (call $~lib/set/Set#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/set/Set#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/set/Set#clear + get_local $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/internal/hash/hash16 (; 24 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - ) - (i32.const 16777619) - ) + (func $~lib/internal/hash/hash16 (; 24 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 8 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul ) - (func $~lib/internal/hash/hash (; 25 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 16) - ) - ) + (func $~lib/internal/hash/hash (; 25 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 ) - (func $~lib/set/Set#find (; 26 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load16_u - (get_local $2) - ) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/set/Set#find (; 26 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + i32.load16_u + get_local $1 + i32.const 65535 + i32.and + i32.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=4 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/set/Set#has (; 27 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 27 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/Set#rehash (; 28 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 28 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2294,754 +1654,538 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $2 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.shl - (i32.load offset=16 - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $2) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (block - (i32.store16 - (get_local $3) - (i32.load16_s - (get_local $2) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash16 - (i32.load16_s - (get_local $2) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 8) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 3 + i32.shl + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $2 + get_local $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $3 + loop $continue|0 + get_local $2 + get_local $8 + i32.ne + if + get_local $2 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_local $2 + i32.load16_s + i32.store16 + get_local $2 + i32.load16_s + call $~lib/internal/hash/hash16 + set_local $4 + get_local $3 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=4 + get_local $4 + get_local $3 + i32.store offset=8 + get_local $3 + i32.const 8 + i32.add + set_local $3 + end + get_local $2 + i32.const 8 + i32.add + set_local $2 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/set/Set#add (; 29 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 29 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $4 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (tee_local $2 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $2 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $3 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store16 - (tee_local $2 - (i32.add - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=8 - (tee_local $3 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $4) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $4 + get_local $0 + get_local $1 + get_local $4 + call $~lib/set/Set#find + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $2 + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $2 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $3 + i32.const 1 + i32.add + i32.store offset=16 + get_local $2 + i32.const 8 + i32.add + get_local $3 + i32.const 3 + i32.shl + i32.add + tee_local $2 + get_local $1 + i32.store16 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $2 + get_local $0 + i32.load + get_local $4 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $3 + i32.load offset=8 + i32.store offset=4 + get_local $3 + get_local $2 + i32.store offset=8 + end ) - (func $~lib/set/Set#delete (; 30 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 30 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/set/Set#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $1 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/set/Set#rehash - (get_local $2) - (get_local $1) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/set/Set#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $1 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $1 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $std/set/test (; 31 ;) (; has Stack IR ;) (type $v) + (func $std/set/test (; 31 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/set/Set#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $1) - ) - (if - (call $~lib/set/Set#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/set/Set#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/set/Set#clear + get_local $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/internal/hash/hash (; 32 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $0) - (i32.const 65535) - ) - ) + (func $~lib/internal/hash/hash (; 32 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 ) - (func $~lib/set/Set#has (; 33 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 33 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/Set#rehash (; 34 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 34 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3049,856 +2193,608 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $2 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.shl - (i32.load offset=16 - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $2) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (block - (i32.store16 - (get_local $3) - (i32.load16_u - (get_local $2) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash16 - (i32.load16_u - (get_local $2) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 8) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 3 + i32.shl + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $2 + get_local $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $3 + loop $continue|0 + get_local $2 + get_local $8 + i32.ne + if + get_local $2 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_local $2 + i32.load16_u + i32.store16 + get_local $2 + i32.load16_u + call $~lib/internal/hash/hash16 + set_local $4 + get_local $3 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=4 + get_local $4 + get_local $3 + i32.store offset=8 + get_local $3 + i32.const 8 + i32.add + set_local $3 + end + get_local $2 + i32.const 8 + i32.add + set_local $2 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/set/Set#add (; 35 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 35 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $4 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (tee_local $2 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $2 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $3 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store16 - (tee_local $2 - (i32.add - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=8 - (tee_local $3 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $4) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $4 + get_local $0 + get_local $1 + get_local $4 + call $~lib/set/Set#find + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $2 + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $2 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $3 + i32.const 1 + i32.add + i32.store offset=16 + get_local $2 + i32.const 8 + i32.add + get_local $3 + i32.const 3 + i32.shl + i32.add + tee_local $2 + get_local $1 + i32.store16 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $2 + get_local $0 + i32.load + get_local $4 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $3 + i32.load offset=8 + i32.store offset=4 + get_local $3 + get_local $2 + i32.store offset=8 + end ) - (func $~lib/set/Set#delete (; 36 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 36 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/set/Set#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $1 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/set/Set#rehash - (get_local $2) - (get_local $1) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/set/Set#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $1 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $1 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $std/set/test (; 37 ;) (; has Stack IR ;) (type $v) + (func $std/set/test (; 37 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/set/Set#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $1) - ) - (if - (call $~lib/set/Set#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/set/Set#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/set/Set#clear + get_local $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/internal/hash/hash32 (; 38 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $0) - (i32.const 24) - ) - ) - (i32.const 16777619) - ) + (func $~lib/internal/hash/hash32 (; 38 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul ) - (func $~lib/internal/hash/hash (; 39 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (call $~lib/internal/hash/hash32 - (get_local $0) - ) + (func $~lib/internal/hash/hash (; 39 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + call $~lib/internal/hash/hash32 ) - (func $~lib/set/Set#find (; 40 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/set/Set#find (; 40 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + i32.load + get_local $1 + i32.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=4 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/set/Set#has (; 41 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 41 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/Set#rehash (; 42 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 42 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3906,1321 +2802,954 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $2 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.shl - (i32.load offset=16 - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $2) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (block - (i32.store - (get_local $3) - (i32.load - (get_local $2) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash32 - (i32.load - (get_local $2) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 8) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 3 + i32.shl + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $2 + get_local $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $3 + loop $continue|0 + get_local $2 + get_local $8 + i32.ne + if + get_local $2 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_local $2 + i32.load + i32.store + get_local $2 + i32.load + call $~lib/internal/hash/hash32 + set_local $4 + get_local $3 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=4 + get_local $4 + get_local $3 + i32.store offset=8 + get_local $3 + i32.const 8 + i32.add + set_local $3 + end + get_local $2 + i32.const 8 + i32.add + set_local $2 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/set/Set#add (; 43 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 43 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $4 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (tee_local $2 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $2 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $3 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store - (tee_local $2 - (i32.add - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=8 - (tee_local $3 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $4) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $4 + get_local $0 + get_local $1 + get_local $4 + call $~lib/set/Set#find + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $2 + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $2 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $3 + i32.const 1 + i32.add + i32.store offset=16 + get_local $2 + i32.const 8 + i32.add + get_local $3 + i32.const 3 + i32.shl + i32.add + tee_local $2 + get_local $1 + i32.store + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $2 + get_local $0 + i32.load + get_local $4 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $3 + i32.load offset=8 + i32.store offset=4 + get_local $3 + get_local $2 + i32.store offset=8 + end ) - (func $~lib/set/Set#delete (; 44 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 44 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/set/Set#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $1 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/set/Set#rehash - (get_local $2) - (get_local $1) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + call $~lib/internal/hash/hash32 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/set/Set#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $1 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $1 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $std/set/test (; 45 ;) (; has Stack IR ;) (type $v) + (func $std/set/test (; 45 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/set/Set#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_s - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $1) - ) - (if - (call $~lib/set/Set#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/set/Set#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_s + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_s + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/set/Set#clear + get_local $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $std/set/test (; 46 ;) (; has Stack IR ;) (type $v) + (func $std/set/test (; 46 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/set/Set#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_u - (get_local $0) - (i32.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_u - (get_local $0) - (i32.const 50) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $1) - ) - (if - (call $~lib/set/Set#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/set/Set#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $0 + loop $repeat|1 + get_local $0 + i32.const 100 + i32.ge_u + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i32.const 50 + i32.ge_u + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/set/Set#clear + get_local $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/set/Set#clear (; 47 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/set/Set#clear (; 47 ;) (type $iv) (param $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 3) - ) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 64) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (get_local $1) - ) - (i32.store offset=12 - (get_local $0) - (i32.const 4) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $1 + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 3 + i32.store offset=4 + i32.const 64 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $1 + get_local $0 + get_local $1 + i32.store offset=8 + get_local $0 + i32.const 4 + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 48 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 48 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (get_local $0) + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + i32.const 0 + i32.store offset=8 + get_local $0 + i32.const 0 + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 + get_local $0 + call $~lib/set/Set#clear + get_local $0 ) - (func $~lib/internal/hash/hash64 (; 49 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/hash/hash64 (; 49 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.and - (tee_local $1 - (i32.wrap/i64 - (get_local $0) - ) - ) - (i32.const 255) - ) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $1) - (i32.const 24) - ) - ) - (i32.const 16777619) - ) - (i32.and - (tee_local $1 - (i32.wrap/i64 - (i64.shr_u - (get_local $0) - (i64.const 32) - ) - ) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $1) - (i32.const 24) - ) - ) - (i32.const 16777619) - ) + get_local $0 + i32.wrap/i64 + tee_local $1 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i64.const 32 + i64.shr_u + i32.wrap/i64 + tee_local $1 + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $1 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul ) - (func $~lib/internal/hash/hash (; 50 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) - (call $~lib/internal/hash/hash64 - (get_local $0) - ) + (func $~lib/internal/hash/hash (; 50 ;) (type $Ii) (param $0 i64) (result i32) + get_local $0 + call $~lib/internal/hash/hash64 ) - (func $~lib/set/Set#find (; 51 ;) (; has Stack IR ;) (type $iIii) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i64.eq - (i64.load - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/set/Set#find (; 51 ;) (type $iIii) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + i64.load + get_local $1 + i64.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=8 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/set/Set#has (; 52 ;) (; has Stack IR ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#has (; 52 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/Set#rehash (; 53 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 53 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5228,1153 +3757,836 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 4) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $2 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.shl - (i32.load offset=16 - (get_local $0) - ) - (i32.const 4) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $2) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const 1) - ) - ) - (block - (i64.store - (get_local $3) - (i64.load - (get_local $2) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash64 - (i64.load - (get_local $2) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 16) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 4 + i32.shl + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $2 + get_local $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $3 + loop $continue|0 + get_local $2 + get_local $8 + i32.ne + if + get_local $2 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_local $2 + i64.load + i64.store + get_local $2 + i64.load + call $~lib/internal/hash/hash64 + set_local $4 + get_local $3 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $3 + i32.store offset=8 + get_local $3 + i32.const 16 + i32.add + set_local $3 + end + get_local $2 + i32.const 16 + i32.add + set_local $2 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/set/Set#add (; 54 ;) (; has Stack IR ;) (type $iIv) (param $0 i32) (param $1 i64) + (func $~lib/set/Set#add (; 54 ;) (type $iIv) (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $4 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (tee_local $2 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $2 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $3 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i64.store - (tee_local $2 - (i32.add - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 4) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (tee_local $3 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $4) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $4 + get_local $0 + get_local $1 + get_local $4 + call $~lib/set/Set#find + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $2 + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $2 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $3 + i32.const 1 + i32.add + i32.store offset=16 + get_local $2 + i32.const 8 + i32.add + get_local $3 + i32.const 4 + i32.shl + i32.add + tee_local $2 + get_local $1 + i64.store + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $2 + get_local $0 + i32.load + get_local $4 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $3 + i32.load offset=8 + i32.store offset=8 + get_local $3 + get_local $2 + i32.store offset=8 + end ) - (func $~lib/set/Set#delete (; 55 ;) (; has Stack IR ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#delete (; 55 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/set/Set#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $0) - (i32.or - (i32.load offset=8 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/set/Set#rehash - (get_local $2) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + call $~lib/internal/hash/hash64 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/set/Set#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $3 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $std/set/test (; 56 ;) (; has Stack IR ;) (type $v) + (func $std/set/test (; 56 ;) (type $v) (local $0 i64) (local $1 i32) - (set_local $1 - (call $~lib/set/Set#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i64.ge_s - (get_local $0) - (i64.const 100) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i64.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i64.ge_s - (get_local $0) - (i64.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i64.ge_s - (get_local $0) - (i64.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i64.ge_s - (get_local $0) - (i64.const 50) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $1) - ) - (if - (call $~lib/set/Set#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/set/Set#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i64.const 100 + i64.ge_s + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i64.const 50 + set_local $0 + loop $repeat|1 + get_local $0 + i64.const 100 + i64.ge_s + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i64.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i64.const 50 + i64.ge_s + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i64.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i64.const 50 + i64.ge_s + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/set/Set#clear + get_local $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $std/set/test (; 57 ;) (; has Stack IR ;) (type $v) + (func $std/set/test (; 57 ;) (type $v) (local $0 i64) (local $1 i32) - (set_local $1 - (call $~lib/set/Set#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i64.ge_u - (get_local $0) - (i64.const 100) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (i64.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i64.ge_u - (get_local $0) - (i64.const 100) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (i64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i64.ge_u - (get_local $0) - (i64.const 50) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (i64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i64.ge_u - (get_local $0) - (i64.const 50) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (i64.add - (get_local $0) - (i64.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $1) - ) - (if - (call $~lib/set/Set#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/set/Set#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + i64.const 100 + i64.ge_u + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i64.const 50 + set_local $0 + loop $repeat|1 + get_local $0 + i64.const 100 + i64.ge_u + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i64.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + i64.const 50 + i64.ge_u + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i64.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + i64.const 50 + i64.ge_u + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + i64.const 1 + i64.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/set/Set#clear + get_local $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/internal/hash/hash (; 58 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32) - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $0) - ) - ) + (func $~lib/internal/hash/hash (; 58 ;) (type $fi) (param $0 f32) (result i32) + get_local $0 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 ) - (func $~lib/set/Set#find (; 59 ;) (; has Stack IR ;) (type $ifii) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (f32.eq - (f32.load - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/set/Set#find (; 59 ;) (type $ifii) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + f32.load + get_local $1 + f32.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=4 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/set/Set#has (; 60 ;) (; has Stack IR ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/set/Set#has (; 60 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/Set#rehash (; 61 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 61 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6382,823 +4594,583 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $2 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.shl - (i32.load offset=16 - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $2) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (block - (f32.store - (get_local $3) - (f32.load - (get_local $2) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (f32.load - (get_local $2) - ) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 8) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 3 + i32.shl + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $2 + get_local $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $3 + loop $continue|0 + get_local $2 + get_local $8 + i32.ne + if + get_local $2 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_local $2 + f32.load + f32.store + get_local $2 + f32.load + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + set_local $4 + get_local $3 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=4 + get_local $4 + get_local $3 + i32.store offset=8 + get_local $3 + i32.const 8 + i32.add + set_local $3 + end + get_local $2 + i32.const 8 + i32.add + set_local $2 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/set/Set#add (; 62 ;) (; has Stack IR ;) (type $ifv) (param $0 i32) (param $1 f32) + (func $~lib/set/Set#add (; 62 ;) (type $ifv) (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $4 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (tee_local $2 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $2 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $3 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (f32.store - (tee_local $2 - (i32.add - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=8 - (tee_local $3 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $4) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $4 + get_local $0 + get_local $1 + get_local $4 + call $~lib/set/Set#find + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $2 + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $2 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $3 + i32.const 1 + i32.add + i32.store offset=16 + get_local $2 + i32.const 8 + i32.add + get_local $3 + i32.const 3 + i32.shl + i32.add + tee_local $2 + get_local $1 + f32.store + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $2 + get_local $0 + i32.load + get_local $4 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $3 + i32.load offset=8 + i32.store offset=4 + get_local $3 + get_local $2 + i32.store offset=8 + end ) - (func $~lib/set/Set#delete (; 63 ;) (; has Stack IR ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/set/Set#delete (; 63 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/set/Set#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/set/Set#rehash - (get_local $2) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/set/Set#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $3 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $std/set/test (; 64 ;) (; has Stack IR ;) (type $v) + (func $std/set/test (; 64 ;) (type $v) (local $0 f32) (local $1 i32) - (set_local $1 - (call $~lib/set/Set#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (f32.lt - (get_local $0) - (f32.const 100) - ) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (f32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (f32.lt - (get_local $0) - (f32.const 100) - ) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (f32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (f32.lt - (get_local $0) - (f32.const 50) - ) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (f32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (f32.lt - (get_local $0) - (f32.const 50) - ) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f32.add - (get_local $0) - (f32.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $1) - ) - (if - (call $~lib/set/Set#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/set/Set#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + f32.const 100 + f32.lt + i32.eqz + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + f32.const 1 + f32.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + f32.const 50 + set_local $0 + loop $repeat|1 + get_local $0 + f32.const 100 + f32.lt + i32.eqz + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + f32.const 1 + f32.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + f32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + f32.const 50 + f32.lt + i32.eqz + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f32.const 1 + f32.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + f32.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + f32.const 50 + f32.lt + i32.eqz + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f32.const 1 + f32.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/set/Set#clear + get_local $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/internal/hash/hash (; 65 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $0) - ) - ) + (func $~lib/internal/hash/hash (; 65 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 ) - (func $~lib/set/Set#find (; 66 ;) (; has Stack IR ;) (type $iFii) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (f64.eq - (f64.load - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/set/Set#find (; 66 ;) (type $iFii) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + f64.load + get_local $1 + f64.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=8 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/set/Set#has (; 67 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/set/Set#has (; 67 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + i32.const 0 + i32.ne ) - (func $~lib/set/Set#rehash (; 68 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 68 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7206,755 +5178,539 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 4) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $2 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.shl - (i32.load offset=16 - (get_local $0) - ) - (i32.const 4) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $2) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const 1) - ) - ) - (block - (f64.store - (get_local $3) - (f64.load - (get_local $2) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (f64.load - (get_local $2) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 16) - ) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 4 + i32.shl + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $2 + get_local $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $3 + loop $continue|0 + get_local $2 + get_local $8 + i32.ne + if + get_local $2 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_local $2 + f64.load + f64.store + get_local $2 + f64.load + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + set_local $4 + get_local $3 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $3 + i32.store offset=8 + get_local $3 + i32.const 16 + i32.add + set_local $3 + end + get_local $2 + i32.const 16 + i32.add + set_local $2 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/set/Set#add (; 69 ;) (; has Stack IR ;) (type $iFv) (param $0 i32) (param $1 f64) + (func $~lib/set/Set#add (; 69 ;) (type $iFv) (param $0 i32) (param $1 f64) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $4 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (tee_local $2 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $2 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $3 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (f64.store - (tee_local $2 - (i32.add - (i32.add - (get_local $2) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 4) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (tee_local $3 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $4) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (get_local $2) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $4 + get_local $0 + get_local $1 + get_local $4 + call $~lib/set/Set#find + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $2 + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $2 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $3 + i32.const 1 + i32.add + i32.store offset=16 + get_local $2 + i32.const 8 + i32.add + get_local $3 + i32.const 4 + i32.shl + i32.add + tee_local $2 + get_local $1 + f64.store + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $2 + get_local $0 + i32.load + get_local $4 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $3 + i32.load offset=8 + i32.store offset=8 + get_local $3 + get_local $2 + i32.store offset=8 + end ) - (func $~lib/set/Set#delete (; 70 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/set/Set#delete (; 70 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) - (set_local $2 - (get_local $0) - ) - (set_local $0 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (tee_local $0 - (call $~lib/set/Set#find - (get_local $2) - (get_local $1) - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $0) - (i32.or - (i32.load offset=8 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=20 - (get_local $2) - (i32.sub - (i32.load offset=20 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.ge_u - (i32.add - (tee_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.const 1) - ) - (select - (i32.const 4) - (tee_local $0 - (i32.load offset=20 - (get_local $2) - ) - ) - (i32.gt_u - (i32.const 4) - (get_local $0) - ) - ) - ) - ) - (set_local $0 - (i32.lt_s - (i32.load offset=20 - (get_local $2) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $2) - ) - ) - (f64.const 0.75) - ) - ) - ) - ) - ) - (if - (get_local $0) - (call $~lib/set/Set#rehash - (get_local $2) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + set_local $2 + get_local $1 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + set_local $0 + get_local $2 + get_local $1 + get_local $0 + call $~lib/set/Set#find + tee_local $0 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + get_local $0 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + get_local $2 + get_local $2 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $2 + i32.load offset=4 + i32.const 1 + i32.shr_u + tee_local $3 + i32.const 1 + i32.add + i32.const 4 + get_local $2 + i32.load offset=20 + tee_local $0 + i32.const 4 + get_local $0 + i32.gt_u + select + i32.ge_u + tee_local $0 + if + get_local $2 + i32.load offset=20 + get_local $2 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + set_local $0 + end + get_local $0 + if + get_local $2 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) - (func $std/set/test (; 71 ;) (; has Stack IR ;) (type $v) + (func $std/set/test (; 71 ;) (type $v) (local $0 f64) (local $1 i32) - (set_local $1 - (call $~lib/set/Set#constructor) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (f64.lt - (get_local $0) - (f64.const 100) - ) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - (br $repeat|0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $0 - (f64.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (f64.lt - (get_local $0) - (f64.const 100) - ) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (set_local $0 - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - (br $repeat|1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 100) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $0 - (f64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (f64.lt - (get_local $0) - (f64.const 50) - ) - ) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - (br $repeat|2) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $0 - (f64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (f64.lt - (get_local $0) - (f64.const 50) - ) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $1) - (get_local $0) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $1) - (get_local $0) - ) - ) - (if - (call $~lib/set/Set#has - (get_local $1) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - (block - (set_local $0 - (f64.add - (get_local $0) - (f64.const 1) - ) - ) - (br $repeat|3) - ) - ) - ) - ) - (if - (i32.ne - (call $~lib/set/Set#get:size - (get_local $1) - ) - (i32.const 50) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $1) - ) - (if - (call $~lib/set/Set#get:size - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + call $~lib/set/Set#constructor + set_local $1 + block $break|0 + loop $repeat|0 + get_local $0 + f64.const 100 + f64.lt + i32.eqz + br_if $break|0 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + f64.const 1 + f64.add + set_local $0 + br $repeat|0 + else + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + f64.const 50 + set_local $0 + loop $repeat|1 + get_local $0 + f64.const 100 + f64.lt + i32.eqz + br_if $break|1 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + get_local $0 + f64.const 1 + f64.add + set_local $0 + br $repeat|1 + else + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + f64.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + f64.const 50 + f64.lt + i32.eqz + br_if $break|2 + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f64.const 1 + f64.add + set_local $0 + br $repeat|2 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + f64.const 0 + set_local $0 + loop $repeat|3 + get_local $0 + f64.const 50 + f64.lt + i32.eqz + br_if $break|3 + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#add + get_local $1 + get_local $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + call $~lib/set/Set#delete + drop + get_local $1 + get_local $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + else + get_local $0 + f64.const 1 + f64.add + set_local $0 + br $repeat|3 + end + unreachable + unreachable + end + unreachable + end + get_local $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/set/Set#clear + get_local $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $start (; 72 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.const 144) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) + (func $start (; 72 ;) (type $v) + i32.const 144 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test ) - (func $null (; 73 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 73 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index d233430b..ff47e5eb 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -19,13 +19,13 @@ (type $Fi (func (param f64) (result i32))) (type $iFii (func (param i32 f64 i32) (result i32))) (type $iFv (func (param i32 f64))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\13\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 56) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 120) "\n\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -52,768 +52,557 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/memory/memory.allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $~lib/internal/arraybuffer/computeSize (; 3 ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.sub - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 56) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $2 - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 56 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_local $0 + call $~lib/internal/arraybuffer/computeSize + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/internal/memory/memset (; 5 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/arraybuffer/ArrayBuffer#constructor (; 6 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 16) - (i32.const 40) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $2) - (i32.const 1) - ) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $1) - ) - ) - ) - (get_local $3) + get_local $1 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.gt_u + if + i32.const 0 + i32.const 8 + i32.const 16 + i32.const 40 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $2 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $1 + call $~lib/internal/memory/memset + end + get_local $3 ) (func $~lib/set/Set#clear (; 7 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/set/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 32) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 32 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/set/Set#constructor (; 8 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/set/Set#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/set/Set#clear + get_local $0 ) (func $~lib/internal/hash/hash8 (; 9 ;) (type $ii) (param $0 i32) (result i32) - (i32.mul - (i32.xor - (get_global $~lib/internal/hash/FNV_OFFSET) - (get_local $0) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) + get_global $~lib/internal/hash/FNV_OFFSET + get_local $0 + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul ) (func $~lib/internal/hash/hash (; 10 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) + get_local $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + return ) (func $~lib/set/Set#find (; 11 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (get_global $~lib/set/EMPTY) - ) - ) - ) - (i32.eq - (i32.load8_s - (get_local $3) - ) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.xor - (get_global $~lib/set/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load8_s + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/set/Set#has (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + get_local $1 + call $~lib/internal/hash/hash + call $~lib/set/Set#find + i32.const 0 + i32.ne ) (func $~lib/set/Set#rehash (; 13 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -827,999 +616,719 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/set/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/set/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 8) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 8) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $9) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store8 - (get_local $10) - (i32.load8_s - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $11 - (i32.load8_s - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash8 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 8) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 8) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/set/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load8_s + i32.store8 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $9 + i32.load8_s + set_local $11 + get_local $11 + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.0 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=4 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/set/Set#add (; 14 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $3 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 8) - ) - ) - ) - ) - (i32.store8 - (get_local $3) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $5) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + set_local $3 + get_local $3 + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $4 + get_local $4 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $5 + i32.const 1 + i32.add + i32.store offset=16 + get_local $5 + end + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $3 + get_local $3 + get_local $1 + i32.store8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $5 + get_local $3 + get_local $5 + i32.load offset=8 + i32.store offset=4 + get_local $5 + get_local $3 + i32.store offset=8 + end ) (func $~lib/set/Set#get:size (; 15 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/set/Set#delete (; 16 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash8 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (i32.load offset=4 - (get_local $2) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/set/Set#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.or + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/set/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) (func $std/set/test (; 17 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/set/Set#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/set/Set#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/set/Set#clear + get_local $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/set/Set#clear (; 18 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/set/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 32) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 32 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/set/Set#constructor (; 19 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/set/Set#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/set/Set#clear + get_local $0 ) (func $~lib/internal/hash/hash (; 20 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $0) - (i32.const 255) - ) - ) - ) + get_local $0 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + return ) (func $~lib/set/Set#find (; 21 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (get_global $~lib/set/EMPTY) - ) - ) - ) - (i32.eq - (i32.load8_u - (get_local $3) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.xor - (get_global $~lib/set/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load8_u + get_local $1 + i32.const 255 + i32.and + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/set/Set#has (; 22 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + get_local $1 + call $~lib/internal/hash/hash + call $~lib/set/Set#find + i32.const 0 + i32.ne ) (func $~lib/set/Set#rehash (; 23 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -1833,1033 +1342,743 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/set/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/set/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 8) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 8) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $9) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store8 - (get_local $10) - (i32.load8_u - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $11 - (i32.load8_u - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash8 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 8) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 8) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/set/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load8_u + i32.store8 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $9 + i32.load8_u + set_local $11 + get_local $11 + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.0 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=4 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/set/Set#add (; 24 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $3 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 8) - ) - ) - ) - ) - (i32.store8 - (get_local $3) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $5) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + set_local $3 + get_local $3 + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $4 + get_local $4 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $5 + i32.const 1 + i32.add + i32.store offset=16 + get_local $5 + end + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $3 + get_local $3 + get_local $1 + i32.store8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $5 + get_local $3 + get_local $5 + i32.load offset=8 + i32.store offset=4 + get_local $5 + get_local $3 + i32.store offset=8 + end ) (func $~lib/set/Set#get:size (; 25 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/set/Set#delete (; 26 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash8 - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (i32.load offset=4 - (get_local $2) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i32.const 255 + i32.and + call $~lib/internal/hash/hash8 + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/set/Set#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.or + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/set/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) (func $std/set/test (; 27 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/set/Set#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/set/Set#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/set/Set#clear + get_local $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/set/Set#clear (; 28 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/set/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 32) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 32 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/set/Set#constructor (; 29 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/set/Set#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/set/Set#clear + get_local $0 ) (func $~lib/internal/hash/hash16 (; 30 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (set_local $1 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (get_local $0) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (get_local $1) + get_global $~lib/internal/hash/FNV_OFFSET + set_local $1 + get_local $1 + get_local $0 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 8 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 ) (func $~lib/internal/hash/hash (; 31 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) + get_local $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + return ) (func $~lib/set/Set#find (; 32 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (get_global $~lib/set/EMPTY) - ) - ) - ) - (i32.eq - (i32.load16_s - (get_local $3) - ) - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.xor - (get_global $~lib/set/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load16_s + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/set/Set#has (; 33 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + get_local $1 + call $~lib/internal/hash/hash + call $~lib/set/Set#find + i32.const 0 + i32.ne ) (func $~lib/set/Set#rehash (; 34 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -2873,999 +2092,719 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/set/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/set/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 8) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 8) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $9) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store16 - (get_local $10) - (i32.load16_s - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $11 - (i32.load16_s - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash16 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 8) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 8) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/set/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load16_s + i32.store16 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $9 + i32.load16_s + set_local $11 + get_local $11 + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.0 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=4 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/set/Set#add (; 35 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $3 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 8) - ) - ) - ) - ) - (i32.store16 - (get_local $3) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $5) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + set_local $3 + get_local $3 + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $4 + get_local $4 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $5 + i32.const 1 + i32.add + i32.store offset=16 + get_local $5 + end + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $3 + get_local $3 + get_local $1 + i32.store16 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $5 + get_local $3 + get_local $5 + i32.load offset=8 + i32.store offset=4 + get_local $5 + get_local $3 + i32.store offset=8 + end ) (func $~lib/set/Set#get:size (; 36 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/set/Set#delete (; 37 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash16 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 16) - ) - (i32.const 16) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (i32.load offset=4 - (get_local $2) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/set/Set#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.or + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/set/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) (func $std/set/test (; 38 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/set/Set#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/set/Set#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/set/Set#clear + get_local $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/set/Set#clear (; 39 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/set/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 32) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 32 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/set/Set#constructor (; 40 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/set/Set#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/set/Set#clear + get_local $0 ) (func $~lib/internal/hash/hash (; 41 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $0) - (i32.const 65535) - ) - ) - ) + get_local $0 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + return ) (func $~lib/set/Set#find (; 42 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (get_global $~lib/set/EMPTY) - ) - ) - ) - (i32.eq - (i32.load16_u - (get_local $3) - ) - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.xor - (get_global $~lib/set/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load16_u + get_local $1 + i32.const 65535 + i32.and + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/set/Set#has (; 43 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + get_local $1 + call $~lib/internal/hash/hash + call $~lib/set/Set#find + i32.const 0 + i32.ne ) (func $~lib/set/Set#rehash (; 44 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -3879,1051 +2818,755 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/set/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/set/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 8) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 8) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $9) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store16 - (get_local $10) - (i32.load16_u - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $11 - (i32.load16_u - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash16 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 8) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 8) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/set/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load16_u + i32.store16 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $9 + i32.load16_u + set_local $11 + get_local $11 + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.0 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=4 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/set/Set#add (; 45 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $3 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 8) - ) - ) - ) - ) - (i32.store16 - (get_local $3) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $5) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + set_local $3 + get_local $3 + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $4 + get_local $4 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $5 + i32.const 1 + i32.add + i32.store offset=16 + get_local $5 + end + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $3 + get_local $3 + get_local $1 + i32.store16 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $5 + get_local $3 + get_local $5 + i32.load offset=8 + i32.store offset=4 + get_local $5 + get_local $3 + i32.store offset=8 + end ) (func $~lib/set/Set#get:size (; 46 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/set/Set#delete (; 47 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash16 - (i32.and - (get_local $1) - (i32.const 65535) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (i32.load offset=4 - (get_local $2) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i32.const 65535 + i32.and + call $~lib/internal/hash/hash16 + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/set/Set#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.or + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/set/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) (func $std/set/test (; 48 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/set/Set#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/set/Set#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/set/Set#clear + get_local $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/set/Set#clear (; 49 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/set/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 32) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 32 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/set/Set#constructor (; 50 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/set/Set#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/set/Set#clear + get_local $0 ) (func $~lib/internal/hash/hash32 (; 51 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (set_local $1 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (get_local $0) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.shr_u - (get_local $0) - (i32.const 24) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (get_local $1) + get_global $~lib/internal/hash/FNV_OFFSET + set_local $1 + get_local $1 + get_local $0 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 24 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 ) (func $~lib/internal/hash/hash (; 52 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/hash/hash32 - (get_local $0) - ) - ) + get_local $0 + call $~lib/internal/hash/hash32 + return ) (func $~lib/set/Set#find (; 53 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (get_global $~lib/set/EMPTY) - ) - ) - ) - (i32.eq - (i32.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.xor - (get_global $~lib/set/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load + get_local $1 + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/set/Set#has (; 54 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + get_local $1 + call $~lib/internal/hash/hash + call $~lib/set/Set#find + i32.const 0 + i32.ne ) (func $~lib/set/Set#rehash (; 55 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -4937,987 +3580,711 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/set/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/set/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 8) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 8) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $9) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store - (get_local $10) - (i32.load - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $11 - (i32.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash32 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 8) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 8) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/set/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load + i32.store + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $9 + i32.load + set_local $11 + get_local $11 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.0 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=4 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/set/Set#add (; 56 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $3 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 8) - ) - ) - ) - ) - (i32.store - (get_local $3) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $5) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + set_local $3 + get_local $3 + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $4 + get_local $4 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $5 + i32.const 1 + i32.add + i32.store offset=16 + get_local $5 + end + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $3 + get_local $3 + get_local $1 + i32.store + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $5 + get_local $3 + get_local $5 + i32.load offset=8 + i32.store offset=4 + get_local $5 + get_local $3 + i32.store offset=8 + end ) (func $~lib/set/Set#get:size (; 57 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/set/Set#delete (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (i32.load offset=4 - (get_local $2) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/set/Set#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.or + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/set/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) (func $std/set/test (; 59 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/set/Set#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_s - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/set/Set#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_s + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/set/Set#clear + get_local $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/set/Set#clear (; 60 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/set/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 32) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 32 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/set/Set#constructor (; 61 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/set/Set#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/set/Set#clear + get_local $0 ) (func $~lib/internal/hash/hash (; 62 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/internal/hash/hash32 - (get_local $0) - ) - ) + get_local $0 + call $~lib/internal/hash/hash32 + return ) (func $~lib/set/Set#find (; 63 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (get_global $~lib/set/EMPTY) - ) - ) - ) - (i32.eq - (i32.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.xor - (get_global $~lib/set/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load + get_local $1 + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/set/Set#has (; 64 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + get_local $1 + call $~lib/internal/hash/hash + call $~lib/set/Set#find + i32.const 0 + i32.ne ) (func $~lib/set/Set#rehash (; 65 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -5931,1117 +4298,799 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/set/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/set/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 8) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 8) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $9) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store - (get_local $10) - (i32.load - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $11 - (i32.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash32 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 8) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 8) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/set/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load + i32.store + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $9 + i32.load + set_local $11 + get_local $11 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.0 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=4 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/set/Set#add (; 66 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $3 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 8) - ) - ) - ) - ) - (i32.store - (get_local $3) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $5) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + set_local $3 + get_local $3 + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $4 + get_local $4 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $5 + i32.const 1 + i32.add + i32.store offset=16 + get_local $5 + end + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $3 + get_local $3 + get_local $1 + i32.store + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $5 + get_local $3 + get_local $5 + i32.load offset=8 + i32.store offset=4 + get_local $5 + get_local $3 + i32.store offset=8 + end ) (func $~lib/set/Set#get:size (; 67 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/set/Set#delete (; 68 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (i32.load offset=4 - (get_local $2) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/set/Set#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.or + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/set/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) (func $std/set/test (; 69 ;) (type $v) (local $0 i32) (local $1 i32) - (set_local $0 - (call $~lib/set/Set#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_u - (get_local $1) - (i32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/set/Set#constructor + set_local $0 + block $break|0 + i32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i32.const 50 + set_local $1 + loop $repeat|1 + get_local $1 + i32.const 100 + i32.lt_u + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i32.const 50 + i32.lt_u + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/set/Set#clear + get_local $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/set/Set#clear (; 70 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/set/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 64) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 64 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/set/Set#constructor (; 71 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/set/Set#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/set/Set#clear + get_local $0 ) (func $~lib/internal/hash/hash64 (; 72 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $1 - (i32.wrap/i64 - (get_local $0) - ) - ) - (set_local $2 - (i32.wrap/i64 - (i64.shr_u - (get_local $0) - (i64.const 32) - ) - ) - ) - (set_local $3 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.shr_u - (get_local $1) - (i32.const 24) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (get_local $2) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $2) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.and - (i32.shr_u - (get_local $2) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $3 - (i32.mul - (i32.xor - (get_local $3) - (i32.shr_u - (get_local $2) - (i32.const 24) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (get_local $3) + get_local $0 + i32.wrap/i64 + set_local $1 + get_local $0 + i64.const 32 + i64.shr_u + i32.wrap/i64 + set_local $2 + get_global $~lib/internal/hash/FNV_OFFSET + set_local $3 + get_local $3 + get_local $1 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $1 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $1 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $1 + i32.const 24 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 + get_local $2 + i32.const 24 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $3 + get_local $3 ) (func $~lib/internal/hash/hash (; 73 ;) (type $Ii) (param $0 i64) (result i32) - (return - (call $~lib/internal/hash/hash64 - (get_local $0) - ) - ) + get_local $0 + call $~lib/internal/hash/hash64 + return ) (func $~lib/set/Set#find (; 74 ;) (type $iIii) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/set/EMPTY) - ) - ) - ) - (i64.eq - (i64.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/set/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i64.load + get_local $1 + i64.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/set/Set#has (; 75 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + get_local $1 + call $~lib/internal/hash/hash + call $~lib/set/Set#find + i32.const 0 + i32.ne ) (func $~lib/set/Set#rehash (; 76 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -7056,987 +5105,711 @@ (local $11 i64) (local $12 i32) (local $13 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/set/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/set/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 16) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 16) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i64.store - (get_local $10) - (i64.load - (get_local $9) - ) - ) - (set_local $12 - (i32.and - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $11 - (i64.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash64 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $13 - (i32.add - (get_local $3) - (i32.mul - (get_local $12) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $13) - ) - ) - (i32.store offset=8 - (get_local $13) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 16) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 16) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/set/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i64.load + i64.store + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $9 + i64.load + set_local $11 + get_local $11 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.0 + end + get_local $1 + i32.and + set_local $12 + get_local $3 + get_local $12 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $13 + get_local $10 + get_local $13 + i32.load offset=8 + i32.store offset=8 + get_local $13 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/set/Set#add (; 77 ;) (type $iIv) (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $3 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 16) - ) - ) - ) - ) - (i64.store - (get_local $3) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $5) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + set_local $3 + get_local $3 + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $4 + get_local $4 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $5 + i32.const 1 + i32.add + i32.store offset=16 + get_local $5 + end + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $3 + get_local $3 + get_local $1 + i64.store + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $5 + get_local $3 + get_local $5 + i32.load offset=8 + i32.store offset=8 + get_local $5 + get_local $3 + i32.store offset=8 + end ) (func $~lib/set/Set#get:size (; 78 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/set/Set#delete (; 79 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.or - (i32.load offset=8 - (get_local $2) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/set/Set#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.or + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/set/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) (func $std/set/test (; 80 ;) (type $v) (local $0 i32) (local $1 i64) - (set_local $0 - (call $~lib/set/Set#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i64.lt_s - (get_local $1) - (i64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i64.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i64.lt_s - (get_local $1) - (i64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i64.lt_s - (get_local $1) - (i64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i64.lt_s - (get_local $1) - (i64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/set/Set#constructor + set_local $0 + block $break|0 + i64.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i64.const 100 + i64.lt_s + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i64.const 50 + set_local $1 + loop $repeat|1 + get_local $1 + i64.const 100 + i64.lt_s + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i64.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i64.const 50 + i64.lt_s + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i64.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i64.const 50 + i64.lt_s + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/set/Set#clear + get_local $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/set/Set#clear (; 81 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/set/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 64) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 64 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/set/Set#constructor (; 82 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/set/Set#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/set/Set#clear + get_local $0 ) (func $~lib/internal/hash/hash (; 83 ;) (type $Ii) (param $0 i64) (result i32) - (return - (call $~lib/internal/hash/hash64 - (get_local $0) - ) - ) + get_local $0 + call $~lib/internal/hash/hash64 + return ) (func $~lib/set/Set#find (; 84 ;) (type $iIii) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/set/EMPTY) - ) - ) - ) - (i64.eq - (i64.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/set/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i64.load + get_local $1 + i64.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/set/Set#has (; 85 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + get_local $1 + call $~lib/internal/hash/hash + call $~lib/set/Set#find + i32.const 0 + i32.ne ) (func $~lib/set/Set#rehash (; 86 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -8051,989 +5824,712 @@ (local $11 i64) (local $12 i32) (local $13 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/set/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/set/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 16) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 16) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i64.store - (get_local $10) - (i64.load - (get_local $9) - ) - ) - (set_local $12 - (i32.and - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $11 - (i64.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash64 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $13 - (i32.add - (get_local $3) - (i32.mul - (get_local $12) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $13) - ) - ) - (i32.store offset=8 - (get_local $13) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 16) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 16) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/set/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i64.load + i64.store + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $9 + i64.load + set_local $11 + get_local $11 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.0 + end + get_local $1 + i32.and + set_local $12 + get_local $3 + get_local $12 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $13 + get_local $10 + get_local $13 + i32.load offset=8 + i32.store offset=8 + get_local $13 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/set/Set#add (; 87 ;) (type $iIv) (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $3 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 16) - ) - ) - ) - ) - (i64.store - (get_local $3) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $5) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + set_local $3 + get_local $3 + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $4 + get_local $4 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $5 + i32.const 1 + i32.add + i32.store offset=16 + get_local $5 + end + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $3 + get_local $3 + get_local $1 + i64.store + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $5 + get_local $3 + get_local $5 + i32.load offset=8 + i32.store offset=8 + get_local $5 + get_local $3 + i32.store offset=8 + end ) (func $~lib/set/Set#get:size (; 88 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/set/Set#delete (; 89 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash64 - (get_local $1) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.or - (i32.load offset=8 - (get_local $2) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/set/Set#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.or + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/set/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) (func $std/set/test (; 90 ;) (type $v) (local $0 i32) (local $1 i64) - (set_local $0 - (call $~lib/set/Set#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i64.lt_u - (get_local $1) - (i64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (i64.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i64.lt_u - (get_local $1) - (i64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i64.lt_u - (get_local $1) - (i64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (i64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i64.lt_u - (get_local $1) - (i64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (i64.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/set/Set#constructor + set_local $0 + block $break|0 + i64.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + i64.const 100 + i64.lt_u + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + i64.const 50 + set_local $1 + loop $repeat|1 + get_local $1 + i64.const 100 + i64.lt_u + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + i64.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + i64.const 50 + i64.lt_u + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + i64.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + i64.const 50 + i64.lt_u + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + i64.const 1 + i64.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/set/Set#clear + get_local $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/set/Set#clear (; 91 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/set/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 32) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 32 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/set/Set#constructor (; 92 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/set/Set#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/set/Set#clear + get_local $0 ) (func $~lib/internal/hash/hash (; 93 ;) (type $fi) (param $0 f32) (result i32) - (return - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $0) - ) - ) - ) + get_local $0 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + return ) (func $~lib/set/Set#find (; 94 ;) (type $ifii) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (get_global $~lib/set/EMPTY) - ) - ) - ) - (f32.eq - (f32.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.xor - (get_global $~lib/set/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + f32.load + get_local $1 + f32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/set/Set#has (; 95 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + get_local $1 + call $~lib/internal/hash/hash + call $~lib/set/Set#find + i32.const 0 + i32.ne ) (func $~lib/set/Set#rehash (; 96 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -9048,993 +6544,714 @@ (local $11 f32) (local $12 i32) (local $13 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/set/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/set/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 8) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 8) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=4 - (get_local $9) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (f32.store - (get_local $10) - (f32.load - (get_local $9) - ) - ) - (set_local $12 - (i32.and - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $11 - (f32.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $11) - ) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $13 - (i32.add - (get_local $3) - (i32.mul - (get_local $12) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=8 - (get_local $13) - ) - ) - (i32.store offset=8 - (get_local $13) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 8) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 8) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/set/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + f32.load + f32.store + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $9 + f32.load + set_local $11 + get_local $11 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.0 + end + get_local $1 + i32.and + set_local $12 + get_local $3 + get_local $12 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $13 + get_local $10 + get_local $13 + i32.load offset=8 + i32.store offset=4 + get_local $13 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/set/Set#add (; 97 ;) (type $ifv) (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $3 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 8) - ) - ) - ) - ) - (f32.store - (get_local $3) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.load offset=8 - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $5) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + set_local $3 + get_local $3 + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $4 + get_local $4 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $5 + i32.const 1 + i32.add + i32.store offset=16 + get_local $5 + end + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + end + i32.mul + i32.add + set_local $3 + get_local $3 + get_local $1 + f32.store + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $5 + get_local $3 + get_local $5 + i32.load offset=8 + i32.store offset=4 + get_local $5 + get_local $3 + i32.store offset=8 + end ) (func $~lib/set/Set#get:size (; 98 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/set/Set#delete (; 99 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash32 - (i32.reinterpret/f32 - (get_local $1) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (i32.load offset=4 - (get_local $2) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i32.reinterpret/f32 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/set/Set#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=4 + get_global $~lib/set/EMPTY + i32.or + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/set/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) (func $std/set/test (; 100 ;) (type $v) (local $0 i32) (local $1 f32) - (set_local $0 - (call $~lib/set/Set#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (f32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (f32.lt - (get_local $1) - (f32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (f32.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (f32.lt - (get_local $1) - (f32.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (f32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (f32.lt - (get_local $1) - (f32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (f32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (f32.lt - (get_local $1) - (f32.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f32.add - (get_local $1) - (f32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/set/Set#constructor + set_local $0 + block $break|0 + f32.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + f32.const 100 + f32.lt + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f32.const 1 + f32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + f32.const 50 + set_local $1 + loop $repeat|1 + get_local $1 + f32.const 100 + f32.lt + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f32.const 1 + f32.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + f32.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + f32.const 50 + f32.lt + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f32.const 1 + f32.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + f32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + f32.const 50 + f32.lt + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f32.const 1 + f32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/set/Set#clear + get_local $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/set/Set#clear (; 101 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/set/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 64) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 64 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/set/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/set/Set#constructor (; 102 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/set/Set#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/set/Set#clear + get_local $0 ) (func $~lib/internal/hash/hash (; 103 ;) (type $Fi) (param $0 f64) (result i32) - (return - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - ) + get_local $0 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + return ) (func $~lib/set/Set#find (; 104 ;) (type $iFii) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/set/EMPTY) - ) - ) - ) - (f64.eq - (f64.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/set/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + f64.load + get_local $1 + f64.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/set/Set#has (; 105 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) - (i32.ne - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + get_local $1 + call $~lib/internal/hash/hash + call $~lib/set/Set#find + i32.const 0 + i32.ne ) (func $~lib/set/Set#rehash (; 106 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -10049,846 +7266,606 @@ (local $11 f64) (local $12 i32) (local $13 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/set/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/set/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 16) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 16) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (f64.store - (get_local $10) - (f64.load - (get_local $9) - ) - ) - (set_local $12 - (i32.and - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (set_local $11 - (f64.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $11) - ) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $13 - (i32.add - (get_local $3) - (i32.mul - (get_local $12) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $13) - ) - ) - (i32.store offset=8 - (get_local $13) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 16) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 16) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/set/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + f64.load + f64.store + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $9 + f64.load + set_local $11 + get_local $11 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.0 + end + get_local $1 + i32.and + set_local $12 + get_local $3 + get_local $12 + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $13 + get_local $10 + get_local $13 + i32.load offset=8 + i32.store offset=8 + get_local $13 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/set/Set#add (; 107 ;) (type $iFv) (param $0 i32) (param $1 f64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/internal/hash/hash - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $3 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $5 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 16) - ) - ) - ) - ) - (f64.store - (get_local $3) - (get_local $1) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/set/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (get_local $5) - ) - ) - (i32.store offset=8 - (get_local $5) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/set/Set#find + set_local $3 + get_local $3 + i32.eqz + if + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + get_local $0 + i32.load offset=8 + set_local $4 + get_local $4 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $5 + i32.const 1 + i32.add + i32.store offset=16 + get_local $5 + end + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + end + i32.mul + i32.add + set_local $3 + get_local $3 + get_local $1 + f64.store + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/set/BUCKET_SIZE + i32.mul + i32.add + set_local $5 + get_local $3 + get_local $5 + i32.load offset=8 + i32.store offset=8 + get_local $5 + get_local $3 + i32.store offset=8 + end ) (func $~lib/set/Set#get:size (; 108 ;) (type $ii) (param $0 i32) (result i32) - (i32.load offset=20 - (get_local $0) - ) + get_local $0 + i32.load offset=20 ) (func $~lib/set/Set#delete (; 109 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (call $~lib/set/Set#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash64 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.or - (i32.load offset=8 - (get_local $2) - ) - (get_global $~lib/set/EMPTY) - ) - ) - (i32.store offset=20 - (get_local $0) - (i32.sub - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $3 - (i32.shr_u - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.ge_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (select - (tee_local $4 - (get_global $~lib/set/INITIAL_CAPACITY) - ) - (tee_local $5 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.gt_u - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/set/FREE_FACTOR) - ) - ) - ) - (get_local $4) - ) - (call $~lib/set/Set#rehash - (get_local $0) - (get_local $3) - ) - ) - (i32.const 1) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + i64.reinterpret/f64 + call $~lib/internal/hash/hash64 + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/set/Set#find + set_local $2 + get_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + get_local $2 + i32.load offset=8 + get_global $~lib/set/EMPTY + i32.or + i32.store offset=8 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + set_local $3 + get_local $3 + i32.const 1 + i32.add + get_global $~lib/set/INITIAL_CAPACITY + tee_local $4 + get_local $0 + i32.load offset=20 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_u + select + i32.ge_u + tee_local $4 + if (result i32) + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/set/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + call $~lib/set/Set#rehash + end + i32.const 1 ) (func $std/set/test (; 110 ;) (type $v) (local $0 i32) (local $1 f64) - (set_local $0 - (call $~lib/set/Set#constructor - (i32.const 0) - ) - ) - (block $break|0 - (set_local $1 - (f64.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (f64.lt - (get_local $1) - (f64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 8) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 10) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - (br $repeat|0) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 12) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|1 - (set_local $1 - (f64.const 50) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (f64.lt - (get_local $1) - (f64.const 100) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 16) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 18) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - (br $repeat|1) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 100) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 20) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|2 - (set_local $1 - (f64.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (f64.lt - (get_local $1) - (f64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 24) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 26) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - (br $repeat|2) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 28) - (i32.const 2) - ) - (unreachable) - ) - ) - (block $break|3 - (set_local $1 - (f64.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (f64.lt - (get_local $1) - (f64.const 50) - ) - ) - ) - (block - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 32) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#add - (get_local $0) - (get_local $1) - ) - (if - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (drop - (call $~lib/set/Set#delete - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/set/Set#has - (get_local $0) - (get_local $1) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 36) - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (set_local $1 - (f64.add - (get_local $1) - (f64.const 1) - ) - ) - (br $repeat|3) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 50) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 38) - (i32.const 2) - ) - (unreachable) - ) - ) - (call $~lib/set/Set#clear - (get_local $0) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/set/Set#get:size - (get_local $0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 120) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + call $~lib/set/Set#constructor + set_local $0 + block $break|0 + f64.const 0 + set_local $1 + loop $repeat|0 + get_local $1 + f64.const 100 + f64.lt + i32.eqz + br_if $break|0 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 8 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 10 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f64.const 1 + f64.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 12 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|1 + f64.const 50 + set_local $1 + loop $repeat|1 + get_local $1 + f64.const 100 + f64.lt + i32.eqz + br_if $break|1 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 16 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 18 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f64.const 1 + f64.add + set_local $1 + br $repeat|1 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 20 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|2 + f64.const 0 + set_local $1 + loop $repeat|2 + get_local $1 + f64.const 50 + f64.lt + i32.eqz + br_if $break|2 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 24 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 26 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f64.const 1 + f64.add + set_local $1 + br $repeat|2 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 28 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $break|3 + f64.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + f64.const 50 + f64.lt + i32.eqz + br_if $break|3 + block + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 32 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#add + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + call $~lib/set/Set#delete + drop + get_local $0 + get_local $1 + call $~lib/set/Set#has + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 36 + i32.const 4 + call $~lib/env/abort + unreachable + end + end + get_local $1 + f64.const 1 + f64.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + get_local $0 + call $~lib/set/Set#get:size + i32.const 50 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 38 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/set/Set#clear + get_local $0 + call $~lib/set/Set#get:size + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $start (; 111 ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) - (call $std/set/test) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test + call $std/set/test ) (func $null (; 112 ;) (type $v) ) diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 6cba95a4..3fcdc5ee 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -10,6 +10,7 @@ (type $FUNCSIG$ji (func (param i32) (result i64))) (type $FUNCSIG$fi (func (param i32) (result f32))) (type $FUNCSIG$di (func (param i32) (result f64))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\08\00\00\00\00\00\00\00\01\00\00\00\02") (data (i32.const 24) "\08\00\00\00\02") @@ -24,2797 +25,1904 @@ (data (i32.const 136) "\13\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00-\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 184) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 216) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/array/Array#__get (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__get (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - (tee_local $1 - (if (result i32) - (i32.lt_u - (get_local $0) - (i32.shr_u - (i32.load - (tee_local $1 - (i32.load - (i32.const 24) - ) - ) - ) - (i32.const 2) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $1) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - (unreachable) - ) - ) + get_local $0 + i32.const 24 + i32.load + tee_local $1 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $1 + get_local $0 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $1 ) - (func $~lib/internal/arraybuffer/computeSize (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - ) - ) + (func $~lib/internal/arraybuffer/computeSize (; 2 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + get_local $0 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl ) - (func $~lib/internal/memory/memset (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memset (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $1) - ) - (return) - ) - (i32.store8 - (get_local $0) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $2) - (i32.const 3) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $1 - (i32.and - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 8) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 28) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 16) - ) - (i32.const 0) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i64.const 0) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $1 + i32.eqz + if + return + end + get_local $0 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + get_local $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $2 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $0 + get_local $1 + get_local $2 + i32.sub + i32.const -4 + i32.and + tee_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 8 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 12 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 8 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 16 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 20 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 24 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 28 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 24 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 20 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 16 + i32.sub + i32.const 0 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $2 + i32.add + set_local $0 + get_local $1 + get_local $2 + i32.sub + set_local $1 + loop $continue|0 + get_local $1 + i32.const 32 + i32.ge_u + if + get_local $0 + i64.const 0 + i64.store + get_local $0 + i32.const 8 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 16 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 24 + i32.add + i64.const 0 + i64.store + get_local $1 + i32.const 32 + i32.sub + set_local $1 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/allocator/arena/__memory_allocate (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/internal/arraybuffer/allocateUnsafe (; 5 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/arraybuffer/allocateUnsafe (; 5 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 216) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 216 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/internal/memory/memcpy (; 6 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memcpy (; 6 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (loop $continue|0 - (if - (tee_local $3 - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - ) - (block - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (block - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (if - (i32.ne - (tee_local $3 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 1) - ) - (block - (br_if $case1|2 - (i32.eq - (get_local $3) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $3) - (i32.const 3) - ) - ) - (br $break|2) - ) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|3) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|4) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + tee_local $3 + if + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|0 + end + end + get_local $0 + i32.const 3 + i32.and + i32.eqz + if + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|1 + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + get_local $0 + i32.const 3 + i32.and + tee_local $3 + i32.const 1 + i32.ne + if + get_local $3 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $3 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 1 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 5 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 9 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 13 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|3 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 2 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 6 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 10 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 14 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|4 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 3 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 7 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 11 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 15 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|5 + end + end + end + end + get_local $2 + i32.const 16 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end ) - (func $~lib/internal/memory/memmove (; 7 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memmove (; 7 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (i32.eqz - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $3) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (get_local $2) - (block - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + i32.eqz + if + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + set_local $3 + end + get_local $3 + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + br $continue|0 + end + end + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + br $continue|1 + end + end + end + loop $continue|2 + get_local $2 + if + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|2 + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|3 + end + end + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 8 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + br $continue|4 + end + end + end + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end ) - (func $~lib/internal/arraybuffer/reallocateUnsafe (; 8 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/arraybuffer/reallocateUnsafe (; 8 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_s - (get_local $1) - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (block - (if - (i32.gt_s - (get_local $1) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 216) - (i32.const 37) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/computeSize - (get_local $2) - ) - ) - (if - (i32.le_s - (get_local $1) - (i32.sub - (get_local $3) - (i32.const 8) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $1) - ) - (call $~lib/internal/memory/memset - (i32.add - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $2) - ) - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - ) - (block - (call $~lib/internal/memory/memmove - (i32.add - (tee_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (i32.const 8) - ) - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $2) - ) - (call $~lib/internal/memory/memset - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (get_local $2) - ) - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (return - (get_local $3) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 216) - (i32.const 61) - (i32.const 4) - ) - (unreachable) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (get_local $0) + get_local $1 + get_local $0 + i32.load + tee_local $2 + i32.gt_s + if + get_local $1 + i32.const 1073741816 + i32.gt_s + if + i32.const 0 + i32.const 216 + i32.const 37 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $2 + call $~lib/internal/arraybuffer/computeSize + set_local $3 + get_local $1 + get_local $3 + i32.const 8 + i32.sub + i32.le_s + if + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.sub + call $~lib/internal/memory/memset + else + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + tee_local $3 + i32.const 8 + i32.add + get_local $0 + i32.const 8 + i32.add + get_local $2 + call $~lib/internal/memory/memmove + get_local $3 + i32.const 8 + i32.add + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.sub + call $~lib/internal/memory/memset + get_local $3 + return + end + else + get_local $1 + get_local $2 + i32.lt_s + if + get_local $1 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 216 + i32.const 61 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.store + end + end + get_local $0 ) - (func $~lib/array/Array#__set (; 9 ;) (; has Stack IR ;) (type $FUNCSIG$v) + (func $~lib/array/Array#__set (; 9 ;) (type $FUNCSIG$v) (local $0 i32) - (if - (i32.ge_u - (i32.const 0) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (i32.const 24) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (i32.store - (i32.const 24) - (tee_local $0 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $0) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.const 28) - (i32.const 1) - ) - ) - ) - (i32.store offset=8 - (get_local $0) - (i32.const 2) - ) + i32.const 0 + i32.const 24 + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 24 + get_local $0 + i32.const 4 + call $~lib/internal/arraybuffer/reallocateUnsafe + tee_local $0 + i32.store + i32.const 28 + i32.const 1 + i32.store + end + get_local $0 + i32.const 2 + i32.store offset=8 ) - (func $~lib/array/Array#__get (; 10 ;) (; has Stack IR ;) (type $FUNCSIG$ji) (param $0 i32) (result i64) + (func $~lib/array/Array#__get (; 10 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64) (local $1 i32) - (if (result i64) - (i32.lt_u - (get_local $0) - (i32.shr_u - (i32.load - (tee_local $1 - (i32.load - (i32.const 64) - ) - ) - ) - (i32.const 3) - ) - ) - (i64.load offset=8 - (i32.add - (get_local $1) - (i32.shl - (get_local $0) - (i32.const 3) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.const 64 + i32.load + tee_local $1 + i32.load + i32.const 3 + i32.shr_u + i32.lt_u + if (result i64) + get_local $1 + get_local $0 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + else + unreachable + end ) - (func $~lib/array/Array#__set (; 11 ;) (; has Stack IR ;) (type $FUNCSIG$v) + (func $~lib/array/Array#__set (; 11 ;) (type $FUNCSIG$v) (local $0 i32) - (if - (i32.ge_u - (i32.const 0) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (i32.const 64) - ) - ) - ) - (i32.const 3) - ) - ) - (block - (i32.store - (i32.const 64) - (tee_local $0 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $0) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.const 68) - (i32.const 1) - ) - ) - ) - (i64.store offset=8 - (get_local $0) - (i64.const 4) - ) + i32.const 0 + i32.const 64 + i32.load + tee_local $0 + i32.load + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 64 + get_local $0 + i32.const 8 + call $~lib/internal/arraybuffer/reallocateUnsafe + tee_local $0 + i32.store + i32.const 68 + i32.const 1 + i32.store + end + get_local $0 + i64.const 4 + i64.store offset=8 ) - (func $~lib/array/Array#__get (; 12 ;) (; has Stack IR ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) + (func $~lib/array/Array#__get (; 12 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) (local $1 i32) - (if (result f32) - (i32.lt_u - (get_local $0) - (i32.shr_u - (i32.load - (tee_local $1 - (i32.load - (i32.const 88) - ) - ) - ) - (i32.const 2) - ) - ) - (f32.load offset=8 - (i32.add - (get_local $1) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.const 88 + i32.load + tee_local $1 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result f32) + get_local $1 + get_local $0 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + else + unreachable + end ) - (func $~lib/array/Array#__set (; 13 ;) (; has Stack IR ;) (type $FUNCSIG$v) + (func $~lib/array/Array#__set (; 13 ;) (type $FUNCSIG$v) (local $0 i32) - (if - (i32.ge_u - (i32.const 0) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (i32.const 88) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (i32.store - (i32.const 88) - (tee_local $0 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $0) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.const 92) - (i32.const 1) - ) - ) - ) - (f32.store offset=8 - (get_local $0) - (f32.const 2.5) - ) + i32.const 0 + i32.const 88 + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 88 + get_local $0 + i32.const 4 + call $~lib/internal/arraybuffer/reallocateUnsafe + tee_local $0 + i32.store + i32.const 92 + i32.const 1 + i32.store + end + get_local $0 + f32.const 2.5 + f32.store offset=8 ) - (func $~lib/array/Array#__get (; 14 ;) (; has Stack IR ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/array/Array#__get (; 14 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) - (if (result f64) - (i32.lt_u - (get_local $0) - (i32.shr_u - (i32.load - (tee_local $1 - (i32.load - (i32.const 128) - ) - ) - ) - (i32.const 3) - ) - ) - (f64.load offset=8 - (i32.add - (get_local $1) - (i32.shl - (get_local $0) - (i32.const 3) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.const 128 + i32.load + tee_local $1 + i32.load + i32.const 3 + i32.shr_u + i32.lt_u + if (result f64) + get_local $1 + get_local $0 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + else + unreachable + end ) - (func $~lib/array/Array#__set (; 15 ;) (; has Stack IR ;) (type $FUNCSIG$v) + (func $~lib/array/Array#__set (; 15 ;) (type $FUNCSIG$v) (local $0 i32) - (if - (i32.ge_u - (i32.const 0) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (i32.const 128) - ) - ) - ) - (i32.const 3) - ) - ) - (block - (i32.store - (i32.const 128) - (tee_local $0 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $0) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.const 132) - (i32.const 1) - ) - ) - ) - (f64.store offset=8 - (get_local $0) - (f64.const 2.25) - ) + i32.const 0 + i32.const 128 + i32.load + tee_local $0 + i32.load + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 128 + get_local $0 + i32.const 8 + call $~lib/internal/arraybuffer/reallocateUnsafe + tee_local $0 + i32.store + i32.const 132 + i32.const 1 + i32.store + end + get_local $0 + f64.const 2.25 + f64.store offset=8 ) - (func $start (; 16 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.const 280) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (if - (i32.ne - (i32.load - (i32.const 28) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (i32.const 0) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/array/Array#__get - (i32.const 1) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__set) - (if - (i32.ne - (call $~lib/array/Array#__get - (i32.const 0) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load - (i32.const 68) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 14) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/array/Array#__get - (i32.const 0) - ) - (i64.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i64.ne - (call $~lib/array/Array#__get - (i32.const 1) - ) - (i64.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__set) - (if - (i64.ne - (call $~lib/array/Array#__get - (i32.const 0) - ) - (i64.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load - (i32.const 92) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (call $~lib/array/Array#__get - (i32.const 0) - ) - (f32.const 1.5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f32.ne - (call $~lib/array/Array#__get - (i32.const 1) - ) - (f32.const 2.5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__set) - (if - (f32.ne - (call $~lib/array/Array#__get - (i32.const 0) - ) - (f32.const 2.5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load - (i32.const 132) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/array/Array#__get - (i32.const 0) - ) - (f64.const 1.25) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/array/Array#__get - (i32.const 1) - ) - (f64.const 2.25) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__set) - (if - (f64.ne - (call $~lib/array/Array#__get - (i32.const 0) - ) - (f64.const 2.25) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 16 ;) (type $v) + i32.const 280 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 28 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 136 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/array/Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 136 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $~lib/array/Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 136 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#__set + i32.const 0 + call $~lib/array/Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 136 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 68 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 136 + i32.const 14 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/array/Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 136 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $~lib/array/Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 136 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#__set + i32.const 0 + call $~lib/array/Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 136 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 92 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 136 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/array/Array#__get + f32.const 1.5 + f32.ne + if + i32.const 0 + i32.const 136 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $~lib/array/Array#__get + f32.const 2.5 + f32.ne + if + i32.const 0 + i32.const 136 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#__set + i32.const 0 + call $~lib/array/Array#__get + f32.const 2.5 + f32.ne + if + i32.const 0 + i32.const 136 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 132 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 136 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/array/Array#__get + f64.const 1.25 + f64.ne + if + i32.const 0 + i32.const 136 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $~lib/array/Array#__get + f64.const 2.25 + f64.ne + if + i32.const 0 + i32.const 136 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/array/Array#__set + i32.const 0 + call $~lib/array/Array#__get + f64.const 2.25 + f64.ne + if + i32.const 0 + i32.const 136 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 17 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 17 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index 35b8a506..2e1741df 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -10,6 +10,7 @@ (type $iiF (func (param i32 i32) (result f64))) (type $iiFv (func (param i32 i32 f64))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\08\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00") (data (i32.const 24) "\08\00\00\00\02\00\00\00") @@ -22,9 +23,8 @@ (data (i32.const 136) "\13\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00-\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 184) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 216) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -43,403 +43,291 @@ (start $start) (func $~lib/array/Array#__get (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $~lib/internal/arraybuffer/computeSize (; 2 ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.sub - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/internal/memory/memset (; 3 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/allocator/arena/__memory_allocate (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -448,2187 +336,1534 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 5 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 216) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $2 - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 216 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_local $0 + call $~lib/internal/arraybuffer/computeSize + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/internal/memory/memcpy (; 6 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (block - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $5 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (br_if $case0|2 - (i32.eq - (get_local $5) - (i32.const 1) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $5) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $5) - (i32.const 3) - ) - ) - (br $break|2) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - (br $break|2) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) + block $break|0 + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + if + block + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|0 + end + end + end + get_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + block + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|1 + end + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $0 + i32.const 3 + i32.and + set_local $5 + get_local $5 + i32.const 1 + i32.eq + br_if $case0|2 + get_local $5 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + block $break|3 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + block + get_local $1 + i32.const 1 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 5 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 9 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 13 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|3 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $break|4 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + block + get_local $1 + i32.const 2 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 6 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 10 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 14 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|4 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block $break|5 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + block + get_local $1 + i32.const 3 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 7 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 11 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 15 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|5 + end + end + end + br $break|2 + unreachable + end + unreachable + end + end + get_local $2 + i32.const 16 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end ) (func $~lib/internal/memory/memmove (; 7 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (if (result i32) - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - (get_local $3) - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|0 - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (get_local $2) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|3 - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (i64.store - (i32.add - (get_local $0) - (get_local $2) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + end + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|0 + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + end + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + get_local $2 + if + block + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|2 + end + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|3 + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + end + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + end + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end ) (func $~lib/internal/arraybuffer/reallocateUnsafe (; 8 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2636,929 +1871,658 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if - (i32.gt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.eqz - (i32.le_s - (get_local $1) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 216) - (i32.const 37) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.le_s - (get_local $1) - (i32.sub - (call $~lib/internal/arraybuffer/computeSize - (get_local $2) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $3 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (get_local $2) - ) - ) - (set_local $4 - (i32.const 0) - ) - (set_local $5 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memset - (get_local $3) - (get_local $4) - (get_local $5) - ) - ) - ) - (block - (set_local $5 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (block $~lib/memory/memory.copy|inlined.0 - (set_local $4 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $3 - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $4) - (get_local $3) - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.1 - (set_local $3 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (get_local $2) - ) - ) - (set_local $4 - (i32.const 0) - ) - (set_local $6 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memset - (get_local $3) - (get_local $4) - (get_local $6) - ) - ) - (return - (get_local $5) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.eqz - (i32.ge_s - (get_local $1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 216) - (i32.const 61) - (i32.const 4) - ) - (unreachable) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.gt_s + if + get_local $1 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_s + i32.eqz + if + i32.const 0 + i32.const 216 + i32.const 37 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $2 + call $~lib/internal/arraybuffer/computeSize + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.sub + i32.le_s + if + get_local $0 + get_local $1 + i32.store + block $~lib/memory/memory.fill|inlined.0 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $2 + i32.add + set_local $3 + i32.const 0 + set_local $4 + get_local $1 + get_local $2 + i32.sub + set_local $5 + get_local $3 + get_local $4 + get_local $5 + call $~lib/internal/memory/memset + end + else + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $5 + block $~lib/memory/memory.copy|inlined.0 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $3 + get_local $4 + get_local $3 + get_local $2 + call $~lib/internal/memory/memmove + end + block $~lib/memory/memory.fill|inlined.1 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $2 + i32.add + set_local $3 + i32.const 0 + set_local $4 + get_local $1 + get_local $2 + i32.sub + set_local $6 + get_local $3 + get_local $4 + get_local $6 + call $~lib/internal/memory/memset + end + get_local $5 + return + end + else + get_local $1 + get_local $2 + i32.lt_s + if + get_local $1 + i32.const 0 + i32.ge_s + i32.eqz + if + i32.const 0 + i32.const 216 + i32.const 61 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.store + end + end + get_local $0 ) (func $~lib/array/Array#__set (; 9 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 2) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 184) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 2 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + get_local $1 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 184 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 + end ) (func $~lib/array/Array#__get (; 10 ;) (type $iiI) (param $0 i32) (param $1 i32) (result i64) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i64) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 3) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) - (i64.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 3 + i32.shr_u + i32.lt_u + if (result i64) + get_local $2 + get_local $1 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + else + unreachable + end ) (func $~lib/array/Array#__set (; 11 ;) (type $iiIv) (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 3) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 134217727) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 184) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (i64.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 3 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + get_local $1 + i32.const 134217727 + i32.ge_u + if + i32.const 0 + i32.const 184 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 3 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + get_local $3 + get_local $1 + i32.const 3 + i32.shl + i32.add + get_local $2 + i64.store offset=8 + end ) (func $~lib/array/Array#__get (; 12 ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result f32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result f32) - (f32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result f32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + f32.load offset=8 + else + unreachable + end ) (func $~lib/array/Array#__set (; 13 ;) (type $iifv) (param $0 i32) (param $1 i32) (param $2 f32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 2) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 184) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (f32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 2 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + get_local $1 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 184 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + f32.store offset=8 + end ) (func $~lib/array/Array#__get (; 14 ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result f64) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 3) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result f64) - (f64.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 3 + i32.shr_u + i32.lt_u + if (result f64) + get_local $2 + get_local $1 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + else + unreachable + end ) (func $~lib/array/Array#__set (; 15 ;) (type $iiFv) (param $0 i32) (param $1 i32) (param $2 f64) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 3) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $1) - (i32.const 134217727) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 184) - (i32.const 101) - (i32.const 41) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (i32.add - (get_local $1) - (i32.const 1) - ) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (f64.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 3 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + get_local $1 + i32.const 134217727 + i32.ge_u + if + i32.const 0 + i32.const 184 + i32.const 101 + i32.const 41 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $1 + i32.const 1 + i32.add + i32.const 3 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.const 1 + i32.add + i32.store offset=4 + end + block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + get_local $3 + get_local $1 + i32.const 3 + i32.shl + i32.add + get_local $2 + f64.store offset=8 + end ) (func $start (; 16 ;) (type $v) (local $0 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $0 - (get_global $std/static-array/i) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/i) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/i) - (i32.const 1) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__set - (get_global $std/static-array/i) - (i32.const 0) - (i32.const 2) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/i) - (i32.const 0) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $0 - (get_global $std/static-array/I) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 14) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/I) - (i32.const 0) - ) - (i64.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/I) - (i32.const 1) - ) - (i64.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__set - (get_global $std/static-array/I) - (i32.const 0) - (i64.const 4) - ) - (if - (i32.eqz - (i64.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/I) - (i32.const 0) - ) - (i64.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $0 - (get_global $std/static-array/f) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/f) - (i32.const 0) - ) - (f32.const 1.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f32.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/f) - (i32.const 1) - ) - (f32.const 2.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__set - (get_global $std/static-array/f) - (i32.const 0) - (f32.const 2.5) - ) - (if - (i32.eqz - (f32.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/f) - (i32.const 0) - ) - (f32.const 2.5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $0 - (get_global $std/static-array/F) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/F) - (i32.const 0) - ) - (f64.const 1.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/F) - (i32.const 1) - ) - (f64.const 2.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/array/Array#__set - (get_global $std/static-array/F) - (i32.const 0) - (f64.const 2.25) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/array/Array#__get - (get_global $std/static-array/F) - (i32.const 0) - ) - (f64.const 2.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 136) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/static-array/i + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/i + i32.const 0 + call $~lib/array/Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/i + i32.const 1 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/i + i32.const 0 + i32.const 2 + call $~lib/array/Array#__set + get_global $std/static-array/i + i32.const 0 + call $~lib/array/Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/static-array/I + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 14 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/I + i32.const 0 + call $~lib/array/Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/I + i32.const 1 + call $~lib/array/Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/I + i32.const 0 + i64.const 4 + call $~lib/array/Array#__set + get_global $std/static-array/I + i32.const 0 + call $~lib/array/Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/static-array/f + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/f + i32.const 0 + call $~lib/array/Array#__get + f32.const 1.5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/f + i32.const 1 + call $~lib/array/Array#__get + f32.const 2.5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/f + i32.const 0 + f32.const 2.5 + call $~lib/array/Array#__set + get_global $std/static-array/f + i32.const 0 + call $~lib/array/Array#__get + f32.const 2.5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/static-array/F + set_local $0 + get_local $0 + i32.load offset=4 + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/F + i32.const 0 + call $~lib/array/Array#__get + f64.const 1.25 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/F + i32.const 1 + call $~lib/array/Array#__get + f64.const 2.25 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/static-array/F + i32.const 0 + f64.const 2.25 + call $~lib/array/Array#__set + get_global $std/static-array/F + i32.const 0 + call $~lib/array/Array#__get + f64.const 2.25 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 17 ;) (type $v) ) diff --git a/tests/compiler/std/string-utf8.optimized.wat b/tests/compiler/std/string-utf8.optimized.wat index 76b4f994..5a4b3788 100644 --- a/tests/compiler/std/string-utf8.optimized.wat +++ b/tests/compiler/std/string-utf8.optimized.wat @@ -6,6 +6,7 @@ (type $v (func)) (type $FUNCSIG$v (func)) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\06\00\00\00\01\d87\dch\00i\00R\d8b\df") (data (i32.const 24) "\12\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00u\00t\00f\008\00.\00t\00s") @@ -15,9 +16,8 @@ (data (i32.const 168) "\02\00\00\00h\00i") (data (i32.const 176) "\02\00\00\00R\d8b\df") (data (i32.const 184) "\01") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/string-utf8/str (mut i32) (i32.const 8)) @@ -26,238 +26,170 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/string/String#get:lengthUTF8 (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:lengthUTF8 (; 1 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $1 - (i32.const 1) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (loop $continue|0 - (if - (i32.lt_u - (get_local $2) - (get_local $4) - ) - (block - (set_local $2 - (if (result i32) - (i32.lt_u - (tee_local $3 - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - (i32.const 128) - ) - (block (result i32) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $3) - (i32.const 2048) - ) - (block (result i32) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (block (result i32) - (if - (tee_local $3 - (i32.eq - (i32.and - (get_local $3) - (i32.const 64512) - ) - (i32.const 55296) - ) - ) - (set_local $3 - (i32.lt_u - (i32.add - (get_local $2) - (i32.const 1) - ) - (get_local $4) - ) - ) - ) - (if - (get_local $3) - (set_local $3 - (i32.eq - (i32.and - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (i32.add - (get_local $2) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - (i32.const 64512) - ) - (i32.const 56320) - ) - ) - ) - (if (result i32) - (get_local $3) - (block (result i32) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - (i32.add - (get_local $2) - (i32.const 2) - ) - ) - (block (result i32) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - (get_local $1) + i32.const 1 + set_local $1 + get_local $0 + i32.load + set_local $4 + loop $continue|0 + get_local $2 + get_local $4 + i32.lt_u + if + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + tee_local $3 + i32.const 128 + i32.lt_u + if (result i32) + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.add + else + get_local $3 + i32.const 2048 + i32.lt_u + if (result i32) + get_local $1 + i32.const 2 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.add + else + get_local $3 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + tee_local $3 + if + get_local $2 + i32.const 1 + i32.add + get_local $4 + i32.lt_u + set_local $3 + end + get_local $3 + if + get_local $0 + get_local $2 + i32.const 1 + i32.add + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + set_local $3 + end + get_local $3 + if (result i32) + get_local $1 + i32.const 4 + i32.add + set_local $1 + get_local $2 + i32.const 2 + i32.add + else + get_local $1 + i32.const 3 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.add + end + end + end + set_local $2 + br $continue|0 + end + end + get_local $1 ) - (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/string/String#toUTF8 (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/string/String#toUTF8 (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -265,2868 +197,1927 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $5 - (call $~lib/allocator/arena/__memory_allocate - (call $~lib/string/String#get:lengthUTF8 - (get_local $0) - ) - ) - ) - (set_local $7 - (i32.load - (get_local $0) - ) - ) - (loop $continue|0 - (if - (i32.lt_u - (get_local $3) - (get_local $7) - ) - (block - (if - (i32.lt_u - (tee_local $1 - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (i32.const 128) - ) - (block - (i32.store8 - (i32.add - (get_local $5) - (get_local $2) - ) - (get_local $1) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 2048) - ) - (block - (i32.store8 - (tee_local $4 - (i32.add - (get_local $5) - (get_local $2) - ) - ) - (i32.or - (i32.shr_u - (get_local $1) - (i32.const 6) - ) - (i32.const 192) - ) - ) - (i32.store8 offset=1 - (get_local $4) - (i32.or - (i32.and - (get_local $1) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 2) - ) - ) - ) - (block - (set_local $4 - (i32.add - (get_local $5) - (get_local $2) - ) - ) - (if - (tee_local $6 - (i32.eq - (i32.and - (get_local $1) - (i32.const 64512) - ) - (i32.const 55296) - ) - ) - (set_local $6 - (i32.lt_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (get_local $7) - ) - ) - ) - (if - (get_local $6) - (if - (i32.eq - (i32.and - (tee_local $6 - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (i32.add - (get_local $3) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (i32.const 64512) - ) - (i32.const 56320) - ) - (block - (i32.store8 - (get_local $4) - (i32.or - (i32.shr_u - (tee_local $1 - (i32.add - (i32.add - (i32.shl - (i32.and - (get_local $1) - (i32.const 1023) - ) - (i32.const 10) - ) - (i32.const 65536) - ) - (i32.and - (get_local $6) - (i32.const 1023) - ) - ) - ) - (i32.const 18) - ) - (i32.const 240) - ) - ) - (i32.store8 offset=1 - (get_local $4) - (i32.or - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 12) - ) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (i32.store8 offset=2 - (get_local $4) - (i32.or - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 6) - ) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (i32.store8 offset=3 - (get_local $4) - (i32.or - (i32.and - (get_local $1) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 4) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store8 - (get_local $4) - (i32.or - (i32.shr_u - (get_local $1) - (i32.const 12) - ) - (i32.const 224) - ) - ) - (i32.store8 offset=1 - (get_local $4) - (i32.or - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 6) - ) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (i32.store8 offset=2 - (get_local $4) - (i32.or - (i32.and - (get_local $1) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store8 - (i32.add - (get_local $5) - (get_local $2) - ) - (i32.const 0) - ) - (get_local $5) + get_local $0 + call $~lib/string/String#get:lengthUTF8 + call $~lib/allocator/arena/__memory_allocate + set_local $5 + get_local $0 + i32.load + set_local $7 + loop $continue|0 + get_local $3 + get_local $7 + i32.lt_u + if + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + tee_local $1 + i32.const 128 + i32.lt_u + if + get_local $5 + get_local $2 + i32.add + get_local $1 + i32.store8 + get_local $2 + i32.const 1 + i32.add + set_local $2 + else + get_local $1 + i32.const 2048 + i32.lt_u + if + get_local $5 + get_local $2 + i32.add + tee_local $4 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + i32.store8 + get_local $4 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + get_local $2 + i32.const 2 + i32.add + set_local $2 + else + get_local $5 + get_local $2 + i32.add + set_local $4 + get_local $1 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + tee_local $6 + if + get_local $3 + i32.const 1 + i32.add + get_local $7 + i32.lt_u + set_local $6 + end + get_local $6 + if + get_local $0 + get_local $3 + i32.const 1 + i32.add + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + tee_local $6 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + get_local $4 + get_local $1 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.const 65536 + i32.add + get_local $6 + i32.const 1023 + i32.and + i32.add + tee_local $1 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + i32.store8 + get_local $4 + get_local $1 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + get_local $4 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + get_local $4 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=3 + get_local $2 + i32.const 4 + i32.add + set_local $2 + get_local $3 + i32.const 2 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $4 + get_local $1 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + i32.store8 + get_local $4 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + get_local $4 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + get_local $2 + i32.const 3 + i32.add + set_local $2 + end + end + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $5 + get_local $2 + i32.add + i32.const 0 + i32.store8 + get_local $5 ) - (func $~lib/internal/string/allocateUnsafe (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/string/allocateUnsafe (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (tee_local $1 - (i32.gt_s - (get_local $0) - (i32.const 0) - ) - ) - (set_local $1 - (i32.le_s - (get_local $0) - (i32.const 536870910) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 104) - (i32.const 14) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (i32.add - (i32.shl - (get_local $0) - (i32.const 1) - ) - (i32.const 4) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 0 + i32.gt_s + tee_local $1 + if + get_local $0 + i32.const 536870910 + i32.le_s + set_local $1 + end + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 104 + i32.const 14 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.shl + i32.const 4 + i32.add + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/internal/memory/memcpy (; 5 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memcpy (; 5 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (loop $continue|0 - (if - (tee_local $3 - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - ) - (block - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (block - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (if - (i32.ne - (tee_local $3 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 1) - ) - (block - (br_if $case1|2 - (i32.eq - (get_local $3) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $3) - (i32.const 3) - ) - ) - (br $break|2) - ) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|3) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|4) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + tee_local $3 + if + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|0 + end + end + get_local $0 + i32.const 3 + i32.and + i32.eqz + if + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|1 + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + get_local $0 + i32.const 3 + i32.and + tee_local $3 + i32.const 1 + i32.ne + if + get_local $3 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $3 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 1 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 5 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 9 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 13 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|3 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 2 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 6 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 10 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 14 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|4 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 3 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 7 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 11 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 15 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|5 + end + end + end + end + get_local $2 + i32.const 16 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end ) - (func $~lib/internal/memory/memmove (; 6 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memmove (; 6 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (i32.eqz - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $3) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (get_local $2) - (block - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + i32.eqz + if + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + set_local $3 + end + get_local $3 + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + br $continue|0 + end + end + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + br $continue|1 + end + end + end + loop $continue|2 + get_local $2 + if + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|2 + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|3 + end + end + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 8 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + br $continue|4 + end + end + end + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end ) - (func $~lib/allocator/arena/__memory_free (; 7 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (nop) + (func $~lib/allocator/arena/__memory_free (; 7 ;) (type $FUNCSIG$v) + nop ) - (func $~lib/string/String.fromUTF8 (; 8 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.fromUTF8 (; 8 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.lt_u - (get_local $1) - (i32.const 1) - ) - (return - (i32.const 64) - ) - ) - (set_local $6 - (call $~lib/allocator/arena/__memory_allocate - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (loop $continue|0 - (if - (i32.lt_u - (get_local $2) - (get_local $1) - ) - (block - (set_local $2 - (i32.add - (tee_local $4 - (get_local $2) - ) - (i32.const 1) - ) - ) - (if - (i32.lt_u - (tee_local $4 - (i32.load8_u - (i32.add - (get_local $0) - (get_local $4) - ) - ) - ) - (i32.const 128) - ) - (block - (i32.store16 - (i32.add - (get_local $6) - (get_local $3) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - (block - (if - (tee_local $5 - (i32.gt_u - (get_local $4) - (i32.const 191) - ) - ) - (set_local $5 - (i32.lt_u - (get_local $4) - (i32.const 224) - ) - ) - ) - (if - (get_local $5) - (block - (if - (i32.gt_u - (i32.add - (get_local $2) - (i32.const 1) - ) - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 72) - (i32.const 510) - (i32.const 8) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.add - (tee_local $5 - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.store16 - (i32.add - (get_local $6) - (get_local $3) - ) - (i32.or - (i32.shl - (i32.and - (get_local $4) - (i32.const 31) - ) - (i32.const 6) - ) - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (get_local $5) - ) - ) - (i32.const 63) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - (block - (if - (tee_local $5 - (i32.gt_u - (get_local $4) - (i32.const 239) - ) - ) - (set_local $5 - (i32.lt_u - (get_local $4) - (i32.const 365) - ) - ) - ) - (if - (get_local $5) - (block - (if - (i32.gt_u - (i32.add - (get_local $2) - (i32.const 3) - ) - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 72) - (i32.const 514) - (i32.const 8) - ) - (unreachable) - ) - ) - (i32.store16 - (i32.add - (get_local $6) - (get_local $3) - ) - (i32.add - (i32.shr_u - (tee_local $4 - (i32.sub - (i32.or - (tee_local $4 - (i32.or - (tee_local $4 - (i32.or - (i32.shl - (i32.and - (get_local $4) - (i32.const 7) - ) - (i32.const 18) - ) - (i32.shl - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (tee_local $5 - (get_local $2) - ) - ) - ) - (i32.const 63) - ) - (i32.const 12) - ) - ) - ) - (i32.shl - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - (i32.const 63) - ) - (i32.const 6) - ) - ) - ) - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (tee_local $5 - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - ) - (i32.const 63) - ) - ) - (i32.const 65536) - ) - ) - (i32.const 10) - ) - (i32.const 55296) - ) - ) - (i32.store16 - (i32.add - (get_local $6) - (tee_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - (i32.add - (i32.and - (get_local $4) - (i32.const 1023) - ) - (i32.const 56320) - ) - ) - ) - (block - (if - (i32.gt_u - (i32.add - (get_local $2) - (i32.const 2) - ) - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 72) - (i32.const 526) - (i32.const 8) - ) - (unreachable) - ) - ) - (i32.store16 - (i32.add - (get_local $6) - (get_local $3) - ) - (i32.or - (tee_local $4 - (i32.or - (i32.shl - (i32.and - (get_local $4) - (i32.const 15) - ) - (i32.const 12) - ) - (i32.shl - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (tee_local $5 - (get_local $2) - ) - ) - ) - (i32.const 63) - ) - (i32.const 6) - ) - ) - ) - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (tee_local $5 - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - ) - (i32.const 63) - ) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.ne - (get_local $2) - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 72) - (i32.const 535) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/internal/memory/memmove - (tee_local $4 - (i32.add - (tee_local $0 - (call $~lib/internal/string/allocateUnsafe - (i32.shr_u - (get_local $3) - (i32.const 1) - ) - ) - ) - (i32.const 4) - ) - ) - (get_local $6) - (get_local $3) - ) - (call $~lib/allocator/arena/__memory_free) - (get_local $0) + get_local $1 + i32.const 1 + i32.lt_u + if + i32.const 64 + return + end + get_local $1 + i32.const 1 + i32.shl + call $~lib/allocator/arena/__memory_allocate + set_local $6 + loop $continue|0 + get_local $2 + get_local $1 + i32.lt_u + if + get_local $2 + tee_local $4 + i32.const 1 + i32.add + set_local $2 + get_local $0 + get_local $4 + i32.add + i32.load8_u + tee_local $4 + i32.const 128 + i32.lt_u + if + get_local $6 + get_local $3 + i32.add + get_local $4 + i32.store16 + get_local $3 + i32.const 2 + i32.add + set_local $3 + else + get_local $4 + i32.const 191 + i32.gt_u + tee_local $5 + if + get_local $4 + i32.const 224 + i32.lt_u + set_local $5 + end + get_local $5 + if + get_local $2 + i32.const 1 + i32.add + get_local $1 + i32.gt_u + if + i32.const 0 + i32.const 72 + i32.const 510 + i32.const 8 + call $~lib/env/abort + unreachable + end + get_local $2 + tee_local $5 + i32.const 1 + i32.add + set_local $2 + get_local $6 + get_local $3 + i32.add + get_local $4 + i32.const 31 + i32.and + i32.const 6 + i32.shl + get_local $0 + get_local $5 + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.or + i32.store16 + get_local $3 + i32.const 2 + i32.add + set_local $3 + else + get_local $4 + i32.const 239 + i32.gt_u + tee_local $5 + if + get_local $4 + i32.const 365 + i32.lt_u + set_local $5 + end + get_local $5 + if + get_local $2 + i32.const 3 + i32.add + get_local $1 + i32.gt_u + if + i32.const 0 + i32.const 72 + i32.const 514 + i32.const 8 + call $~lib/env/abort + unreachable + end + get_local $6 + get_local $3 + i32.add + get_local $4 + i32.const 7 + i32.and + i32.const 18 + i32.shl + get_local $0 + get_local $2 + tee_local $5 + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.const 12 + i32.shl + i32.or + tee_local $4 + get_local $0 + get_local $2 + i32.const 1 + i32.add + tee_local $2 + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.const 6 + i32.shl + i32.or + tee_local $4 + get_local $0 + get_local $2 + i32.const 1 + i32.add + tee_local $2 + tee_local $5 + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.or + i32.const 65536 + i32.sub + tee_local $4 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.add + i32.store16 + get_local $6 + get_local $3 + i32.const 2 + i32.add + tee_local $3 + i32.add + get_local $4 + i32.const 1023 + i32.and + i32.const 56320 + i32.add + i32.store16 + else + get_local $2 + i32.const 2 + i32.add + get_local $1 + i32.gt_u + if + i32.const 0 + i32.const 72 + i32.const 526 + i32.const 8 + call $~lib/env/abort + unreachable + end + get_local $6 + get_local $3 + i32.add + get_local $4 + i32.const 15 + i32.and + i32.const 12 + i32.shl + get_local $0 + get_local $2 + tee_local $5 + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.const 6 + i32.shl + i32.or + tee_local $4 + get_local $0 + get_local $2 + i32.const 1 + i32.add + tee_local $2 + tee_local $5 + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.or + i32.store16 + end + get_local $3 + i32.const 2 + i32.add + set_local $3 + get_local $2 + i32.const 1 + i32.add + set_local $2 + end + end + br $continue|0 + end + end + get_local $2 + get_local $1 + i32.ne + if + i32.const 0 + i32.const 72 + i32.const 535 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $3 + i32.const 1 + i32.shr_u + call $~lib/internal/string/allocateUnsafe + tee_local $0 + i32.const 4 + i32.add + tee_local $4 + get_local $6 + get_local $3 + call $~lib/internal/memory/memmove + call $~lib/allocator/arena/__memory_free + get_local $0 ) - (func $~lib/internal/string/compareUnsafe (; 9 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/string/compareUnsafe (; 9 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (get_local $0) - ) - (loop $continue|0 - (if - (tee_local $0 - (if (result i32) - (get_local $2) - (i32.eqz - (tee_local $4 - (i32.sub - (i32.load16_u offset=4 - (get_local $3) - ) - (i32.load16_u offset=4 - (get_local $1) - ) - ) - ) - ) - (get_local $2) - ) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (get_local $4) + get_local $0 + set_local $3 + loop $continue|0 + get_local $2 + if (result i32) + get_local $3 + i32.load16_u offset=4 + get_local $1 + i32.load16_u offset=4 + i32.sub + tee_local $4 + i32.eqz + else + get_local $2 + end + tee_local $0 + if + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $3 + i32.const 1 + i32.add + set_local $3 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $continue|0 + end + end + get_local $4 ) - (func $~lib/string/String.__eq (; 10 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 10 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.eqz - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.eqz - (get_local $1) - ) - ) - ) - (if - (get_local $2) - (return - (i32.const 0) - ) - ) - (if - (i32.ne - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - (i32.load - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.eqz + tee_local $2 + i32.eqz + if + get_local $1 + i32.eqz + set_local $2 + end + get_local $2 + if + i32.const 0 + return + end + get_local $0 + i32.load + tee_local $2 + get_local $1 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/string/compareUnsafe + i32.eqz ) - (func $start (; 11 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.const 192) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/string-utf8/len - (call $~lib/string/String#get:lengthUTF8 - (get_global $std/string-utf8/str) - ) - ) - (if - (i32.ne - (get_global $std/string-utf8/len) - (i32.const 11) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string-utf8/ptr - (call $~lib/string/String#toUTF8 - (get_global $std/string-utf8/str) - ) - ) - (if - (i32.ne - (i32.load8_u - (get_global $std/string-utf8/ptr) - ) - (i32.const 240) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u offset=1 - (get_global $std/string-utf8/ptr) - ) - (i32.const 144) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u offset=2 - (get_global $std/string-utf8/ptr) - ) - (i32.const 144) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u offset=3 - (get_global $std/string-utf8/ptr) - ) - (i32.const 183) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 14) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u offset=4 - (get_global $std/string-utf8/ptr) - ) - (i32.const 104) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u offset=5 - (get_global $std/string-utf8/ptr) - ) - (i32.const 105) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u offset=6 - (get_global $std/string-utf8/ptr) - ) - (i32.const 240) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u offset=7 - (get_global $std/string-utf8/ptr) - ) - (i32.const 164) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u offset=8 - (get_global $std/string-utf8/ptr) - ) - (i32.const 173) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load8_u offset=9 - (get_global $std/string-utf8/ptr) - ) - (i32.const 162) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.load8_u offset=10 - (get_global $std/string-utf8/ptr) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (get_global $std/string-utf8/ptr) - (i32.const 0) - ) - (i32.const 64) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (get_global $std/string-utf8/ptr) - (i32.sub - (get_global $std/string-utf8/len) - (i32.const 1) - ) - ) - (get_global $std/string-utf8/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (get_global $std/string-utf8/ptr) - (i32.const 4) - ) - (i32.const 160) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (i32.add - (get_global $std/string-utf8/ptr) - (i32.const 4) - ) - (i32.const 2) - ) - (i32.const 168) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (i32.add - (get_global $std/string-utf8/ptr) - (i32.const 6) - ) - (i32.const 4) - ) - (i32.const 176) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (i32.add - (get_global $std/string-utf8/ptr) - (i32.const 10) - ) - (i32.const 1) - ) - (i32.const 184) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) + (func $start (; 11 ;) (type $v) + i32.const 192 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + get_global $std/string-utf8/str + call $~lib/string/String#get:lengthUTF8 + set_global $std/string-utf8/len + get_global $std/string-utf8/len + i32.const 11 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/str + call $~lib/string/String#toUTF8 + set_global $std/string-utf8/ptr + get_global $std/string-utf8/ptr + i32.load8_u + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=1 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=2 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=3 + i32.const 183 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 14 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=5 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=6 + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=7 + i32.const 164 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=8 + i32.const 173 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=9 + i32.const 162 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=10 + if + i32.const 0 + i32.const 24 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.const 0 + call $~lib/string/String.fromUTF8 + i32.const 64 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + get_global $std/string-utf8/len + i32.const 1 + i32.sub + call $~lib/string/String.fromUTF8 + get_global $std/string-utf8/str + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.const 4 + call $~lib/string/String.fromUTF8 + i32.const 160 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.const 4 + i32.add + i32.const 2 + call $~lib/string/String.fromUTF8 + i32.const 168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.const 6 + i32.add + i32.const 4 + call $~lib/string/String.fromUTF8 + i32.const 176 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.const 10 + i32.add + i32.const 1 + call $~lib/string/String.fromUTF8 + i32.const 184 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free ) - (func $null (; 12 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 12 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/string-utf8.untouched.wat b/tests/compiler/std/string-utf8.untouched.wat index 841d0af4..ed63c7fe 100644 --- a/tests/compiler/std/string-utf8.untouched.wat +++ b/tests/compiler/std/string-utf8.untouched.wat @@ -6,6 +6,7 @@ (type $iv (func (param i32))) (type $iiiiii (func (param i32 i32 i32 i32 i32) (result i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\06\00\00\00\01\d87\dch\00i\00R\d8b\df") (data (i32.const 24) "\12\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00-\00u\00t\00f\008\00.\00t\00s\00") @@ -16,9 +17,8 @@ (data (i32.const 168) "\02\00\00\00h\00i\00") (data (i32.const 176) "\02\00\00\00R\d8b\df") (data (i32.const 184) "\01\00\00\00\00\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -40,156 +40,112 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $1 - (i32.const 1) - ) - (set_local $2 - (i32.const 0) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.lt_u - (get_local $2) - (get_local $3) - ) - (block - (block - (set_local $4 - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $4) - (i32.const 128) - ) - (block - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - (if - (i32.lt_u - (get_local $4) - (i32.const 2048) - ) - (block - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - (if - (if (result i32) - (tee_local $5 - (if (result i32) - (tee_local $5 - (i32.eq - (i32.and - (get_local $4) - (i32.const 64512) - ) - (i32.const 55296) - ) - ) - (i32.lt_u - (i32.add - (get_local $2) - (i32.const 1) - ) - (get_local $3) - ) - (get_local $5) - ) - ) - (i32.eq - (i32.and - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (i32.add - (get_local $2) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - (i32.const 64512) - ) - (i32.const 56320) - ) - (get_local $5) - ) - (block - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 2) - ) - ) - ) - (block - (set_local $1 - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (get_local $1) + i32.const 1 + set_local $1 + i32.const 0 + set_local $2 + get_local $0 + i32.load + set_local $3 + block $break|0 + loop $continue|0 + get_local $2 + get_local $3 + i32.lt_u + if + block + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + set_local $4 + get_local $4 + i32.const 128 + i32.lt_u + if + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + else + get_local $4 + i32.const 2048 + i32.lt_u + if + get_local $1 + i32.const 2 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + else + get_local $4 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + tee_local $5 + if (result i32) + get_local $2 + i32.const 1 + i32.add + get_local $3 + i32.lt_u + else + get_local $5 + end + tee_local $5 + if (result i32) + get_local $0 + get_local $2 + i32.const 1 + i32.add + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + else + get_local $5 + end + if + get_local $1 + i32.const 4 + i32.add + set_local $1 + get_local $2 + i32.const 2 + i32.add + set_local $2 + else + get_local $1 + i32.const 3 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + end + end + end + end + br $continue|0 + end + end + end + get_local $1 ) (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -198,109 +154,77 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/string/String#toUTF8 (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -310,2410 +234,1690 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $2 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $1 - (call $~lib/string/String#get:lengthUTF8 - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - (set_local $3 - (i32.const 0) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $5 - (i32.const 0) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.lt_u - (get_local $3) - (get_local $4) - ) - (block - (block - (set_local $1 - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 128) - ) - (block - (i32.store8 - (i32.add - (get_local $2) - (get_local $5) - ) - (get_local $1) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - (if - (i32.lt_u - (get_local $1) - (i32.const 2048) - ) - (block - (set_local $6 - (i32.add - (get_local $2) - (get_local $5) - ) - ) - (i32.store8 - (get_local $6) - (i32.or - (i32.shr_u - (get_local $1) - (i32.const 6) - ) - (i32.const 192) - ) - ) - (i32.store8 offset=1 - (get_local $6) - (i32.or - (i32.and - (get_local $1) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 2) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - (block - (set_local $6 - (i32.add - (get_local $2) - (get_local $5) - ) - ) - (if - (if (result i32) - (tee_local $7 - (i32.eq - (i32.and - (get_local $1) - (i32.const 64512) - ) - (i32.const 55296) - ) - ) - (i32.lt_u - (i32.add - (get_local $3) - (i32.const 1) - ) - (get_local $4) - ) - (get_local $7) - ) - (block - (set_local $7 - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (i32.add - (get_local $3) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (get_local $7) - (i32.const 64512) - ) - (i32.const 56320) - ) - (block - (set_local $1 - (i32.add - (i32.add - (i32.const 65536) - (i32.shl - (i32.and - (get_local $1) - (i32.const 1023) - ) - (i32.const 10) - ) - ) - (i32.and - (get_local $7) - (i32.const 1023) - ) - ) - ) - (i32.store8 - (get_local $6) - (i32.or - (i32.shr_u - (get_local $1) - (i32.const 18) - ) - (i32.const 240) - ) - ) - (i32.store8 offset=1 - (get_local $6) - (i32.or - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 12) - ) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (i32.store8 offset=2 - (get_local $6) - (i32.or - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 6) - ) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (i32.store8 offset=3 - (get_local $6) - (i32.or - (i32.and - (get_local $1) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 4) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store8 - (get_local $6) - (i32.or - (i32.shr_u - (get_local $1) - (i32.const 12) - ) - (i32.const 224) - ) - ) - (i32.store8 offset=1 - (get_local $6) - (i32.or - (i32.and - (i32.shr_u - (get_local $1) - (i32.const 6) - ) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (i32.store8 offset=2 - (get_local $6) - (i32.or - (i32.and - (get_local $1) - (i32.const 63) - ) - (i32.const 128) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 3) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store8 - (i32.add - (get_local $2) - (get_local $5) - ) - (i32.const 0) - ) - (get_local $2) + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_local $0 + call $~lib/string/String#get:lengthUTF8 + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $2 + i32.const 0 + set_local $3 + get_local $0 + i32.load + set_local $4 + i32.const 0 + set_local $5 + block $break|0 + loop $continue|0 + get_local $3 + get_local $4 + i32.lt_u + if + block + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + set_local $1 + get_local $1 + i32.const 128 + i32.lt_u + if + get_local $2 + get_local $5 + i32.add + get_local $1 + i32.store8 + get_local $5 + i32.const 1 + i32.add + set_local $5 + get_local $3 + i32.const 1 + i32.add + set_local $3 + else + get_local $1 + i32.const 2048 + i32.lt_u + if + get_local $2 + get_local $5 + i32.add + set_local $6 + get_local $6 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + i32.store8 + get_local $6 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + get_local $5 + i32.const 2 + i32.add + set_local $5 + get_local $3 + i32.const 1 + i32.add + set_local $3 + else + get_local $2 + get_local $5 + i32.add + set_local $6 + get_local $1 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + tee_local $7 + if (result i32) + get_local $3 + i32.const 1 + i32.add + get_local $4 + i32.lt_u + else + get_local $7 + end + if + get_local $0 + get_local $3 + i32.const 1 + i32.add + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + set_local $7 + get_local $7 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + i32.const 65536 + get_local $1 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + get_local $7 + i32.const 1023 + i32.and + i32.add + set_local $1 + get_local $6 + get_local $1 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + i32.store8 + get_local $6 + get_local $1 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + get_local $6 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + get_local $6 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=3 + get_local $5 + i32.const 4 + i32.add + set_local $5 + get_local $3 + i32.const 2 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $6 + get_local $1 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + i32.store8 + get_local $6 + get_local $1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=1 + get_local $6 + get_local $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + get_local $5 + i32.const 3 + i32.add + set_local $5 + get_local $3 + i32.const 1 + i32.add + set_local $3 + end + end + end + br $continue|0 + end + end + end + get_local $2 + get_local $5 + i32.add + i32.const 0 + i32.store8 + get_local $2 ) (func $~lib/internal/string/allocateUnsafe (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (i32.gt_s - (get_local $0) - (i32.const 0) - ) - ) - (i32.le_s - (get_local $0) - (get_global $~lib/internal/string/MAX_LENGTH) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 104) - (i32.const 14) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $2 - (block $~lib/memory/memory.allocate|inlined.2 (result i32) - (set_local $1 - (i32.add - (get_global $~lib/internal/string/HEADER_SIZE) - (i32.shl - (get_local $0) - (i32.const 1) - ) - ) - ) - (br $~lib/memory/memory.allocate|inlined.2 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - (i32.store - (get_local $2) - (get_local $0) - ) - (get_local $2) + get_local $0 + i32.const 0 + i32.gt_s + tee_local $1 + if (result i32) + get_local $0 + get_global $~lib/internal/string/MAX_LENGTH + i32.le_s + else + get_local $1 + end + i32.eqz + if + i32.const 0 + i32.const 104 + i32.const 14 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.2 (result i32) + get_global $~lib/internal/string/HEADER_SIZE + get_local $0 + i32.const 1 + i32.shl + i32.add + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.2 + end + set_local $2 + get_local $2 + get_local $0 + i32.store + get_local $2 ) (func $~lib/internal/memory/memcpy (; 5 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (block - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $5 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (br_if $case0|2 - (i32.eq - (get_local $5) - (i32.const 1) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $5) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $5) - (i32.const 3) - ) - ) - (br $break|2) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - (br $break|2) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) + block $break|0 + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + if + block + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|0 + end + end + end + get_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + block + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|1 + end + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $0 + i32.const 3 + i32.and + set_local $5 + get_local $5 + i32.const 1 + i32.eq + br_if $case0|2 + get_local $5 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + block $break|3 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + block + get_local $1 + i32.const 1 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 5 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 9 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 13 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|3 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $break|4 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + block + get_local $1 + i32.const 2 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 6 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 10 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 14 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|4 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block $break|5 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + block + get_local $1 + i32.const 3 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 7 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 11 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 15 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|5 + end + end + end + br $break|2 + unreachable + end + unreachable + end + end + get_local $2 + i32.const 16 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end ) (func $~lib/internal/memory/memmove (; 6 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (if (result i32) - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - (get_local $3) - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|0 - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (get_local $2) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|3 - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (i64.store - (i32.add - (get_local $0) - (get_local $2) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + end + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|0 + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + end + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + get_local $2 + if + block + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|2 + end + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|3 + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + end + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + end + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end ) (func $~lib/allocator/arena/__memory_free (; 7 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $~lib/string/String.fromUTF8 (; 8 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2722,981 +1926,697 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (if - (i32.lt_u - (get_local $1) - (i32.const 1) - ) - (return - (i32.const 64) - ) - ) - (set_local $2 - (i32.const 0) - ) - (set_local $4 - (block $~lib/memory/memory.allocate|inlined.1 (result i32) - (set_local $3 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (br $~lib/memory/memory.allocate|inlined.1 - (call $~lib/allocator/arena/__memory_allocate - (get_local $3) - ) - ) - ) - ) - (set_local $5 - (i32.const 0) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.lt_u - (get_local $2) - (get_local $1) - ) - (block - (block - (set_local $3 - (i32.load8_u - (i32.add - (get_local $0) - (block (result i32) - (set_local $2 - (i32.add - (tee_local $3 - (get_local $2) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 128) - ) - (block - (i32.store16 - (i32.add - (get_local $4) - (get_local $5) - ) - (get_local $3) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 2) - ) - ) - ) - (if - (if (result i32) - (tee_local $6 - (i32.gt_u - (get_local $3) - (i32.const 191) - ) - ) - (i32.lt_u - (get_local $3) - (i32.const 224) - ) - (get_local $6) - ) - (block - (if - (i32.eqz - (i32.le_u - (i32.add - (get_local $2) - (i32.const 1) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 72) - (i32.const 510) - (i32.const 8) - ) - (unreachable) - ) - ) - (i32.store16 - (i32.add - (get_local $4) - (get_local $5) - ) - (i32.or - (i32.shl - (i32.and - (get_local $3) - (i32.const 31) - ) - (i32.const 6) - ) - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (block (result i32) - (set_local $2 - (i32.add - (tee_local $6 - (get_local $2) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.const 63) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 2) - ) - ) - ) - (if - (if (result i32) - (tee_local $6 - (i32.gt_u - (get_local $3) - (i32.const 239) - ) - ) - (i32.lt_u - (get_local $3) - (i32.const 365) - ) - (get_local $6) - ) - (block - (if - (i32.eqz - (i32.le_u - (i32.add - (get_local $2) - (i32.const 3) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 72) - (i32.const 514) - (i32.const 8) - ) - (unreachable) - ) - ) - (set_local $3 - (i32.sub - (i32.or - (i32.or - (i32.or - (i32.shl - (i32.and - (get_local $3) - (i32.const 7) - ) - (i32.const 18) - ) - (i32.shl - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (block (result i32) - (set_local $2 - (i32.add - (tee_local $6 - (get_local $2) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.const 63) - ) - (i32.const 12) - ) - ) - (i32.shl - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (block (result i32) - (set_local $2 - (i32.add - (tee_local $6 - (get_local $2) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.const 63) - ) - (i32.const 6) - ) - ) - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (block (result i32) - (set_local $2 - (i32.add - (tee_local $6 - (get_local $2) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.const 63) - ) - ) - (i32.const 65536) - ) - ) - (i32.store16 - (i32.add - (get_local $4) - (get_local $5) - ) - (i32.add - (i32.const 55296) - (i32.shr_u - (get_local $3) - (i32.const 10) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 2) - ) - ) - (i32.store16 - (i32.add - (get_local $4) - (get_local $5) - ) - (i32.add - (i32.const 56320) - (i32.and - (get_local $3) - (i32.const 1023) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 2) - ) - ) - ) - (block - (if - (i32.eqz - (i32.le_u - (i32.add - (get_local $2) - (i32.const 2) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 72) - (i32.const 526) - (i32.const 8) - ) - (unreachable) - ) - ) - (i32.store16 - (i32.add - (get_local $4) - (get_local $5) - ) - (i32.or - (i32.or - (i32.shl - (i32.and - (get_local $3) - (i32.const 15) - ) - (i32.const 12) - ) - (i32.shl - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (block (result i32) - (set_local $2 - (i32.add - (tee_local $6 - (get_local $2) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.const 63) - ) - (i32.const 6) - ) - ) - (i32.and - (i32.load8_u - (i32.add - (get_local $0) - (block (result i32) - (set_local $2 - (i32.add - (tee_local $6 - (get_local $2) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - ) - (i32.const 63) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_local $2) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 72) - (i32.const 535) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $7 - (call $~lib/internal/string/allocateUnsafe - (i32.shr_u - (get_local $5) - (i32.const 1) - ) - ) - ) - (block $~lib/memory/memory.copy|inlined.0 - (set_local $3 - (i32.add - (get_local $7) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $3) - (get_local $4) - (get_local $5) - ) - ) - (block $~lib/memory/memory.free|inlined.0 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $4) - ) - (br $~lib/memory/memory.free|inlined.0) - ) - ) - (get_local $7) + get_local $1 + i32.const 1 + i32.lt_u + if + i32.const 64 + return + end + i32.const 0 + set_local $2 + block $~lib/memory/memory.allocate|inlined.1 (result i32) + get_local $1 + i32.const 1 + i32.shl + set_local $3 + get_local $3 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.1 + end + set_local $4 + i32.const 0 + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + get_local $1 + i32.lt_u + if + block + get_local $0 + block (result i32) + get_local $2 + tee_local $3 + i32.const 1 + i32.add + set_local $2 + get_local $3 + end + i32.add + i32.load8_u + set_local $3 + get_local $3 + i32.const 128 + i32.lt_u + if + get_local $4 + get_local $5 + i32.add + get_local $3 + i32.store16 + get_local $5 + i32.const 2 + i32.add + set_local $5 + else + get_local $3 + i32.const 191 + i32.gt_u + tee_local $6 + if (result i32) + get_local $3 + i32.const 224 + i32.lt_u + else + get_local $6 + end + if + get_local $2 + i32.const 1 + i32.add + get_local $1 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 510 + i32.const 8 + call $~lib/env/abort + unreachable + end + get_local $4 + get_local $5 + i32.add + get_local $3 + i32.const 31 + i32.and + i32.const 6 + i32.shl + get_local $0 + block (result i32) + get_local $2 + tee_local $6 + i32.const 1 + i32.add + set_local $2 + get_local $6 + end + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.or + i32.store16 + get_local $5 + i32.const 2 + i32.add + set_local $5 + else + get_local $3 + i32.const 239 + i32.gt_u + tee_local $6 + if (result i32) + get_local $3 + i32.const 365 + i32.lt_u + else + get_local $6 + end + if + get_local $2 + i32.const 3 + i32.add + get_local $1 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 514 + i32.const 8 + call $~lib/env/abort + unreachable + end + get_local $3 + i32.const 7 + i32.and + i32.const 18 + i32.shl + get_local $0 + block (result i32) + get_local $2 + tee_local $6 + i32.const 1 + i32.add + set_local $2 + get_local $6 + end + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.const 12 + i32.shl + i32.or + get_local $0 + block (result i32) + get_local $2 + tee_local $6 + i32.const 1 + i32.add + set_local $2 + get_local $6 + end + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.const 6 + i32.shl + i32.or + get_local $0 + block (result i32) + get_local $2 + tee_local $6 + i32.const 1 + i32.add + set_local $2 + get_local $6 + end + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.or + i32.const 65536 + i32.sub + set_local $3 + get_local $4 + get_local $5 + i32.add + i32.const 55296 + get_local $3 + i32.const 10 + i32.shr_u + i32.add + i32.store16 + get_local $5 + i32.const 2 + i32.add + set_local $5 + get_local $4 + get_local $5 + i32.add + i32.const 56320 + get_local $3 + i32.const 1023 + i32.and + i32.add + i32.store16 + get_local $5 + i32.const 2 + i32.add + set_local $5 + else + get_local $2 + i32.const 2 + i32.add + get_local $1 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 526 + i32.const 8 + call $~lib/env/abort + unreachable + end + get_local $4 + get_local $5 + i32.add + get_local $3 + i32.const 15 + i32.and + i32.const 12 + i32.shl + get_local $0 + block (result i32) + get_local $2 + tee_local $6 + i32.const 1 + i32.add + set_local $2 + get_local $6 + end + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.const 6 + i32.shl + i32.or + get_local $0 + block (result i32) + get_local $2 + tee_local $6 + i32.const 1 + i32.add + set_local $2 + get_local $6 + end + i32.add + i32.load8_u + i32.const 63 + i32.and + i32.or + i32.store16 + get_local $5 + i32.const 2 + i32.add + set_local $5 + end + end + end + end + br $continue|0 + end + end + end + get_local $2 + get_local $1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 535 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $5 + i32.const 1 + i32.shr_u + call $~lib/internal/string/allocateUnsafe + set_local $7 + block $~lib/memory/memory.copy|inlined.0 + get_local $7 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $3 + get_local $3 + get_local $4 + get_local $5 + call $~lib/internal/memory/memmove + end + block $~lib/memory/memory.free|inlined.0 + block + get_local $4 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.0 + unreachable + end + unreachable + end + get_local $7 ) (func $~lib/internal/string/compareUnsafe (; 9 ;) (type $iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $5 - (i32.const 0) - ) - (set_local $6 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $4) - (i32.eqz - (tee_local $5 - (i32.sub - (i32.load16_u offset=4 - (get_local $6) - ) - (i32.load16_u offset=4 - (get_local $7) - ) - ) - ) - ) - (get_local $4) - ) - (block - (block - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (get_local $5) + i32.const 0 + set_local $5 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $6 + get_local $2 + get_local $3 + i32.const 1 + i32.shl + i32.add + set_local $7 + block $break|0 + loop $continue|0 + get_local $4 + if (result i32) + get_local $6 + i32.load16_u offset=4 + get_local $7 + i32.load16_u offset=4 + i32.sub + tee_local $5 + i32.eqz + else + get_local $4 + end + if + block + get_local $4 + i32.const 1 + i32.sub + set_local $4 + get_local $6 + i32.const 1 + i32.add + set_local $6 + get_local $7 + i32.const 1 + i32.add + set_local $7 + end + br $continue|0 + end + end + end + get_local $5 ) (func $~lib/string/String.__eq (; 10 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.ne - (get_local $3) - (i32.load - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $3) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.const 0 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $3 + call $~lib/internal/string/compareUnsafe + i32.eqz ) (func $start (; 11 ;) (type $v) (local $0 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/string-utf8/len - (call $~lib/string/String#get:lengthUTF8 - (get_global $std/string-utf8/str) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/string-utf8/len) - (i32.const 11) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string-utf8/ptr - (call $~lib/string/String#toUTF8 - (get_global $std/string-utf8/str) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u - (get_global $std/string-utf8/ptr) - ) - (i32.const 240) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u offset=1 - (get_global $std/string-utf8/ptr) - ) - (i32.const 144) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u offset=2 - (get_global $std/string-utf8/ptr) - ) - (i32.const 144) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u offset=3 - (get_global $std/string-utf8/ptr) - ) - (i32.const 183) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 14) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u offset=4 - (get_global $std/string-utf8/ptr) - ) - (i32.const 104) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 15) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u offset=5 - (get_global $std/string-utf8/ptr) - ) - (i32.const 105) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u offset=6 - (get_global $std/string-utf8/ptr) - ) - (i32.const 240) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u offset=7 - (get_global $std/string-utf8/ptr) - ) - (i32.const 164) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 18) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u offset=8 - (get_global $std/string-utf8/ptr) - ) - (i32.const 173) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u offset=9 - (get_global $std/string-utf8/ptr) - ) - (i32.const 162) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load8_u offset=10 - (get_global $std/string-utf8/ptr) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 21) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (get_global $std/string-utf8/ptr) - (i32.const 0) - ) - (i32.const 64) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (get_global $std/string-utf8/ptr) - (i32.sub - (get_global $std/string-utf8/len) - (i32.const 1) - ) - ) - (get_global $std/string-utf8/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (get_global $std/string-utf8/ptr) - (i32.const 4) - ) - (i32.const 160) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (i32.add - (get_global $std/string-utf8/ptr) - (i32.const 4) - ) - (i32.const 2) - ) - (i32.const 168) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (i32.add - (get_global $std/string-utf8/ptr) - (i32.const 6) - ) - (i32.const 4) - ) - (i32.const 176) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromUTF8 - (i32.add - (get_global $std/string-utf8/ptr) - (i32.const 10) - ) - (i32.const 1) - ) - (i32.const 184) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.1 - (set_local $0 - (get_global $std/string-utf8/ptr) - ) - (block - (call $~lib/allocator/arena/__memory_free - (get_local $0) - ) - (br $~lib/memory/memory.free|inlined.1) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + get_global $std/string-utf8/str + call $~lib/string/String#get:lengthUTF8 + set_global $std/string-utf8/len + get_global $std/string-utf8/len + i32.const 11 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/str + call $~lib/string/String#toUTF8 + set_global $std/string-utf8/ptr + get_global $std/string-utf8/ptr + i32.load8_u + i32.const 240 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=1 + i32.const 144 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=2 + i32.const 144 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=3 + i32.const 183 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 14 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=4 + i32.const 104 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 15 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=5 + i32.const 105 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=6 + i32.const 240 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=7 + i32.const 164 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 18 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=8 + i32.const 173 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=9 + i32.const 162 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.load8_u offset=10 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 21 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.const 0 + call $~lib/string/String.fromUTF8 + i32.const 64 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + get_global $std/string-utf8/len + i32.const 1 + i32.sub + call $~lib/string/String.fromUTF8 + get_global $std/string-utf8/str + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.const 4 + call $~lib/string/String.fromUTF8 + i32.const 160 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.const 4 + i32.add + i32.const 2 + call $~lib/string/String.fromUTF8 + i32.const 168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.const 6 + i32.add + i32.const 4 + call $~lib/string/String.fromUTF8 + i32.const 176 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string-utf8/ptr + i32.const 10 + i32.add + i32.const 1 + call $~lib/string/String.fromUTF8 + i32.const 184 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.1 + get_global $std/string-utf8/ptr + set_local $0 + block + get_local $0 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.1 + unreachable + end + unreachable + end ) (func $null (; 12 ;) (type $v) ) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 393dc53b..d0589d5d 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -21,6 +21,7 @@ (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\10\00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g") (data (i32.const 48) "\0d\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") @@ -172,9 +173,8 @@ (data (i32.const 5752) "\0b\00\00\000\00.\000\000\000\000\003\005\006\008\009") (data (i32.const 5784) "\16\00\00\003\00.\004\000\002\008\002\003\004\006\006\003\008\005\002\008\008\006\00e\00+\003\008") (data (i32.const 5832) "\15\00\00\001\00.\001\009\002\000\009\002\008\009\005\005\000\007\008\001\002\005\00e\00-\007") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $~lib/internal/number/_K (mut i32) (i32.const 0)) @@ -194,4755 +194,3339 @@ (export "table" (table $0)) (export "getString" (func $std/string/getString)) (start $start) - (func $~lib/string/String#charCodeAt (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 75) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ge_u - (i32.const 0) - (i32.load - (get_local $0) - ) - ) - (return - (i32.const -1) - ) - ) - (i32.load16_u offset=4 - (get_local $0) - ) + (func $~lib/string/String#charCodeAt (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 75 + i32.const 4 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + i32.load + i32.ge_u + if + i32.const -1 + return + end + get_local $0 + i32.load16_u offset=4 ) - (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/internal/string/allocateUnsafe (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/string/allocateUnsafe (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (tee_local $1 - (i32.gt_s - (get_local $0) - (i32.const 0) - ) - ) - (set_local $1 - (i32.le_s - (get_local $0) - (i32.const 536870910) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 112) - (i32.const 14) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (i32.add - (i32.shl - (get_local $0) - (i32.const 1) - ) - (i32.const 4) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 0 + i32.gt_s + tee_local $1 + if + get_local $0 + i32.const 536870910 + i32.le_s + set_local $1 + end + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 14 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.shl + i32.const 4 + i32.add + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/string/String.fromCharCode (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/string/String.fromCharCode (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (i32.store16 offset=4 - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (i32.const 1) - ) - ) - (get_local $0) - ) - (get_local $1) + i32.const 1 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $0 + i32.store16 offset=4 + get_local $1 ) - (func $~lib/internal/string/compareUnsafe (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/internal/string/compareUnsafe (; 5 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) - (set_local $1 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (loop $continue|0 - (if - (tee_local $0 - (if (result i32) - (get_local $3) - (i32.eqz - (tee_local $4 - (i32.sub - (i32.load16_u offset=4 - (get_local $1) - ) - (i32.load16_u offset=4 - (get_local $2) - ) - ) - ) - ) - (get_local $3) - ) - ) - (block - (set_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (get_local $4) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $1 + loop $continue|0 + get_local $3 + if (result i32) + get_local $1 + i32.load16_u offset=4 + get_local $2 + i32.load16_u offset=4 + i32.sub + tee_local $4 + i32.eqz + else + get_local $3 + end + tee_local $0 + if + get_local $3 + i32.const 1 + i32.sub + set_local $3 + get_local $1 + i32.const 1 + i32.add + set_local $1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $continue|0 + end + end + get_local $4 ) - (func $~lib/string/String.__eq (; 6 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 6 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.eqz - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.eqz - (get_local $1) - ) - ) - ) - (if - (get_local $2) - (return - (i32.const 0) - ) - ) - (if - (i32.ne - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - (i32.load - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (get_local $2) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.eqz + tee_local $2 + i32.eqz + if + get_local $1 + i32.eqz + set_local $2 + end + get_local $2 + if + i32.const 0 + return + end + get_local $0 + i32.load + tee_local $2 + get_local $1 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + i32.const 0 + get_local $1 + get_local $2 + call $~lib/internal/string/compareUnsafe + i32.eqz ) - (func $~lib/string/String.fromCodePoint (; 7 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/string/String.fromCodePoint (; 7 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1114111) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $1 - (call $~lib/internal/string/allocateUnsafe - (i32.add - (tee_local $2 - (i32.gt_s - (get_local $0) - (i32.const 65535) - ) - ) - (i32.const 1) - ) - ) - ) - (if - (get_local $2) - (i32.store offset=4 - (get_local $1) - (i32.or - (i32.shl - (i32.add - (i32.shr_u - (tee_local $0 - (i32.sub - (get_local $0) - (i32.const 65536) - ) - ) - (i32.const 10) - ) - (i32.const 55296) - ) - (i32.const 16) - ) - (i32.add - (i32.and - (get_local $0) - (i32.const 1023) - ) - (i32.const 56320) - ) - ) - ) - (i32.store16 offset=4 - (get_local $1) - (get_local $0) - ) - ) - (get_local $1) + get_local $0 + i32.const 1114111 + i32.gt_u + if + i32.const 0 + i32.const 80 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 65535 + i32.gt_s + tee_local $2 + i32.const 1 + i32.add + call $~lib/internal/string/allocateUnsafe + set_local $1 + get_local $2 + if + get_local $1 + get_local $0 + i32.const 65536 + i32.sub + tee_local $0 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.add + i32.const 16 + i32.shl + get_local $0 + i32.const 1023 + i32.and + i32.const 56320 + i32.add + i32.or + i32.store offset=4 + else + get_local $1 + get_local $0 + i32.store16 offset=4 + end + get_local $1 ) - (func $~lib/string/String#startsWith (; 8 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#startsWith (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 244) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.gt_s - (i32.add - (tee_local $2 - (i32.load - (i32.const 192) - ) - ) - (tee_local $3 - (select - (i32.const 0) - (tee_local $1 - (i32.load - (get_local $0) - ) - ) - (i32.lt_s - (i32.const 0) - (get_local $1) - ) - ) - ) - ) - (get_local $1) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $3) - (i32.const 192) - (get_local $2) - ) - ) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 244 + i32.const 4 + call $~lib/env/abort + unreachable + end + i32.const 192 + i32.load + tee_local $2 + i32.const 0 + get_local $0 + i32.load + tee_local $1 + i32.const 0 + get_local $1 + i32.lt_s + select + tee_local $3 + i32.add + get_local $1 + i32.gt_s + if + i32.const 0 + return + end + get_local $0 + get_local $3 + i32.const 192 + get_local $2 + call $~lib/internal/string/compareUnsafe + i32.eqz ) - (func $~lib/string/String#endsWith (; 9 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#endsWith (; 9 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 124) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.lt_s - (tee_local $3 - (i32.sub - (select - (tee_local $2 - (select - (get_local $2) - (i32.const 0) - (i32.gt_s - (get_local $2) - (i32.const 0) - ) - ) - ) - (tee_local $3 - (i32.load - (get_local $0) - ) - ) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - (tee_local $2 - (i32.load - (get_local $1) - ) - ) - ) - ) - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $3) - (get_local $1) - (get_local $2) - ) - ) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 124 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + i32.const 0 + get_local $2 + i32.const 0 + i32.gt_s + select + tee_local $2 + get_local $0 + i32.load + tee_local $3 + get_local $2 + get_local $3 + i32.lt_s + select + get_local $1 + i32.load + tee_local $2 + i32.sub + tee_local $3 + i32.const 0 + i32.lt_s + if + i32.const 0 + return + end + get_local $0 + get_local $3 + get_local $1 + get_local $2 + call $~lib/internal/string/compareUnsafe + i32.eqz ) - (func $~lib/string/String#endsWith|trampoline (; 10 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#endsWith|trampoline (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 536870910) - ) - ) - (call $~lib/string/String#endsWith - (get_local $0) - (i32.const 216) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 536870910 + set_local $1 + end + get_local $0 + i32.const 216 + get_local $1 + call $~lib/string/String#endsWith ) - (func $~lib/string/String#indexOf (; 11 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#indexOf (; 11 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 213) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (set_local $1 - (i32.const 200) - ) - ) - (if - (i32.eqz - (tee_local $4 - (i32.load - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eqz - (tee_local $3 - (i32.load - (get_local $0) - ) - ) - ) - (return - (i32.const -1) - ) - ) - (set_local $2 - (select - (tee_local $2 - (select - (get_local $2) - (i32.const 0) - (i32.gt_s - (get_local $2) - (i32.const 0) - ) - ) - ) - (get_local $3) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (get_local $4) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.gt_s - (get_local $2) - (get_local $3) - ) - ) - (if - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $2) - (get_local $1) - (get_local $4) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - (return - (get_local $2) - ) - ) - ) - ) - (i32.const -1) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 213 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.eqz + if + i32.const 200 + set_local $1 + end + get_local $1 + i32.load + tee_local $4 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + i32.load + tee_local $3 + i32.eqz + if + i32.const -1 + return + end + get_local $2 + i32.const 0 + get_local $2 + i32.const 0 + i32.gt_s + select + tee_local $2 + get_local $3 + get_local $2 + get_local $3 + i32.lt_s + select + set_local $2 + get_local $3 + get_local $4 + i32.sub + set_local $3 + block $break|0 + loop $repeat|0 + get_local $2 + get_local $3 + i32.gt_s + br_if $break|0 + get_local $0 + get_local $2 + get_local $1 + get_local $4 + call $~lib/internal/string/compareUnsafe + if + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + else + get_local $2 + return + end + unreachable + unreachable + end + unreachable + end + i32.const -1 ) - (func $~lib/internal/memory/memcpy (; 12 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memcpy (; 12 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (loop $continue|0 - (if - (tee_local $3 - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - ) - (block - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (block - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (if - (i32.ne - (tee_local $3 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 1) - ) - (block - (br_if $case1|2 - (i32.eq - (get_local $3) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $3) - (i32.const 3) - ) - ) - (br $break|2) - ) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 24) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|3) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 16) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|4) - ) - ) - ) - (br $break|2) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - (i32.shl - (tee_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (tee_local $5 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (tee_local $3 - (get_local $1) - ) - ) - ) - (set_local $0 - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $1) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.store8 - (get_local $3) - (i32.load8_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (block - (set_local $3 - (get_local $1) - ) - (i32.store8 - (get_local $0) - (i32.load8_u - (get_local $1) - ) - ) - ) - ) + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + tee_local $3 + if + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|0 + end + end + get_local $0 + i32.const 3 + i32.and + i32.eqz + if + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|1 + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + get_local $0 + i32.const 3 + i32.and + tee_local $3 + i32.const 1 + i32.ne + if + get_local $3 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $3 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 1 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 5 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 9 + i32.add + i32.load + tee_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $1 + i32.const 13 + i32.add + i32.load + tee_local $5 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|3 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 2 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 6 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 10 + i32.add + i32.load + tee_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $1 + i32.const 14 + i32.add + i32.load + tee_local $5 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|4 + end + end + br $break|2 + end + get_local $1 + i32.load + set_local $5 + get_local $0 + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + get_local $0 + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 3 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 7 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 11 + i32.add + i32.load + tee_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $1 + i32.const 15 + i32.add + i32.load + tee_local $5 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + br $continue|5 + end + end + end + end + get_local $2 + i32.const 16 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + tee_local $3 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $1 + set_local $0 + get_local $1 + get_local $3 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $3 + set_local $0 + get_local $3 + get_local $1 + i32.const 1 + i32.add + tee_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + get_local $0 + i32.const 1 + i32.add + tee_local $4 + i32.const 1 + i32.add + set_local $0 + get_local $1 + i32.const 1 + i32.add + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + get_local $1 + set_local $3 + get_local $0 + get_local $1 + i32.load8_u + i32.store8 + end ) - (func $~lib/internal/memory/memmove (; 13 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memmove (; 13 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (i32.eqz - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - ) - (set_local $3 - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $3) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (get_local $2) - (block - (set_local $0 - (i32.add - (tee_local $3 - (tee_local $4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (i32.store8 - (get_local $4) - (i32.load8_u - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (i64.store - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + i32.eqz + if + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + set_local $3 + end + get_local $3 + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + br $continue|0 + end + end + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + br $continue|1 + end + end + end + loop $continue|2 + get_local $2 + if + get_local $0 + tee_local $4 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $4 + get_local $3 + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $continue|2 + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|3 + end + end + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 8 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + br $continue|4 + end + end + end + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end ) - (func $~lib/internal/string/repeatUnsafe (; 14 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/string/repeatUnsafe (; 14 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i64) - (block $break|0 - (block $case5|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $5 - (tee_local $6 - (i32.load - (get_local $2) - ) - ) - ) - (br_if $break|0 - (i32.eqz - (get_local $6) - ) - ) - (block $tablify|0 - (br_table $case1|0 $case2|0 $case3|0 $case4|0 $tablify|0 - (i32.sub - (get_local $5) - (i32.const 1) - ) - ) - ) - (br $case5|0) - ) - ) - (set_local $5 - (i32.load16_u offset=4 - (get_local $2) - ) - ) - (set_local $4 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (block $break|1 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $4) - (i32.shl - (get_local $0) - (i32.const 1) - ) - ) - (get_local $5) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (br $break|0) - ) - (set_local $4 - (i32.load offset=4 - (get_local $2) - ) - ) - (set_local $5 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (block $break|2 - (set_local $0 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $5) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - (get_local $4) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (br $break|0) - ) - (set_local $5 - (i32.load offset=4 - (get_local $2) - ) - ) - (set_local $4 - (i32.load16_u offset=8 - (get_local $2) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (block $break|3 - (set_local $1 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.ge_s - (get_local $1) - (get_local $3) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $5) - ) - (i32.store16 offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (get_local $4) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (br $break|0) - ) - (set_local $7 - (i64.load offset=4 - (get_local $2) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (block $break|4 - (loop $repeat|4 - (br_if $break|4 - (i32.ge_s - (get_local $4) - (get_local $3) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - (get_local $7) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|4) - ) - ) - (br $break|0) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $2) - (i32.const 4) - ) - ) - (block $break|5 - (set_local $1 - (i32.const 0) - ) - (set_local $2 - (i32.mul - (tee_local $0 - (i32.shl - (get_local $6) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - (loop $repeat|5 - (br_if $break|5 - (i32.ge_s - (get_local $1) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memmove - (i32.add - (get_local $4) - (get_local $1) - ) - (get_local $5) - (get_local $0) - ) - (set_local $1 - (i32.add - (get_local $1) - (get_local $0) - ) - ) - (br $repeat|5) - ) - ) - ) + block $break|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $2 + i32.load + tee_local $6 + set_local $5 + get_local $6 + i32.eqz + br_if $break|0 + block $tablify|0 + get_local $5 + i32.const 1 + i32.sub + br_table $case1|0 $case2|0 $case3|0 $case4|0 $tablify|0 + end + br $case5|0 + unreachable + end + unreachable + end + get_local $2 + i32.load16_u offset=4 + set_local $5 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $4 + block $break|1 + i32.const 0 + set_local $0 + loop $repeat|1 + get_local $0 + get_local $3 + i32.ge_s + br_if $break|1 + get_local $4 + get_local $0 + i32.const 1 + i32.shl + i32.add + get_local $5 + i32.store16 offset=4 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|1 + unreachable + end + unreachable + end + br $break|0 + end + get_local $2 + i32.load offset=4 + set_local $4 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $5 + block $break|2 + i32.const 0 + set_local $0 + loop $repeat|2 + get_local $0 + get_local $3 + i32.ge_s + br_if $break|2 + get_local $5 + get_local $0 + i32.const 2 + i32.shl + i32.add + get_local $4 + i32.store offset=4 + get_local $0 + i32.const 1 + i32.add + set_local $0 + br $repeat|2 + unreachable + end + unreachable + end + br $break|0 + end + get_local $2 + i32.load offset=4 + set_local $5 + get_local $2 + i32.load16_u offset=8 + set_local $4 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + block $break|3 + i32.const 0 + set_local $1 + loop $repeat|3 + get_local $1 + get_local $3 + i32.ge_s + br_if $break|3 + get_local $0 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=4 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + get_local $4 + i32.store16 offset=8 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|3 + unreachable + end + unreachable + end + br $break|0 + end + get_local $2 + i64.load offset=4 + set_local $7 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $0 + block $break|4 + loop $repeat|4 + get_local $4 + get_local $3 + i32.ge_s + br_if $break|4 + get_local $0 + get_local $4 + i32.const 3 + i32.shl + i32.add + get_local $7 + i64.store offset=4 + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|4 + unreachable + end + unreachable + end + br $break|0 + end + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $4 + get_local $2 + i32.const 4 + i32.add + set_local $5 + block $break|5 + i32.const 0 + set_local $1 + get_local $6 + i32.const 1 + i32.shl + tee_local $0 + get_local $3 + i32.mul + set_local $2 + loop $repeat|5 + get_local $1 + get_local $2 + i32.ge_s + br_if $break|5 + get_local $4 + get_local $1 + i32.add + get_local $5 + get_local $0 + call $~lib/internal/memory/memmove + get_local $1 + get_local $0 + i32.add + set_local $1 + br $repeat|5 + unreachable + end + unreachable + end + end ) - (func $~lib/internal/string/copyUnsafe (; 15 ;) (; has Stack IR ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (call $~lib/internal/memory/memmove - (i32.add - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 4) - ) - (i32.add - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 4) - ) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) + (func $~lib/internal/string/copyUnsafe (; 15 ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + i32.const 4 + i32.add + get_local $2 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.const 4 + i32.add + get_local $4 + i32.const 1 + i32.shl + call $~lib/internal/memory/memmove ) - (func $~lib/string/String#padStart (; 16 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#padStart (; 16 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 360) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $3 - (i32.load - (get_local $2) - ) - ) - (if - (i32.eqz - (tee_local $5 - (i32.lt_s - (get_local $1) - (tee_local $6 - (i32.load - (get_local $0) - ) - ) - ) - ) - ) - (set_local $5 - (i32.eqz - (get_local $3) - ) - ) - ) - (if - (get_local $5) - (return - (get_local $0) - ) - ) - (set_local $4 - (i32.sub - (get_local $1) - (get_local $6) - ) - ) - (set_local $1 - (call $~lib/internal/string/allocateUnsafe - (get_local $1) - ) - ) - (if - (i32.gt_s - (get_local $4) - (get_local $3) - ) - (block - (set_local $3 - (i32.sub - (get_local $4) - (tee_local $7 - (i32.mul - (tee_local $5 - (i32.div_s - (i32.sub - (get_local $4) - (i32.const 1) - ) - (get_local $3) - ) - ) - (get_local $3) - ) - ) - ) - ) - (call $~lib/internal/string/repeatUnsafe - (get_local $1) - (i32.const 0) - (get_local $2) - (get_local $5) - ) - (if - (get_local $3) - (call $~lib/internal/string/copyUnsafe - (get_local $1) - (get_local $7) - (get_local $2) - (i32.const 0) - (get_local $3) - ) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $1) - (i32.const 0) - (get_local $2) - (i32.const 0) - (get_local $4) - ) - ) - (if - (get_local $6) - (call $~lib/internal/string/copyUnsafe - (get_local $1) - (get_local $4) - (get_local $0) - (i32.const 0) - (get_local $6) - ) - ) - (get_local $1) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 360 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $2 + i32.load + set_local $3 + get_local $1 + get_local $0 + i32.load + tee_local $6 + i32.lt_s + tee_local $5 + i32.eqz + if + get_local $3 + i32.eqz + set_local $5 + end + get_local $5 + if + get_local $0 + return + end + get_local $1 + get_local $6 + i32.sub + set_local $4 + get_local $1 + call $~lib/internal/string/allocateUnsafe + set_local $1 + get_local $4 + get_local $3 + i32.gt_s + if + get_local $4 + get_local $4 + i32.const 1 + i32.sub + get_local $3 + i32.div_s + tee_local $5 + get_local $3 + i32.mul + tee_local $7 + i32.sub + set_local $3 + get_local $1 + i32.const 0 + get_local $2 + get_local $5 + call $~lib/internal/string/repeatUnsafe + get_local $3 + if + get_local $1 + get_local $7 + get_local $2 + i32.const 0 + get_local $3 + call $~lib/internal/string/copyUnsafe + end + else + get_local $1 + i32.const 0 + get_local $2 + i32.const 0 + get_local $4 + call $~lib/internal/string/copyUnsafe + end + get_local $6 + if + get_local $1 + get_local $4 + get_local $0 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + end + get_local $1 ) - (func $~lib/string/String#padStart|trampoline (; 17 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#padStart|trampoline (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 248) - ) - ) - (call $~lib/string/String#padStart - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 248 + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/string/String#padStart ) - (func $~lib/string/String#padEnd (; 18 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#padEnd (; 18 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 380) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $4 - (i32.load - (get_local $2) - ) - ) - (if - (i32.eqz - (tee_local $3 - (i32.lt_s - (get_local $1) - (tee_local $5 - (i32.load - (get_local $0) - ) - ) - ) - ) - ) - (set_local $3 - (i32.eqz - (get_local $4) - ) - ) - ) - (if - (get_local $3) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.sub - (get_local $1) - (get_local $5) - ) - ) - (set_local $1 - (call $~lib/internal/string/allocateUnsafe - (get_local $1) - ) - ) - (if - (get_local $5) - (call $~lib/internal/string/copyUnsafe - (get_local $1) - (i32.const 0) - (get_local $0) - (i32.const 0) - (get_local $5) - ) - ) - (if - (i32.gt_s - (get_local $3) - (get_local $4) - ) - (block - (set_local $0 - (i32.sub - (get_local $3) - (tee_local $4 - (i32.mul - (tee_local $3 - (i32.div_s - (i32.sub - (get_local $3) - (i32.const 1) - ) - (get_local $4) - ) - ) - (get_local $4) - ) - ) - ) - ) - (call $~lib/internal/string/repeatUnsafe - (get_local $1) - (get_local $5) - (get_local $2) - (get_local $3) - ) - (if - (get_local $0) - (call $~lib/internal/string/copyUnsafe - (get_local $1) - (i32.add - (get_local $4) - (get_local $5) - ) - (get_local $2) - (i32.const 0) - (get_local $0) - ) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $1) - (get_local $5) - (get_local $2) - (i32.const 0) - (get_local $3) - ) - ) - (get_local $1) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 380 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $2 + i32.load + set_local $4 + get_local $1 + get_local $0 + i32.load + tee_local $5 + i32.lt_s + tee_local $3 + i32.eqz + if + get_local $4 + i32.eqz + set_local $3 + end + get_local $3 + if + get_local $0 + return + end + get_local $1 + get_local $5 + i32.sub + set_local $3 + get_local $1 + call $~lib/internal/string/allocateUnsafe + set_local $1 + get_local $5 + if + get_local $1 + i32.const 0 + get_local $0 + i32.const 0 + get_local $5 + call $~lib/internal/string/copyUnsafe + end + get_local $3 + get_local $4 + i32.gt_s + if + get_local $3 + get_local $3 + i32.const 1 + i32.sub + get_local $4 + i32.div_s + tee_local $3 + get_local $4 + i32.mul + tee_local $4 + i32.sub + set_local $0 + get_local $1 + get_local $5 + get_local $2 + get_local $3 + call $~lib/internal/string/repeatUnsafe + get_local $0 + if + get_local $1 + get_local $4 + get_local $5 + i32.add + get_local $2 + i32.const 0 + get_local $0 + call $~lib/internal/string/copyUnsafe + end + else + get_local $1 + get_local $5 + get_local $2 + i32.const 0 + get_local $3 + call $~lib/internal/string/copyUnsafe + end + get_local $1 ) - (func $~lib/string/String#padEnd|trampoline (; 19 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#padEnd|trampoline (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 248) - ) - ) - (call $~lib/string/String#padEnd - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 248 + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/string/String#padEnd ) - (func $~lib/string/String#lastIndexOf (; 20 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#lastIndexOf (; 20 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 229) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (set_local $1 - (i32.const 200) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eqz - (tee_local $4 - (i32.load - (get_local $1) - ) - ) - ) - (return - (get_local $3) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const -1) - ) - ) - (block $break|0 - (set_local $2 - (select - (tee_local $2 - (select - (get_local $2) - (i32.const 0) - (i32.gt_s - (get_local $2) - (i32.const 0) - ) - ) - ) - (tee_local $3 - (i32.sub - (get_local $3) - (get_local $4) - ) - ) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - ) - (if - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $2) - (get_local $1) - (get_local $4) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - (return - (get_local $2) - ) - ) - ) - ) - (i32.const -1) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 229 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.eqz + if + i32.const 200 + set_local $1 + end + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.load + tee_local $4 + i32.eqz + if + get_local $3 + return + end + get_local $3 + i32.eqz + if + i32.const -1 + return + end + block $break|0 + get_local $2 + i32.const 0 + get_local $2 + i32.const 0 + i32.gt_s + select + tee_local $2 + get_local $3 + get_local $4 + i32.sub + tee_local $3 + get_local $2 + get_local $3 + i32.lt_s + select + set_local $2 + loop $repeat|0 + get_local $2 + i32.const 0 + i32.lt_s + br_if $break|0 + get_local $0 + get_local $2 + get_local $1 + get_local $4 + call $~lib/internal/string/compareUnsafe + if + get_local $2 + i32.const 1 + i32.sub + set_local $2 + br $repeat|0 + else + get_local $2 + return + end + unreachable + unreachable + end + unreachable + end + i32.const -1 ) - (func $~lib/string/String#lastIndexOf|trampoline (; 21 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#lastIndexOf|trampoline (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 2147483647) - ) - ) - (call $~lib/string/String#lastIndexOf - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/string/String#lastIndexOf ) - (func $std/string/getString (; 22 ;) (; has Stack IR ;) (type $i) (result i32) - (get_global $std/string/str) + (func $std/string/getString (; 22 ;) (type $i) (result i32) + get_global $std/string/str ) - (func $~lib/internal/string/parse (; 23 ;) (; has Stack IR ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/internal/string/parse (; 23 ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) (local $6 f64) - (if - (i32.eqz - (tee_local $4 - (i32.load - (get_local $0) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (set_local $6 - (if (result f64) - (i32.eq - (tee_local $2 - (i32.load16_u offset=4 - (tee_local $3 - (get_local $0) - ) - ) - ) - (i32.const 45) - ) - (block (result f64) - (if - (i32.eqz - (tee_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (set_local $2 - (i32.load16_u offset=4 - (tee_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (f64.const -1) - ) - (block (result f64) - (if - (i32.eq - (get_local $2) - (i32.const 43) - ) - (block - (if - (i32.eqz - (tee_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (set_local $2 - (i32.load16_u offset=4 - (tee_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (f64.const 1) - ) - ) - ) - (if - (get_local $1) - (block - (if - (i32.eqz - (tee_local $0 - (i32.lt_s - (get_local $1) - (i32.const 2) - ) - ) - ) - (set_local $0 - (i32.gt_s - (get_local $1) - (i32.const 36) - ) - ) - ) - (if - (get_local $0) - (return - (f64.const nan:0x8000000000000) - ) - ) - ) - (block - (if - (tee_local $0 - (i32.eq - (get_local $2) - (i32.const 48) - ) - ) - (set_local $0 - (i32.gt_s - (get_local $4) - (i32.const 2) - ) - ) - ) - (set_local $1 - (if (result i32) - (get_local $0) - (block $break|0 (result i32) - (block $case6|0 - (block $case5|0 - (block $case3|0 - (block $case1|0 - (br_if $case1|0 - (i32.eq - (tee_local $0 - (i32.load16_u offset=4 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - (i32.const 66) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $0) - (i32.const 98) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $0) - (i32.const 79) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $0) - (i32.const 111) - ) - ) - (br_if $case5|0 - (i32.eq - (get_local $0) - (i32.const 88) - ) - ) - (br_if $case5|0 - (i32.eq - (get_local $0) - (i32.const 120) - ) - ) - (br $case6|0) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 4) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 2) - ) - ) - (br $break|0 - (i32.const 2) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 4) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 2) - ) - ) - (br $break|0 - (i32.const 8) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 4) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 2) - ) - ) - (br $break|0 - (i32.const 16) - ) - ) - (i32.const 10) - ) - (i32.const 10) - ) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (set_local $4 - (i32.sub - (tee_local $0 - (get_local $4) - ) - (i32.const 1) - ) - ) - (if - (get_local $0) - (block - (if - (tee_local $0 - (i32.ge_s - (tee_local $2 - (i32.load16_u offset=4 - (get_local $3) - ) - ) - (i32.const 48) - ) - ) - (set_local $0 - (i32.le_s - (get_local $2) - (i32.const 57) - ) - ) - ) - (br_if $break|1 - (i32.ge_s - (tee_local $2 - (if (result i32) - (get_local $0) - (i32.sub - (get_local $2) - (i32.const 48) - ) - (block (result i32) - (if - (tee_local $0 - (i32.ge_s - (get_local $2) - (i32.const 65) - ) - ) - (set_local $0 - (i32.le_s - (get_local $2) - (i32.const 90) - ) - ) - ) - (if (result i32) - (get_local $0) - (i32.sub - (get_local $2) - (i32.const 55) - ) - (block (result i32) - (if - (tee_local $0 - (i32.ge_s - (get_local $2) - (i32.const 97) - ) - ) - (set_local $0 - (i32.le_s - (get_local $2) - (i32.const 122) - ) - ) - ) - (br_if $break|1 - (i32.eqz - (get_local $0) - ) - ) - (i32.sub - (get_local $2) - (i32.const 87) - ) - ) - ) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $5 - (f64.add - (f64.mul - (get_local $5) - (f64.convert_s/i32 - (get_local $1) - ) - ) - (f64.convert_s/i32 - (get_local $2) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (f64.mul - (get_local $6) - (get_local $5) - ) + get_local $0 + i32.load + tee_local $4 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $0 + tee_local $3 + i32.load16_u offset=4 + tee_local $2 + i32.const 45 + i32.eq + if (result f64) + get_local $4 + i32.const 1 + i32.sub + tee_local $4 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $3 + i32.const 2 + i32.add + tee_local $3 + i32.load16_u offset=4 + set_local $2 + f64.const -1 + else + get_local $2 + i32.const 43 + i32.eq + if + get_local $4 + i32.const 1 + i32.sub + tee_local $4 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $3 + i32.const 2 + i32.add + tee_local $3 + i32.load16_u offset=4 + set_local $2 + end + f64.const 1 + end + set_local $6 + get_local $1 + if + get_local $1 + i32.const 2 + i32.lt_s + tee_local $0 + i32.eqz + if + get_local $1 + i32.const 36 + i32.gt_s + set_local $0 + end + get_local $0 + if + f64.const nan:0x8000000000000 + return + end + else + get_local $2 + i32.const 48 + i32.eq + tee_local $0 + if + get_local $4 + i32.const 2 + i32.gt_s + set_local $0 + end + get_local $0 + if (result i32) + block $break|0 (result i32) + block $case6|0 + block $case5|0 + block $case3|0 + block $case1|0 + get_local $3 + i32.const 2 + i32.add + i32.load16_u offset=4 + tee_local $0 + i32.const 66 + i32.eq + br_if $case1|0 + get_local $0 + i32.const 98 + i32.eq + br_if $case1|0 + get_local $0 + i32.const 79 + i32.eq + br_if $case3|0 + get_local $0 + i32.const 111 + i32.eq + br_if $case3|0 + get_local $0 + i32.const 88 + i32.eq + br_if $case5|0 + get_local $0 + i32.const 120 + i32.eq + br_if $case5|0 + br $case6|0 + end + get_local $3 + i32.const 4 + i32.add + set_local $3 + get_local $4 + i32.const 2 + i32.sub + set_local $4 + i32.const 2 + br $break|0 + end + get_local $3 + i32.const 4 + i32.add + set_local $3 + get_local $4 + i32.const 2 + i32.sub + set_local $4 + i32.const 8 + br $break|0 + end + get_local $3 + i32.const 4 + i32.add + set_local $3 + get_local $4 + i32.const 2 + i32.sub + set_local $4 + i32.const 16 + br $break|0 + end + i32.const 10 + end + else + i32.const 10 + end + set_local $1 + end + block $break|1 + loop $continue|1 + get_local $4 + tee_local $0 + i32.const 1 + i32.sub + set_local $4 + get_local $0 + if + get_local $3 + i32.load16_u offset=4 + tee_local $2 + i32.const 48 + i32.ge_s + tee_local $0 + if + get_local $2 + i32.const 57 + i32.le_s + set_local $0 + end + get_local $0 + if (result i32) + get_local $2 + i32.const 48 + i32.sub + else + get_local $2 + i32.const 65 + i32.ge_s + tee_local $0 + if + get_local $2 + i32.const 90 + i32.le_s + set_local $0 + end + get_local $0 + if (result i32) + get_local $2 + i32.const 55 + i32.sub + else + get_local $2 + i32.const 97 + i32.ge_s + tee_local $0 + if + get_local $2 + i32.const 122 + i32.le_s + set_local $0 + end + get_local $0 + i32.eqz + br_if $break|1 + get_local $2 + i32.const 87 + i32.sub + end + end + tee_local $2 + get_local $1 + i32.ge_s + br_if $break|1 + get_local $5 + get_local $1 + f64.convert_s/i32 + f64.mul + get_local $2 + f64.convert_s/i32 + f64.add + set_local $5 + get_local $3 + i32.const 2 + i32.add + set_local $3 + br $continue|1 + end + end + end + get_local $6 + get_local $5 + f64.mul ) - (func $~lib/string/parseInt (; 24 ;) (; has Stack IR ;) (type $FUNCSIG$di) (param $0 i32) (result f64) - (call $~lib/internal/string/parse - (get_local $0) - (i32.const 0) - ) + (func $~lib/string/parseInt (; 24 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + get_local $0 + i32.const 0 + call $~lib/internal/string/parse ) - (func $~lib/string/parseFloat (; 25 ;) (; has Stack IR ;) (type $iF) (param $0 i32) (result f64) + (func $~lib/string/parseFloat (; 25 ;) (type $iF) (param $0 i32) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 f64) (local $5 f64) (local $6 f64) - (if - (i32.eqz - (tee_local $3 - (i32.load - (get_local $0) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (set_local $6 - (if (result f64) - (i32.eq - (tee_local $2 - (i32.load16_u offset=4 - (tee_local $1 - (get_local $0) - ) - ) - ) - (i32.const 45) - ) - (block (result f64) - (if - (i32.eqz - (tee_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (drop - (i32.load16_u offset=4 - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (f64.const -1) - ) - (block (result f64) - (if - (i32.eq - (get_local $2) - (i32.const 43) - ) - (block - (if - (i32.eqz - (tee_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (drop - (i32.load16_u offset=4 - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (f64.const 1) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (set_local $3 - (i32.sub - (tee_local $0 - (get_local $3) - ) - (i32.const 1) - ) - ) - (if - (get_local $0) - (block - (if - (i32.eq - (tee_local $2 - (i32.load16_u offset=4 - (get_local $1) - ) - ) - (i32.const 46) - ) - (block - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - (set_local $5 - (f64.const 0.1) - ) - (block $break|1 - (loop $continue|1 - (set_local $3 - (i32.sub - (tee_local $0 - (get_local $3) - ) - (i32.const 1) - ) - ) - (if - (get_local $0) - (block - (if - (i32.eqz - (tee_local $0 - (i32.eq - (tee_local $2 - (i32.load16_u offset=4 - (get_local $1) - ) - ) - (i32.const 69) - ) - ) - ) - (set_local $0 - (i32.eq - (get_local $2) - (i32.const 101) - ) - ) - ) - (if - (get_local $0) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 626) - (i32.const 10) - ) - (unreachable) - ) - ) - (br_if $break|1 - (i32.gt_u - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 48) - ) - ) - (i32.const 9) - ) - ) - (set_local $4 - (f64.add - (get_local $4) - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_local $5) - ) - ) - ) - (set_local $5 - (f64.mul - (get_local $5) - (f64.const 0.1) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (br $break|0) - ) - ) - (br_if $break|0 - (i32.ge_u - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 48) - ) - ) - (i32.const 10) - ) - ) - (set_local $4 - (f64.add - (f64.mul - (get_local $4) - (f64.const 10) - ) - (f64.convert_s/i32 - (get_local $2) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (f64.mul - (get_local $6) - (get_local $4) - ) + get_local $0 + i32.load + tee_local $3 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $0 + tee_local $1 + i32.load16_u offset=4 + tee_local $2 + i32.const 45 + i32.eq + if (result f64) + get_local $3 + i32.const 1 + i32.sub + tee_local $3 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $1 + i32.const 2 + i32.add + tee_local $1 + i32.load16_u offset=4 + drop + f64.const -1 + else + get_local $2 + i32.const 43 + i32.eq + if + get_local $3 + i32.const 1 + i32.sub + tee_local $3 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $1 + i32.const 2 + i32.add + tee_local $1 + i32.load16_u offset=4 + drop + end + f64.const 1 + end + set_local $6 + block $break|0 + loop $continue|0 + get_local $3 + tee_local $0 + i32.const 1 + i32.sub + set_local $3 + get_local $0 + if + get_local $1 + i32.load16_u offset=4 + tee_local $2 + i32.const 46 + i32.eq + if + get_local $1 + i32.const 2 + i32.add + set_local $1 + f64.const 0.1 + set_local $5 + block $break|1 + loop $continue|1 + get_local $3 + tee_local $0 + i32.const 1 + i32.sub + set_local $3 + get_local $0 + if + get_local $1 + i32.load16_u offset=4 + tee_local $2 + i32.const 69 + i32.eq + tee_local $0 + i32.eqz + if + get_local $2 + i32.const 101 + i32.eq + set_local $0 + end + get_local $0 + if + i32.const 0 + i32.const 80 + i32.const 626 + i32.const 10 + call $~lib/env/abort + unreachable + end + get_local $2 + i32.const 48 + i32.sub + tee_local $2 + i32.const 9 + i32.gt_u + br_if $break|1 + get_local $4 + get_local $2 + f64.convert_s/i32 + get_local $5 + f64.mul + f64.add + set_local $4 + get_local $5 + f64.const 0.1 + f64.mul + set_local $5 + get_local $1 + i32.const 2 + i32.add + set_local $1 + br $continue|1 + end + end + end + br $break|0 + end + get_local $2 + i32.const 48 + i32.sub + tee_local $2 + i32.const 10 + i32.ge_u + br_if $break|0 + get_local $4 + f64.const 10 + f64.mul + get_local $2 + f64.convert_s/i32 + f64.add + set_local $4 + get_local $1 + i32.const 2 + i32.add + set_local $1 + br $continue|0 + end + end + end + get_local $6 + get_local $4 + f64.mul ) - (func $~lib/string/String#concat (; 26 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 26 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 110) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (set_local $1 - (i32.const 200) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.add - (tee_local $3 - (i32.load - (get_local $0) - ) - ) - (tee_local $4 - (i32.load - (get_local $1) - ) - ) - ) - ) - ) - (return - (i32.const 256) - ) - ) - (call $~lib/internal/string/copyUnsafe - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $2) - ) - ) - (i32.const 0) - (get_local $0) - (i32.const 0) - (get_local $3) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $2) - (get_local $3) - (get_local $1) - (i32.const 0) - (get_local $4) - ) - (get_local $2) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 110 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.eqz + if + i32.const 200 + set_local $1 + end + get_local $0 + i32.load + tee_local $3 + get_local $1 + i32.load + tee_local $4 + i32.add + tee_local $2 + i32.eqz + if + i32.const 256 + return + end + get_local $2 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + i32.const 0 + get_local $0 + i32.const 0 + get_local $3 + call $~lib/internal/string/copyUnsafe + get_local $2 + get_local $3 + get_local $1 + i32.const 0 + get_local $4 + call $~lib/internal/string/copyUnsafe + get_local $2 ) - (func $~lib/string/String.__concat (; 27 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (if - (i32.eqz - (get_local $0) - ) - (set_local $0 - (i32.const 200) - ) - ) - (call $~lib/string/String#concat - (get_local $0) - (get_local $1) - ) + (func $~lib/string/String.__concat (; 27 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + i32.eqz + if + i32.const 200 + set_local $0 + end + get_local $0 + get_local $1 + call $~lib/string/String#concat ) - (func $~lib/string/String.__ne (; 28 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.eqz - (call $~lib/string/String.__eq - (get_local $0) - (get_local $1) - ) - ) + (func $~lib/string/String.__ne (; 28 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $0 + get_local $1 + call $~lib/string/String.__eq + i32.eqz ) - (func $~lib/string/String.__gt (; 29 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gt (; 29 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (tee_local $2 - (i32.eq - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.eqz - (get_local $0) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (set_local $2 - (i32.eqz - (get_local $1) - ) - ) - ) - (if - (get_local $2) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 1) - ) - ) - (i32.gt_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (select - (get_local $2) - (get_local $3) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + tee_local $2 + i32.eqz + if + get_local $0 + i32.eqz + set_local $2 + end + get_local $2 + i32.eqz + if + get_local $1 + i32.eqz + set_local $2 + end + get_local $2 + if + i32.const 0 + return + end + get_local $1 + i32.load + set_local $3 + get_local $0 + i32.load + tee_local $2 + i32.eqz + if + i32.const 0 + return + end + get_local $3 + i32.eqz + if + i32.const 1 + return + end + get_local $0 + i32.const 0 + get_local $1 + get_local $2 + get_local $3 + get_local $2 + get_local $3 + i32.lt_s + select + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.gt_s ) - (func $~lib/string/String.__gte (; 30 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gte (; 30 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.eqz - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.eqz - (get_local $1) - ) - ) - ) - (if - (get_local $2) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (return - (i32.eqz - (get_local $3) - ) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 1) - ) - ) - (i32.ge_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (select - (get_local $2) - (get_local $3) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.eqz + tee_local $2 + i32.eqz + if + get_local $1 + i32.eqz + set_local $2 + end + get_local $2 + if + i32.const 0 + return + end + get_local $1 + i32.load + set_local $3 + get_local $0 + i32.load + tee_local $2 + i32.eqz + if + get_local $3 + i32.eqz + return + end + get_local $3 + i32.eqz + if + i32.const 1 + return + end + get_local $0 + i32.const 0 + get_local $1 + get_local $2 + get_local $3 + get_local $2 + get_local $3 + i32.lt_s + select + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.ge_s ) - (func $~lib/string/String.__lt (; 31 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (; 31 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (tee_local $2 - (i32.eq - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.eqz - (get_local $0) - ) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (set_local $2 - (i32.eqz - (get_local $1) - ) - ) - ) - (if - (get_local $2) - (return - (i32.const 0) - ) - ) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eqz - (tee_local $3 - (i32.load - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (i32.const 1) - ) - ) - (i32.lt_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (select - (get_local $2) - (get_local $3) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + tee_local $2 + i32.eqz + if + get_local $0 + i32.eqz + set_local $2 + end + get_local $2 + i32.eqz + if + get_local $1 + i32.eqz + set_local $2 + end + get_local $2 + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $2 + get_local $1 + i32.load + tee_local $3 + i32.eqz + if + i32.const 0 + return + end + get_local $2 + i32.eqz + if + i32.const 1 + return + end + get_local $0 + i32.const 0 + get_local $1 + get_local $2 + get_local $3 + get_local $2 + get_local $3 + i32.lt_s + select + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.lt_s ) - (func $~lib/string/String.__lte (; 32 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String.__lte (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eq - (get_local $0) - (i32.const 256) - ) - (return - (i32.const 1) - ) - ) - (if - (tee_local $1 - (i32.eqz - (get_local $0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $1 - (i32.load - (i32.const 256) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (return - (i32.eqz - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (i32.le_s - (call $~lib/internal/string/compareUnsafe - (i32.const 256) - (i32.const 0) - (get_local $0) - (select - (get_local $1) - (get_local $2) - (i32.lt_s - (get_local $1) - (get_local $2) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + i32.const 256 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.eqz + tee_local $1 + if + i32.const 0 + return + end + i32.const 256 + i32.load + set_local $1 + get_local $0 + i32.load + tee_local $2 + i32.eqz + if + get_local $1 + i32.eqz + return + end + get_local $1 + i32.eqz + if + i32.const 1 + return + end + i32.const 256 + i32.const 0 + get_local $0 + get_local $1 + get_local $2 + get_local $1 + get_local $2 + i32.lt_s + select + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.le_s ) - (func $~lib/string/String#repeat (; 33 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#repeat (; 33 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 400) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - ) - ) - (set_local $2 - (i32.gt_s - (i32.mul - (get_local $3) - (get_local $1) - ) - (i32.const 268435456) - ) - ) - ) - (if - (get_local $2) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 405) - (i32.const 6) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.eqz - (get_local $1) - ) - ) - ) - (set_local $2 - (i32.eqz - (get_local $3) - ) - ) - ) - (if - (get_local $2) - (return - (i32.const 256) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (call $~lib/internal/string/repeatUnsafe - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (i32.mul - (get_local $3) - (get_local $1) - ) - ) - ) - (i32.const 0) - (get_local $0) - (get_local $1) - ) - (get_local $2) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 400 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.const 0 + i32.lt_s + tee_local $2 + i32.eqz + if + get_local $3 + get_local $1 + i32.mul + i32.const 268435456 + i32.gt_s + set_local $2 + end + get_local $2 + if + i32.const 0 + i32.const 80 + i32.const 405 + i32.const 6 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.eqz + tee_local $2 + i32.eqz + if + get_local $3 + i32.eqz + set_local $2 + end + get_local $2 + if + i32.const 256 + return + end + get_local $1 + i32.const 1 + i32.eq + if + get_local $0 + return + end + get_local $3 + get_local $1 + i32.mul + call $~lib/internal/string/allocateUnsafe + tee_local $2 + i32.const 0 + get_local $0 + get_local $1 + call $~lib/internal/string/repeatUnsafe + get_local $2 ) - (func $~lib/internal/arraybuffer/computeSize (; 34 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - ) - ) + (func $~lib/internal/arraybuffer/computeSize (; 34 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + get_local $0 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl ) - (func $~lib/internal/arraybuffer/allocateUnsafe (; 35 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/arraybuffer/allocateUnsafe (; 35 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 808) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 808 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/memory/memory.allocate (; 36 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (i32.const 8) - ) + (func $~lib/memory/memory.allocate (; 36 ;) (type $FUNCSIG$i) (result i32) + i32.const 8 + call $~lib/allocator/arena/__memory_allocate ) - (func $~lib/internal/memory/memset (; 37 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memset (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $1) - ) - (return) - ) - (i32.store8 - (get_local $0) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $2) - (i32.const 3) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $1 - (i32.and - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 8) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 28) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 16) - ) - (i32.const 0) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i64.const 0) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $1 + i32.eqz + if + return + end + get_local $0 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + get_local $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $2 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $0 + get_local $1 + get_local $2 + i32.sub + i32.const -4 + i32.and + tee_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 8 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 12 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 8 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 16 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 20 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 24 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 28 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 24 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 20 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 16 + i32.sub + i32.const 0 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $2 + i32.add + set_local $0 + get_local $1 + get_local $2 + i32.sub + set_local $1 + loop $continue|0 + get_local $1 + i32.const 32 + i32.ge_u + if + get_local $0 + i64.const 0 + i64.store + get_local $0 + i32.const 8 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 16 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 24 + i32.add + i64.const 0 + i64.store + get_local $1 + i32.const 32 + i32.sub + set_local $1 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/array/Array#constructor (; 38 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 776) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (call $~lib/internal/arraybuffer/allocateUnsafe - (tee_local $3 - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/memory/memory.allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store - (get_local $1) - (get_local $2) - ) - (i32.store offset=4 - (get_local $1) - (get_local $0) - ) - (call $~lib/internal/memory/memset - (i32.add - (get_local $2) - (i32.const 8) - ) - (get_local $3) - ) - (get_local $1) + get_local $0 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 776 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 2 + i32.shl + tee_local $3 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $2 + call $~lib/memory/memory.allocate + tee_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + get_local $2 + i32.store + get_local $1 + get_local $0 + i32.store offset=4 + get_local $2 + i32.const 8 + i32.add + get_local $3 + call $~lib/internal/memory/memset + get_local $1 ) - (func $~lib/array/Array#__unchecked_set (; 39 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (i32.store offset=8 - (i32.load - (get_local $0) - ) - (get_local $1) - ) + (func $~lib/array/Array#__unchecked_set (; 39 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + get_local $0 + i32.load + get_local $1 + i32.store offset=8 ) - (func $~lib/internal/arraybuffer/reallocateUnsafe (; 40 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/arraybuffer/reallocateUnsafe (; 40 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_s - (get_local $1) - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (block - (if - (i32.gt_s - (get_local $1) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 808) - (i32.const 37) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/computeSize - (get_local $2) - ) - ) - (if - (i32.le_s - (get_local $1) - (i32.sub - (get_local $3) - (i32.const 8) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $1) - ) - (call $~lib/internal/memory/memset - (i32.add - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $2) - ) - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - ) - (block - (call $~lib/internal/memory/memmove - (i32.add - (tee_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (i32.const 8) - ) - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $2) - ) - (call $~lib/internal/memory/memset - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (get_local $2) - ) - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (return - (get_local $3) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 808) - (i32.const 61) - (i32.const 4) - ) - (unreachable) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (get_local $0) + get_local $1 + get_local $0 + i32.load + tee_local $2 + i32.gt_s + if + get_local $1 + i32.const 1073741816 + i32.gt_s + if + i32.const 0 + i32.const 808 + i32.const 37 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $2 + call $~lib/internal/arraybuffer/computeSize + set_local $3 + get_local $1 + get_local $3 + i32.const 8 + i32.sub + i32.le_s + if + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.sub + call $~lib/internal/memory/memset + else + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + tee_local $3 + i32.const 8 + i32.add + get_local $0 + i32.const 8 + i32.add + get_local $2 + call $~lib/internal/memory/memmove + get_local $3 + i32.const 8 + i32.add + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.sub + call $~lib/internal/memory/memset + get_local $3 + return + end + else + get_local $1 + get_local $2 + i32.lt_s + if + get_local $1 + i32.const 0 + i32.lt_s + if + i32.const 0 + i32.const 808 + i32.const 61 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.store + end + end + get_local $0 ) - (func $~lib/array/Array#push (; 41 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 41 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $4 - (i32.add - (tee_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (if - (i32.ge_u - (get_local $3) - (i32.shr_u - (i32.load - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (if - (i32.ge_u - (get_local $3) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 776) - (i32.const 174) - (i32.const 42) - ) - (unreachable) - ) - ) - (set_local $2 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $2) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $2) - ) - ) - ) - (i32.store offset=4 - (get_local $0) - (get_local $4) - ) - (i32.store offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - (get_local $1) - ) - (get_local $4) + get_local $0 + i32.load offset=4 + tee_local $3 + i32.const 1 + i32.add + set_local $4 + get_local $3 + get_local $0 + i32.load + tee_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.ge_u + if + get_local $3 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 776 + i32.const 174 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $2 + get_local $4 + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $2 + get_local $0 + get_local $2 + i32.store + end + get_local $0 + get_local $4 + i32.store offset=4 + get_local $2 + get_local $3 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store offset=8 + get_local $4 ) - (func $~lib/string/String#split (; 42 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#split (; 42 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4951,1016 +3535,729 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 417) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (call $~lib/array/Array#constructor - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/array/Array#__unchecked_set - (tee_local $5 - (call $~lib/array/Array#constructor - (i32.const 1) - ) - ) - (get_local $0) - ) - (return - (get_local $5) - ) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $8 - (i32.load - (get_local $1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (set_local $2 - (i32.const 2147483647) - ) - ) - (if - (get_local $8) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 888) - ) - ) - (block - (if - (i32.eqz - (get_local $3) - ) - (return - (call $~lib/array/Array#constructor - (i32.const 0) - ) - ) - ) - (set_local $7 - (i32.load - (tee_local $5 - (call $~lib/array/Array#constructor - (tee_local $3 - (select - (tee_local $5 - (get_local $3) - ) - (tee_local $7 - (get_local $2) - ) - (i32.lt_s - (get_local $3) - (get_local $2) - ) - ) - ) - ) - ) - ) - ) - (block $break|0 - (set_local $2 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (i32.store16 offset=4 - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (i32.const 1) - ) - ) - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $7) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (get_local $1) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (return - (get_local $5) - ) - ) - ) - (set_local $6 - (call $~lib/array/Array#constructor - (i32.const 0) - ) - ) - (loop $continue|1 - (if - (i32.ne - (tee_local $10 - (call $~lib/string/String#indexOf - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (i32.const -1) - ) - (block - (if - (i32.gt_s - (tee_local $7 - (i32.sub - (get_local $10) - (get_local $4) - ) - ) - (i32.const 0) - ) - (block - (call $~lib/internal/string/copyUnsafe - (tee_local $5 - (call $~lib/internal/string/allocateUnsafe - (get_local $7) - ) - ) - (i32.const 0) - (get_local $0) - (get_local $4) - (get_local $7) - ) - (drop - (call $~lib/array/Array#push - (get_local $6) - (get_local $5) - ) - ) - ) - (drop - (call $~lib/array/Array#push - (get_local $6) - (i32.const 256) - ) - ) - ) - (if - (i32.eq - (tee_local $9 - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - (get_local $2) - ) - (return - (get_local $6) - ) - ) - (set_local $4 - (i32.add - (get_local $10) - (get_local $8) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (block - (call $~lib/array/Array#__unchecked_set - (tee_local $2 - (call $~lib/array/Array#constructor - (i32.const 1) - ) - ) - (get_local $0) - ) - (return - (get_local $2) - ) - ) - ) - (if - (i32.gt_s - (tee_local $1 - (i32.sub - (get_local $3) - (get_local $4) - ) - ) - (i32.const 0) - ) - (block - (call $~lib/internal/string/copyUnsafe - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $1) - ) - ) - (i32.const 0) - (get_local $0) - (get_local $4) - (get_local $1) - ) - (drop - (call $~lib/array/Array#push - (get_local $6) - (get_local $2) - ) - ) - ) - (drop - (call $~lib/array/Array#push - (get_local $6) - (i32.const 256) - ) - ) - ) - (get_local $6) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 417 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $2 + i32.eqz + if + i32.const 0 + call $~lib/array/Array#constructor + return + end + get_local $1 + i32.eqz + if + i32.const 1 + call $~lib/array/Array#constructor + tee_local $5 + get_local $0 + call $~lib/array/Array#__unchecked_set + get_local $5 + return + end + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.load + set_local $8 + get_local $2 + i32.const 0 + i32.lt_s + if + i32.const 2147483647 + set_local $2 + end + get_local $8 + if + get_local $3 + i32.eqz + if + i32.const 888 + return + end + else + get_local $3 + i32.eqz + if + i32.const 0 + call $~lib/array/Array#constructor + return + end + get_local $3 + tee_local $5 + get_local $2 + tee_local $7 + get_local $3 + get_local $2 + i32.lt_s + select + tee_local $3 + call $~lib/array/Array#constructor + tee_local $5 + i32.load + set_local $7 + block $break|0 + i32.const 0 + set_local $2 + loop $repeat|0 + get_local $2 + get_local $3 + i32.ge_s + br_if $break|0 + i32.const 1 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + i32.store16 offset=4 + get_local $7 + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store offset=8 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $5 + return + end + i32.const 0 + call $~lib/array/Array#constructor + set_local $6 + loop $continue|1 + get_local $0 + get_local $1 + get_local $4 + call $~lib/string/String#indexOf + tee_local $10 + i32.const -1 + i32.ne + if + get_local $10 + get_local $4 + i32.sub + tee_local $7 + i32.const 0 + i32.gt_s + if + get_local $7 + call $~lib/internal/string/allocateUnsafe + tee_local $5 + i32.const 0 + get_local $0 + get_local $4 + get_local $7 + call $~lib/internal/string/copyUnsafe + get_local $6 + get_local $5 + call $~lib/array/Array#push + drop + else + get_local $6 + i32.const 256 + call $~lib/array/Array#push + drop + end + get_local $9 + i32.const 1 + i32.add + tee_local $9 + get_local $2 + i32.eq + if + get_local $6 + return + end + get_local $10 + get_local $8 + i32.add + set_local $4 + br $continue|1 + end + end + get_local $4 + i32.eqz + if + i32.const 1 + call $~lib/array/Array#constructor + tee_local $2 + get_local $0 + call $~lib/array/Array#__unchecked_set + get_local $2 + return + end + get_local $3 + get_local $4 + i32.sub + tee_local $1 + i32.const 0 + i32.gt_s + if + get_local $1 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + i32.const 0 + get_local $0 + get_local $4 + get_local $1 + call $~lib/internal/string/copyUnsafe + get_local $6 + get_local $2 + call $~lib/array/Array#push + drop + else + get_local $6 + i32.const 256 + call $~lib/array/Array#push + drop + end + get_local $6 ) - (func $~lib/string/String#split|trampoline (; 43 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#split|trampoline (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 0) - ) - ) - (set_local $2 - (i32.const 2147483647) - ) - ) - (call $~lib/string/String#split - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $1 + end + i32.const 2147483647 + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/string/String#split ) - (func $~lib/array/Array#__get (; 44 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (tee_local $0 - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - (unreachable) - ) - ) + (func $~lib/array/Array#__get (; 44 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $1 + get_local $0 + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 ) - (func $~lib/internal/number/decimalCount32 (; 45 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (if (result i32) - (i32.lt_u - (get_local $0) - (i32.const 100000) - ) - (if (result i32) - (i32.lt_u - (get_local $0) - (i32.const 100) - ) - (select - (i32.const 1) - (i32.const 2) - (i32.lt_u - (get_local $0) - (i32.const 10) - ) - ) - (select - (i32.const 3) - (select - (i32.const 4) - (i32.const 5) - (i32.lt_u - (get_local $0) - (i32.const 10000) - ) - ) - (i32.lt_u - (get_local $0) - (i32.const 1000) - ) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $0) - (i32.const 10000000) - ) - (select - (i32.const 6) - (i32.const 7) - (i32.lt_u - (get_local $0) - (i32.const 1000000) - ) - ) - (select - (i32.const 8) - (select - (i32.const 9) - (i32.const 10) - (i32.lt_u - (get_local $0) - (i32.const 1000000000) - ) - ) - (i32.lt_u - (get_local $0) - (i32.const 100000000) - ) - ) - ) - ) + (func $~lib/internal/number/decimalCount32 (; 45 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 100000 + i32.lt_u + if (result i32) + get_local $0 + i32.const 100 + i32.lt_u + if (result i32) + i32.const 1 + i32.const 2 + get_local $0 + i32.const 10 + i32.lt_u + select + else + i32.const 3 + i32.const 4 + i32.const 5 + get_local $0 + i32.const 10000 + i32.lt_u + select + get_local $0 + i32.const 1000 + i32.lt_u + select + end + else + get_local $0 + i32.const 10000000 + i32.lt_u + if (result i32) + i32.const 6 + i32.const 7 + get_local $0 + i32.const 1000000 + i32.lt_u + select + else + i32.const 8 + i32.const 9 + i32.const 10 + get_local $0 + i32.const 1000000000 + i32.lt_u + select + get_local $0 + i32.const 100000000 + i32.lt_u + select + end + end ) - (func $~lib/internal/number/utoa32_lut (; 46 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/number/utoa32_lut (; 46 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load - (i32.const 1520) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 10000) - ) - (block - (set_local $4 - (i32.rem_u - (get_local $1) - (i32.const 10000) - ) - ) - (set_local $1 - (i32.div_u - (get_local $1) - (i32.const 10000) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i32.const 1) - ) - ) - (i64.or - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (i32.div_u - (get_local $4) - (i32.const 100) - ) - (i32.const 2) - ) - ) - ) - (i64.shl - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (i32.rem_u - (get_local $4) - (i32.const 100) - ) - (i32.const 2) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 100) - ) - (block - (set_local $4 - (i32.rem_u - (get_local $1) - (i32.const 100) - ) - ) - (set_local $1 - (i32.div_u - (get_local $1) - (i32.const 100) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (i32.const 1) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 10) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $2) - (i32.const 2) - ) - (i32.const 1) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $2) - (i32.const 1) - ) - (i32.const 1) - ) - ) - (i32.add - (get_local $1) - (i32.const 48) - ) - ) - ) + i32.const 1520 + i32.load + set_local $3 + loop $continue|0 + get_local $1 + i32.const 10000 + i32.ge_u + if + get_local $1 + i32.const 10000 + i32.rem_u + set_local $4 + get_local $1 + i32.const 10000 + i32.div_u + set_local $1 + get_local $0 + get_local $2 + i32.const 4 + i32.sub + tee_local $2 + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + get_local $3 + get_local $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + br $continue|0 + end + end + get_local $1 + i32.const 100 + i32.ge_u + if + get_local $1 + i32.const 100 + i32.rem_u + set_local $4 + get_local $1 + i32.const 100 + i32.div_u + set_local $1 + get_local $0 + get_local $2 + i32.const 2 + i32.sub + tee_local $2 + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + i32.store offset=4 + end + get_local $1 + i32.const 10 + i32.ge_u + if + get_local $0 + get_local $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + i32.store offset=4 + else + get_local $0 + get_local $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + get_local $1 + i32.const 48 + i32.add + i32.store16 offset=4 + end ) - (func $~lib/internal/number/itoa32 (; 47 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/itoa32 (; 47 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (get_local $0) - ) - (return - (i32.const 480) - ) - ) - (if - (tee_local $2 - (i32.lt_s - (get_local $0) - (i32.const 0) - ) - ) - (set_local $0 - (i32.sub - (i32.const 0) - (get_local $0) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (tee_local $3 - (i32.add - (tee_local $1 - (call $~lib/internal/number/decimalCount32 - (get_local $0) - ) - ) - (get_local $2) - ) - ) - ) - ) - (get_local $0) - (get_local $3) - ) - (if - (get_local $2) - (i32.store16 offset=4 - (get_local $1) - (i32.const 45) - ) - ) - (get_local $1) + get_local $0 + i32.eqz + if + i32.const 480 + return + end + get_local $0 + i32.const 0 + i32.lt_s + tee_local $2 + if + i32.const 0 + get_local $0 + i32.sub + set_local $0 + end + get_local $0 + call $~lib/internal/number/decimalCount32 + tee_local $1 + get_local $2 + i32.add + tee_local $3 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $0 + get_local $3 + call $~lib/internal/number/utoa32_lut + get_local $2 + if + get_local $1 + i32.const 45 + i32.store16 offset=4 + end + get_local $1 ) - (func $~lib/internal/number/utoa32 (; 48 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/utoa32 (; 48 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $0) - ) - (return - (i32.const 480) - ) - ) - (call $~lib/internal/number/utoa32_lut - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $1 - (call $~lib/internal/number/decimalCount32 - (get_local $0) - ) - ) - ) - ) - (get_local $0) - (get_local $1) - ) - (get_local $2) + get_local $0 + i32.eqz + if + i32.const 480 + return + end + get_local $0 + call $~lib/internal/number/decimalCount32 + tee_local $1 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + get_local $0 + get_local $1 + call $~lib/internal/number/utoa32_lut + get_local $2 ) - (func $~lib/internal/number/decimalCount64 (; 49 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) - (if (result i32) - (i64.lt_u - (get_local $0) - (i64.const 1000000000000000) - ) - (if (result i32) - (i64.lt_u - (get_local $0) - (i64.const 1000000000000) - ) - (select - (i32.const 11) - (i32.const 12) - (i64.lt_u - (get_local $0) - (i64.const 100000000000) - ) - ) - (select - (i32.const 13) - (select - (i32.const 14) - (i32.const 15) - (i64.lt_u - (get_local $0) - (i64.const 100000000000000) - ) - ) - (i64.lt_u - (get_local $0) - (i64.const 10000000000000) - ) - ) - ) - (if (result i32) - (i64.lt_u - (get_local $0) - (i64.const 100000000000000000) - ) - (select - (i32.const 16) - (i32.const 17) - (i64.lt_u - (get_local $0) - (i64.const 10000000000000000) - ) - ) - (select - (i32.const 18) - (select - (i32.const 19) - (i32.const 20) - (i64.lt_u - (get_local $0) - (i64.const -8446744073709551616) - ) - ) - (i64.lt_u - (get_local $0) - (i64.const 1000000000000000000) - ) - ) - ) - ) + (func $~lib/internal/number/decimalCount64 (; 49 ;) (type $Ii) (param $0 i64) (result i32) + get_local $0 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + get_local $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + i32.const 11 + i32.const 12 + get_local $0 + i64.const 100000000000 + i64.lt_u + select + else + i32.const 13 + i32.const 14 + i32.const 15 + get_local $0 + i64.const 100000000000000 + i64.lt_u + select + get_local $0 + i64.const 10000000000000 + i64.lt_u + select + end + else + get_local $0 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + i32.const 16 + i32.const 17 + get_local $0 + i64.const 10000000000000000 + i64.lt_u + select + else + i32.const 18 + i32.const 19 + i32.const 20 + get_local $0 + i64.const -8446744073709551616 + i64.lt_u + select + get_local $0 + i64.const 1000000000000000000 + i64.lt_u + select + end + end ) - (func $~lib/internal/number/utoa64_lut (; 50 ;) (; has Stack IR ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/internal/number/utoa64_lut (; 50 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (i32.load - (i32.const 2312) - ) - ) - (loop $continue|0 - (if - (i64.ge_u - (get_local $1) - (i64.const 100000000) - ) - (block - (set_local $6 - (i32.div_u - (tee_local $5 - (i32.div_u - (tee_local $4 - (i32.wrap/i64 - (i64.sub - (get_local $1) - (i64.mul - (tee_local $1 - (i64.div_u - (get_local $1) - (i64.const 100000000) - ) - ) - (i64.const 100000000) - ) - ) - ) - ) - (i32.const 10000) - ) - ) - (i32.const 100) - ) - ) - (set_local $5 - (i32.rem_u - (get_local $5) - (i32.const 100) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i32.const 1) - ) - ) - (i64.or - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (i32.div_u - (tee_local $4 - (i32.rem_u - (get_local $4) - (i32.const 10000) - ) - ) - (i32.const 100) - ) - (i32.const 2) - ) - ) - ) - (i64.shl - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (i32.rem_u - (get_local $4) - (i32.const 100) - ) - (i32.const 2) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i32.const 1) - ) - ) - (i64.or - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - (i64.shl - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - (i64.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (i32.wrap/i64 - (get_local $1) - ) - (get_local $2) - ) + i32.const 2312 + i32.load + set_local $3 + loop $continue|0 + get_local $1 + i64.const 100000000 + i64.ge_u + if + get_local $1 + get_local $1 + i64.const 100000000 + i64.div_u + tee_local $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap/i64 + tee_local $4 + i32.const 10000 + i32.div_u + tee_local $5 + i32.const 100 + i32.div_u + set_local $6 + get_local $5 + i32.const 100 + i32.rem_u + set_local $5 + get_local $0 + get_local $2 + i32.const 4 + i32.sub + tee_local $2 + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $4 + i32.const 10000 + i32.rem_u + tee_local $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + get_local $3 + get_local $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + get_local $0 + get_local $2 + i32.const 4 + i32.sub + tee_local $2 + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + get_local $3 + get_local $5 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + br $continue|0 + end + end + get_local $0 + get_local $1 + i32.wrap/i64 + get_local $2 + call $~lib/internal/number/utoa32_lut ) - (func $~lib/internal/number/utoa64 (; 51 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/utoa64 (; 51 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i64.eqz - (get_local $0) - ) - (return - (i32.const 480) - ) - ) - (if - (i64.le_u - (get_local $0) - (i64.const 4294967295) - ) - (call $~lib/internal/number/utoa32_lut - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $1 - (call $~lib/internal/number/decimalCount32 - (tee_local $3 - (i32.wrap/i64 - (get_local $0) - ) - ) - ) - ) - ) - ) - (get_local $3) - (get_local $1) - ) - (call $~lib/internal/number/utoa64_lut - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (tee_local $1 - (call $~lib/internal/number/decimalCount64 - (get_local $0) - ) - ) - ) - ) - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) + get_local $0 + i64.eqz + if + i32.const 480 + return + end + get_local $0 + i64.const 4294967295 + i64.le_u + if + get_local $0 + i32.wrap/i64 + tee_local $3 + call $~lib/internal/number/decimalCount32 + tee_local $1 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + get_local $3 + get_local $1 + call $~lib/internal/number/utoa32_lut + else + get_local $0 + call $~lib/internal/number/decimalCount64 + tee_local $1 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + get_local $0 + get_local $1 + call $~lib/internal/number/utoa64_lut + end + get_local $2 ) - (func $~lib/internal/number/itoa64 (; 52 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/itoa64 (; 52 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i64.eqz - (get_local $0) - ) - (return - (i32.const 480) - ) - ) - (if - (tee_local $2 - (i64.lt_s - (get_local $0) - (i64.const 0) - ) - ) - (set_local $0 - (i64.sub - (i64.const 0) - (get_local $0) - ) - ) - ) - (if - (i64.le_u - (get_local $0) - (i64.const 4294967295) - ) - (call $~lib/internal/number/utoa32_lut - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (tee_local $3 - (i32.add - (tee_local $1 - (call $~lib/internal/number/decimalCount32 - (tee_local $4 - (i32.wrap/i64 - (get_local $0) - ) - ) - ) - ) - (get_local $2) - ) - ) - ) - ) - (get_local $4) - (get_local $3) - ) - (call $~lib/internal/number/utoa64_lut - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (tee_local $3 - (i32.add - (tee_local $1 - (call $~lib/internal/number/decimalCount64 - (get_local $0) - ) - ) - (get_local $2) - ) - ) - ) - ) - (get_local $0) - (get_local $3) - ) - ) - (if - (get_local $2) - (i32.store16 offset=4 - (get_local $1) - (i32.const 45) - ) - ) - (get_local $1) + get_local $0 + i64.eqz + if + i32.const 480 + return + end + get_local $0 + i64.const 0 + i64.lt_s + tee_local $2 + if + i64.const 0 + get_local $0 + i64.sub + set_local $0 + end + get_local $0 + i64.const 4294967295 + i64.le_u + if + get_local $0 + i32.wrap/i64 + tee_local $4 + call $~lib/internal/number/decimalCount32 + tee_local $1 + get_local $2 + i32.add + tee_local $3 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $4 + get_local $3 + call $~lib/internal/number/utoa32_lut + else + get_local $0 + call $~lib/internal/number/decimalCount64 + tee_local $1 + get_local $2 + i32.add + tee_local $3 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $0 + get_local $3 + call $~lib/internal/number/utoa64_lut + end + get_local $2 + if + get_local $1 + i32.const 45 + i32.store16 offset=4 + end + get_local $1 ) - (func $~lib/builtins/isFinite (; 53 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (f64.eq - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) + (func $~lib/builtins/isFinite (; 53 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.eq ) - (func $~lib/builtins/isNaN (; 54 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) - (f64.ne - (get_local $0) - (get_local $0) - ) + (func $~lib/builtins/isNaN (; 54 ;) (type $Fi) (param $0 f64) (result i32) + get_local $0 + get_local $0 + f64.ne ) - (func $~lib/internal/number/genDigits (; 55 ;) (; has Stack IR ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/internal/number/genDigits (; 55 ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i32) @@ -5969,985 +4266,686 @@ (local $12 i32) (local $13 i64) (local $14 i64) - (set_local $8 - (i64.sub - (get_local $3) - (get_local $1) - ) - ) - (set_local $1 - (i64.and - (get_local $3) - (tee_local $14 - (i64.sub - (tee_local $10 - (i64.shl - (i64.const 1) - (tee_local $13 - (i64.extend_s/i32 - (tee_local $11 - (i32.sub - (i32.const 0) - (get_local $4) - ) - ) - ) - ) - ) - ) - (i64.const 1) - ) - ) - ) - ) - (set_local $9 - (call $~lib/internal/number/decimalCount32 - (tee_local $7 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (get_local $13) - ) - ) - ) - ) - ) - (set_local $12 - (i32.load - (i32.const 4328) - ) - ) - (loop $continue|0 - (if - (i32.gt_s - (get_local $9) - (i32.const 0) - ) - (block - (block $break|1 - (block $case10|1 - (block $case9|1 - (block $case8|1 - (block $case7|1 - (block $case6|1 - (block $case5|1 - (block $case4|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (if - (i32.ne - (tee_local $2 - (get_local $9) - ) - (i32.const 10) - ) - (block - (block $tablify|0 - (br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $tablify|0 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $case10|1) - ) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 1000000000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 1000000000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 100000000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 100000000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 10000000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 10000000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 1000000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 1000000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 100000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 100000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 10000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 10000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 1000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 1000) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 100) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 100) - ) - ) - (br $break|1) - ) - (set_local $4 - (i32.div_u - (get_local $7) - (i32.const 10) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $7) - (i32.const 10) - ) - ) - (br $break|1) - ) - (set_local $4 - (get_local $7) - ) - (set_local $7 - (i32.const 0) - ) - (br $break|1) - ) - (set_local $4 - (i32.const 0) - ) - ) - (if - (i32.or - (get_local $4) - (get_local $6) - ) - (block - (set_local $6 - (i32.add - (tee_local $2 - (get_local $6) - ) - (i32.const 1) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (i32.add - (i32.and - (get_local $4) - (i32.const 65535) - ) - (i32.const 48) - ) - ) - ) - ) - (set_local $9 - (i32.sub - (get_local $9) - (i32.const 1) - ) - ) - (if - (i64.le_u - (tee_local $3 - (i64.add - (i64.shl - (i64.extend_u/i32 - (get_local $7) - ) - (i64.extend_s/i32 - (get_local $11) - ) - ) - (get_local $1) - ) - ) - (get_local $5) - ) - (block - (set_global $~lib/internal/number/_K - (i32.add - (get_global $~lib/internal/number/_K) - (get_local $9) - ) - ) - (set_local $1 - (i64.shl - (i64.load32_u offset=8 - (i32.add - (get_local $12) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - ) - (i64.extend_s/i32 - (get_local $11) - ) - ) - ) - (set_local $7 - (i32.load16_u offset=4 - (tee_local $2 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $6) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (loop $continue|2 - (if - (tee_local $0 - (i64.lt_u - (get_local $3) - (get_local $8) - ) - ) - (set_local $0 - (i64.ge_u - (i64.sub - (get_local $5) - (get_local $3) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (if - (i32.eqz - (tee_local $0 - (i64.lt_u - (i64.add - (get_local $3) - (get_local $1) - ) - (get_local $8) - ) - ) - ) - (set_local $0 - (i64.gt_u - (i64.sub - (get_local $8) - (get_local $3) - ) - (i64.sub - (i64.add - (get_local $3) - (get_local $1) - ) - (get_local $8) - ) - ) - ) - ) - ) - (if - (get_local $0) - (block - (set_local $7 - (i32.sub - (get_local $7) - (i32.const 1) - ) - ) - (set_local $3 - (i64.add - (get_local $3) - (get_local $1) - ) - ) - (br $continue|2) - ) - ) - ) - (i32.store16 offset=4 - (get_local $2) - (get_local $7) - ) - (return - (get_local $6) - ) - ) - ) - (br $continue|0) - ) - ) - ) - (loop $continue|3 (result i32) - (set_local $5 - (i64.mul - (get_local $5) - (i64.const 10) - ) - ) - (if - (i64.ne - (i64.or - (tee_local $3 - (i64.shr_u - (tee_local $1 - (i64.mul - (get_local $1) - (i64.const 10) - ) - ) - (i64.extend_s/i32 - (get_local $11) - ) - ) - ) - (i64.extend_s/i32 - (get_local $6) - ) - ) - (i64.const 0) - ) - (block - (set_local $6 - (i32.add - (tee_local $4 - (get_local $6) - ) - (i32.const 1) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (i32.add - (i32.and - (i32.wrap/i64 - (get_local $3) - ) - (i32.const 65535) - ) - (i32.const 48) - ) - ) - ) - ) - (set_local $9 - (i32.sub - (get_local $9) - (i32.const 1) - ) - ) - (if (result i32) - (i64.lt_u - (tee_local $1 - (i64.and - (get_local $1) - (get_local $14) - ) - ) - (get_local $5) - ) - (block (result i32) - (set_global $~lib/internal/number/_K - (i32.add - (get_global $~lib/internal/number/_K) - (get_local $9) - ) - ) - (set_local $8 - (i64.mul - (get_local $8) - (i64.load32_u offset=8 - (i32.add - (get_local $12) - (i32.shl - (i32.sub - (i32.const 0) - (get_local $9) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $7 - (i32.load16_u offset=4 - (tee_local $4 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $6) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (loop $continue|4 - (if - (tee_local $2 - (i64.lt_u - (get_local $1) - (get_local $8) - ) - ) - (set_local $2 - (i64.ge_u - (i64.sub - (get_local $5) - (get_local $1) - ) - (get_local $10) - ) - ) - ) - (if - (get_local $2) - (if - (i32.eqz - (tee_local $2 - (i64.lt_u - (i64.add - (get_local $1) - (get_local $10) - ) - (get_local $8) - ) - ) - ) - (set_local $2 - (i64.gt_u - (i64.sub - (get_local $8) - (get_local $1) - ) - (i64.sub - (i64.add - (get_local $1) - (get_local $10) - ) - (get_local $8) - ) - ) - ) - ) - ) - (if - (get_local $2) - (block - (set_local $7 - (i32.sub - (get_local $7) - (i32.const 1) - ) - ) - (set_local $1 - (i64.add - (get_local $1) - (get_local $10) - ) - ) - (br $continue|4) - ) - ) - ) - (i32.store16 offset=4 - (get_local $4) - (get_local $7) - ) - (get_local $6) - ) - (br $continue|3) - ) - ) + get_local $3 + get_local $1 + i64.sub + set_local $8 + get_local $3 + i64.const 1 + i32.const 0 + get_local $4 + i32.sub + tee_local $11 + i64.extend_s/i32 + tee_local $13 + i64.shl + tee_local $10 + i64.const 1 + i64.sub + tee_local $14 + i64.and + set_local $1 + get_local $3 + get_local $13 + i64.shr_u + i32.wrap/i64 + tee_local $7 + call $~lib/internal/number/decimalCount32 + set_local $9 + i32.const 4328 + i32.load + set_local $12 + loop $continue|0 + get_local $9 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + get_local $9 + tee_local $2 + i32.const 10 + i32.ne + if + block $tablify|0 + get_local $2 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $tablify|0 + end + br $case10|1 + end + get_local $7 + i32.const 1000000000 + i32.div_u + set_local $4 + get_local $7 + i32.const 1000000000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 100000000 + i32.div_u + set_local $4 + get_local $7 + i32.const 100000000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 10000000 + i32.div_u + set_local $4 + get_local $7 + i32.const 10000000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 1000000 + i32.div_u + set_local $4 + get_local $7 + i32.const 1000000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 100000 + i32.div_u + set_local $4 + get_local $7 + i32.const 100000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 10000 + i32.div_u + set_local $4 + get_local $7 + i32.const 10000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 1000 + i32.div_u + set_local $4 + get_local $7 + i32.const 1000 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 100 + i32.div_u + set_local $4 + get_local $7 + i32.const 100 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + i32.const 10 + i32.div_u + set_local $4 + get_local $7 + i32.const 10 + i32.rem_u + set_local $7 + br $break|1 + end + get_local $7 + set_local $4 + i32.const 0 + set_local $7 + br $break|1 + end + i32.const 0 + set_local $4 + end + get_local $4 + get_local $6 + i32.or + if + get_local $6 + tee_local $2 + i32.const 1 + i32.add + set_local $6 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $4 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 offset=4 + end + get_local $9 + i32.const 1 + i32.sub + set_local $9 + get_local $7 + i64.extend_u/i32 + get_local $11 + i64.extend_s/i32 + i64.shl + get_local $1 + i64.add + tee_local $3 + get_local $5 + i64.le_u + if + get_global $~lib/internal/number/_K + get_local $9 + i32.add + set_global $~lib/internal/number/_K + get_local $12 + get_local $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + get_local $11 + i64.extend_s/i32 + i64.shl + set_local $1 + get_local $0 + get_local $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + tee_local $2 + i32.load16_u offset=4 + set_local $7 + loop $continue|2 + get_local $3 + get_local $8 + i64.lt_u + tee_local $0 + if + get_local $5 + get_local $3 + i64.sub + get_local $1 + i64.ge_u + set_local $0 + end + get_local $0 + if + get_local $3 + get_local $1 + i64.add + get_local $8 + i64.lt_u + tee_local $0 + i32.eqz + if + get_local $8 + get_local $3 + i64.sub + get_local $3 + get_local $1 + i64.add + get_local $8 + i64.sub + i64.gt_u + set_local $0 + end + end + get_local $0 + if + get_local $7 + i32.const 1 + i32.sub + set_local $7 + get_local $3 + get_local $1 + i64.add + set_local $3 + br $continue|2 + end + end + get_local $2 + get_local $7 + i32.store16 offset=4 + get_local $6 + return + end + br $continue|0 + end + end + loop $continue|3 (result i32) + get_local $5 + i64.const 10 + i64.mul + set_local $5 + get_local $1 + i64.const 10 + i64.mul + tee_local $1 + get_local $11 + i64.extend_s/i32 + i64.shr_u + tee_local $3 + get_local $6 + i64.extend_s/i32 + i64.or + i64.const 0 + i64.ne + if + get_local $6 + tee_local $4 + i32.const 1 + i32.add + set_local $6 + get_local $0 + get_local $4 + i32.const 1 + i32.shl + i32.add + get_local $3 + i32.wrap/i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 offset=4 + end + get_local $9 + i32.const 1 + i32.sub + set_local $9 + get_local $1 + get_local $14 + i64.and + tee_local $1 + get_local $5 + i64.lt_u + if (result i32) + get_global $~lib/internal/number/_K + get_local $9 + i32.add + set_global $~lib/internal/number/_K + get_local $8 + get_local $12 + i32.const 0 + get_local $9 + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + i64.mul + set_local $8 + get_local $0 + get_local $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + tee_local $4 + i32.load16_u offset=4 + set_local $7 + loop $continue|4 + get_local $1 + get_local $8 + i64.lt_u + tee_local $2 + if + get_local $5 + get_local $1 + i64.sub + get_local $10 + i64.ge_u + set_local $2 + end + get_local $2 + if + get_local $1 + get_local $10 + i64.add + get_local $8 + i64.lt_u + tee_local $2 + i32.eqz + if + get_local $8 + get_local $1 + i64.sub + get_local $1 + get_local $10 + i64.add + get_local $8 + i64.sub + i64.gt_u + set_local $2 + end + end + get_local $2 + if + get_local $7 + i32.const 1 + i32.sub + set_local $7 + get_local $1 + get_local $10 + i64.add + set_local $1 + br $continue|4 + end + end + get_local $4 + get_local $7 + i32.store16 offset=4 + get_local $6 + else + br $continue|3 + end + end ) - (func $~lib/internal/number/prettify (; 56 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/number/prettify (; 56 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 3145774) - ) - (return - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (tee_local $4 - (i32.le_s - (get_local $1) - (tee_local $3 - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (set_local $4 - (i32.le_s - (get_local $3) - (i32.const 21) - ) - ) - ) - (if (result i32) - (get_local $4) - (block (result i32) - (block $break|0 - (set_local $4 - (get_local $1) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $4) - (get_local $3) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (i32.const 48) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 3145774) - ) - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - (block (result i32) - (if - (tee_local $4 - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - ) - (set_local $4 - (i32.le_s - (get_local $3) - (i32.const 21) - ) - ) - ) - (if (result i32) - (get_local $4) - (block (result i32) - (call $~lib/internal/memory/memmove - (i32.add - (tee_local $4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - (i32.const 6) - ) - (i32.add - (get_local $4) - (i32.const 4) - ) - (i32.shl - (i32.sub - (i32.const 0) - (get_local $2) - ) - (i32.const 1) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 46) - ) - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (block (result i32) - (if - (tee_local $4 - (i32.lt_s - (i32.const -6) - (get_local $3) - ) - ) - (set_local $4 - (i32.le_s - (get_local $3) - (i32.const 0) - ) - ) - ) - (if (result i32) - (get_local $4) - (block (result i32) - (call $~lib/internal/memory/memmove - (i32.add - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.shl - (tee_local $4 - (i32.sub - (i32.const 2) - (get_local $3) - ) - ) - (i32.const 1) - ) - ) - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 3014704) - ) - (block $break|1 - (set_local $3 - (i32.const 2) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.ge_s - (get_local $3) - (get_local $4) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 48) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (i32.add - (get_local $1) - (get_local $4) - ) - ) - (if (result i32) - (i32.eq - (get_local $1) - (i32.const 1) - ) - (block (result i32) - (i32.store16 offset=6 - (get_local $0) - (i32.const 101) - ) - (set_local $4 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (if - (tee_local $0 - (i32.lt_s - (tee_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 0) - ) - ) - (set_local $3 - (i32.sub - (i32.const 0) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $3) - ) - (i32.const 1) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $4) - (get_local $3) - (get_local $2) - ) - (i32.store16 offset=4 - (get_local $4) - (select - (i32.const 45) - (i32.const 43) - (get_local $0) - ) - ) - (i32.add - (get_local $2) - (i32.const 2) - ) - ) - (block (result i32) - (call $~lib/internal/memory/memmove - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.add - (get_local $0) - (i32.const 6) - ) - (i32.sub - (tee_local $2 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - ) - (i32.store16 offset=6 - (get_local $0) - (i32.const 46) - ) - (i32.store16 offset=6 - (tee_local $0 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 101) - ) - (set_local $4 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (if - (tee_local $0 - (i32.lt_s - (tee_local $3 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (i32.const 0) - ) - ) - (set_local $3 - (i32.sub - (i32.const 0) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $3) - ) - (i32.const 1) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $4) - (get_local $3) - (get_local $2) - ) - (i32.store16 offset=4 - (get_local $4) - (select - (i32.const 45) - (i32.const 43) - (get_local $0) - ) - ) - (i32.add - (i32.add - (get_local $1) - (get_local $2) - ) - (i32.const 2) - ) - ) - ) - ) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store offset=4 + get_local $1 + i32.const 2 + i32.add + return + end + get_local $1 + get_local $1 + get_local $2 + i32.add + tee_local $3 + i32.le_s + tee_local $4 + if + get_local $3 + i32.const 21 + i32.le_s + set_local $4 + end + get_local $4 + if (result i32) + block $break|0 + get_local $1 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $4 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 offset=4 + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store offset=4 + get_local $3 + i32.const 2 + i32.add + else + get_local $3 + i32.const 0 + i32.gt_s + tee_local $4 + if + get_local $3 + i32.const 21 + i32.le_s + set_local $4 + end + get_local $4 + if (result i32) + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + tee_local $4 + i32.const 6 + i32.add + get_local $4 + i32.const 4 + i32.add + i32.const 0 + get_local $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/internal/memory/memmove + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.store16 offset=4 + get_local $1 + i32.const 1 + i32.add + else + i32.const -6 + get_local $3 + i32.lt_s + tee_local $4 + if + get_local $3 + i32.const 0 + i32.le_s + set_local $4 + end + get_local $4 + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.const 2 + get_local $3 + i32.sub + tee_local $4 + i32.const 1 + i32.shl + i32.add + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 1 + i32.shl + call $~lib/internal/memory/memmove + get_local $0 + i32.const 3014704 + i32.store offset=4 + block $break|1 + i32.const 2 + set_local $3 + loop $repeat|1 + get_local $3 + get_local $4 + i32.ge_s + br_if $break|1 + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 offset=4 + get_local $3 + i32.const 1 + i32.add + set_local $3 + br $repeat|1 + unreachable + end + unreachable + end + get_local $1 + get_local $4 + i32.add + else + get_local $1 + i32.const 1 + i32.eq + if (result i32) + get_local $0 + i32.const 101 + i32.store16 offset=6 + get_local $0 + i32.const 4 + i32.add + set_local $4 + get_local $3 + i32.const 1 + i32.sub + tee_local $3 + i32.const 0 + i32.lt_s + tee_local $0 + if + i32.const 0 + get_local $3 + i32.sub + set_local $3 + end + get_local $3 + call $~lib/internal/number/decimalCount32 + i32.const 1 + i32.add + set_local $2 + get_local $4 + get_local $3 + get_local $2 + call $~lib/internal/number/utoa32_lut + get_local $4 + i32.const 45 + i32.const 43 + get_local $0 + select + i32.store16 offset=4 + get_local $2 + i32.const 2 + i32.add + else + get_local $0 + i32.const 8 + i32.add + get_local $0 + i32.const 6 + i32.add + get_local $1 + i32.const 1 + i32.shl + tee_local $2 + i32.const 2 + i32.sub + call $~lib/internal/memory/memmove + get_local $0 + i32.const 46 + i32.store16 offset=6 + get_local $0 + get_local $2 + i32.add + tee_local $0 + i32.const 101 + i32.store16 offset=6 + get_local $0 + i32.const 4 + i32.add + set_local $4 + get_local $3 + i32.const 1 + i32.sub + tee_local $3 + i32.const 0 + i32.lt_s + tee_local $0 + if + i32.const 0 + get_local $3 + i32.sub + set_local $3 + end + get_local $3 + call $~lib/internal/number/decimalCount32 + i32.const 1 + i32.add + set_local $2 + get_local $4 + get_local $3 + get_local $2 + call $~lib/internal/number/utoa32_lut + get_local $4 + i32.const 45 + i32.const 43 + get_local $0 + select + i32.store16 offset=4 + get_local $1 + get_local $2 + i32.add + i32.const 2 + i32.add + end + end + end + end ) - (func $~lib/internal/number/dtoa_core (; 57 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/internal/number/dtoa_core (; 57 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) @@ -6963,5178 +4961,3596 @@ (local $14 i32) (local $15 i32) (local $16 i32) - (if - (tee_local $14 - (f64.lt - (get_local $1) - (f64.const 0) - ) - ) - (block - (set_local $1 - (f64.neg - (get_local $1) - ) - ) - (i32.store16 offset=4 - (get_local $0) - (i32.const 45) - ) - ) - ) - (set_local $2 - (i64.add - (i64.shl - (i64.extend_u/i32 - (tee_local $3 - (i32.ne - (tee_local $15 - (i32.wrap/i64 - (i64.shr_u - (i64.and - (tee_local $2 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.const 9218868437227405312) - ) - (i64.const 52) - ) - ) - ) - (i32.const 0) - ) - ) - ) - (i64.const 52) - ) - (i64.and - (get_local $2) - (i64.const 4503599627370495) - ) - ) - ) - (set_local $3 - (i32.sub - (tee_local $15 - (i32.sub - (select - (get_local $15) - (i32.const 1) - (get_local $3) - ) - (i32.const 1075) - ) - ) - (i32.const 1) - ) - ) - (set_local $16 - (i32.wrap/i64 - (i64.clz - (tee_local $4 - (i64.add - (i64.shl - (get_local $2) - (i64.const 1) - ) - (i64.const 1) - ) - ) - ) - ) - ) - (set_global $~lib/internal/number/_frc_plus - (i64.shl - (get_local $4) - (i64.extend_s/i32 - (get_local $16) - ) - ) - ) - (set_global $~lib/internal/number/_frc_minus - (i64.shl - (i64.sub - (i64.shl - (get_local $2) - (i64.extend_s/i32 - (tee_local $5 - (i32.add - (i64.eq - (get_local $2) - (i64.const 4503599627370496) - ) - (i32.const 1) - ) - ) - ) - ) - (i64.const 1) - ) - (i64.extend_s/i32 - (i32.sub - (i32.sub - (get_local $15) - (get_local $5) - ) - (tee_local $3 - (i32.sub - (get_local $3) - (get_local $16) - ) - ) - ) - ) - ) - ) - (set_global $~lib/internal/number/_exp - (get_local $3) - ) - (set_global $~lib/internal/number/_K - (i32.sub - (i32.const 348) - (i32.shl - (tee_local $3 - (i32.add - (i32.shr_s - (i32.add - (tee_local $16 - (i32.trunc_s/f64 - (tee_local $1 - (f64.add - (f64.mul - (f64.convert_s/i32 - (i32.sub - (i32.const -61) - (get_global $~lib/internal/number/_exp) - ) - ) - (f64.const 0.30102999566398114) - ) - (f64.const 347) - ) - ) - ) - ) - (f64.ne - (f64.convert_s/i32 - (get_local $16) - ) - (get_local $1) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - ) - (i32.const 3) - ) - ) - ) - (set_local $5 - (i32.load - (i32.const 4256) - ) - ) - (set_global $~lib/internal/number/_frc_pow - (i64.load offset=8 - (i32.add - (i32.load - (i32.const 3992) - ) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - ) - ) - (set_global $~lib/internal/number/_exp_pow - (i32.load16_s offset=8 - (i32.add - (get_local $5) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - ) - (set_local $9 - (i64.mul - (tee_local $7 - (i64.and - (tee_local $2 - (i64.shl - (get_local $2) - (i64.extend_s/i32 - (tee_local $5 - (i32.wrap/i64 - (i64.clz - (get_local $2) - ) - ) - ) - ) - ) - ) - (i64.const 4294967295) - ) - ) - (tee_local $8 - (i64.and - (tee_local $4 - (get_global $~lib/internal/number/_frc_pow) - ) - (i64.const 4294967295) - ) - ) - ) - ) - (set_local $2 - (i64.add - (i64.mul - (get_local $7) - (tee_local $10 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) - (i64.and - (tee_local $6 - (i64.add - (i64.mul - (tee_local $11 - (i64.shr_u - (get_local $2) - (i64.const 32) - ) - ) - (get_local $8) - ) - (i64.shr_u - (get_local $9) - (i64.const 32) - ) - ) - ) - (i64.const 4294967295) - ) - ) - ) - (set_local $2 - (i64.add - (i64.add - (i64.mul - (get_local $11) - (get_local $10) - ) - (i64.shr_u - (get_local $6) - (i64.const 32) - ) - ) - (i64.shr_u - (i64.add - (get_local $2) - (i64.const 2147483647) - ) - (i64.const 32) - ) - ) - ) - (set_local $7 - (i64.mul - (tee_local $9 - (i64.and - (tee_local $6 - (get_global $~lib/internal/number/_frc_plus) - ) - (i64.const 4294967295) - ) - ) - (tee_local $10 - (i64.and - (get_local $4) - (i64.const 4294967295) - ) - ) - ) - ) - (set_local $13 - (i64.add - (i64.mul - (get_local $9) - (tee_local $8 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) - (i64.and - (tee_local $12 - (i64.add - (i64.mul - (tee_local $11 - (i64.shr_u - (get_local $6) - (i64.const 32) - ) - ) - (get_local $10) - ) - (i64.shr_u - (get_local $7) - (i64.const 32) - ) - ) - ) - (i64.const 4294967295) - ) - ) - ) - (set_local $13 - (i64.add - (i64.add - (i64.mul - (get_local $11) - (get_local $8) - ) - (i64.shr_u - (get_local $12) - (i64.const 32) - ) - ) - (i64.shr_u - (i64.add - (get_local $13) - (i64.const 2147483647) - ) - (i64.const 32) - ) - ) - ) - (set_local $9 - (i64.mul - (tee_local $7 - (i64.and - (tee_local $12 - (get_global $~lib/internal/number/_frc_minus) - ) - (i64.const 4294967295) - ) - ) - (tee_local $8 - (i64.and - (get_local $4) - (i64.const 4294967295) - ) - ) - ) - ) - (set_local $12 - (i64.add - (i64.mul - (get_local $7) - (tee_local $10 - (i64.shr_u - (get_local $4) - (i64.const 32) - ) - ) - ) - (i64.and - (tee_local $6 - (i64.add - (i64.mul - (tee_local $11 - (i64.shr_u - (get_local $12) - (i64.const 32) - ) - ) - (get_local $8) - ) - (i64.shr_u - (get_local $9) - (i64.const 32) - ) - ) - ) - (i64.const 4294967295) - ) - ) - ) - (set_local $6 - (i64.sub - (tee_local $13 - (i64.sub - (get_local $13) - (i64.const 1) - ) - ) - (i64.add - (i64.add - (i64.add - (i64.mul - (get_local $11) - (get_local $10) - ) - (i64.shr_u - (get_local $6) - (i64.const 32) - ) - ) - (i64.shr_u - (i64.add - (get_local $12) - (i64.const 2147483647) - ) - (i64.const 32) - ) - ) - (i64.const 1) - ) - ) - ) - (set_local $3 - (call $~lib/internal/number/genDigits - (get_local $0) - (get_local $2) - (tee_local $3 - (i32.sub - (i32.add - (i32.sub - (get_local $15) - (get_local $5) - ) - (tee_local $5 - (get_global $~lib/internal/number/_exp_pow) - ) - ) - (i32.const -64) - ) - ) - (get_local $13) - (i32.sub - (i32.add - (get_global $~lib/internal/number/_exp) - (get_local $5) - ) - (i32.const -64) - ) - (get_local $6) - (get_local $14) - ) - ) - (i32.add - (tee_local $3 - (call $~lib/internal/number/prettify - (i32.add - (get_local $0) - (i32.shl - (get_local $14) - (i32.const 1) - ) - ) - (i32.sub - (get_local $3) - (get_local $14) - ) - (get_global $~lib/internal/number/_K) - ) - ) - (get_local $14) - ) + get_local $1 + f64.const 0 + f64.lt + tee_local $14 + if + get_local $1 + f64.neg + set_local $1 + get_local $0 + i32.const 45 + i32.store16 offset=4 + end + get_local $1 + i64.reinterpret/f64 + tee_local $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap/i64 + tee_local $15 + i32.const 0 + i32.ne + tee_local $3 + i64.extend_u/i32 + i64.const 52 + i64.shl + get_local $2 + i64.const 4503599627370495 + i64.and + i64.add + set_local $2 + get_local $15 + i32.const 1 + get_local $3 + select + i32.const 1075 + i32.sub + tee_local $15 + i32.const 1 + i32.sub + set_local $3 + get_local $2 + i64.const 1 + i64.shl + i64.const 1 + i64.add + tee_local $4 + i64.clz + i32.wrap/i64 + set_local $16 + get_local $4 + get_local $16 + i64.extend_s/i32 + i64.shl + set_global $~lib/internal/number/_frc_plus + get_local $2 + get_local $2 + i64.const 4503599627370496 + i64.eq + i32.const 1 + i32.add + tee_local $5 + i64.extend_s/i32 + i64.shl + i64.const 1 + i64.sub + get_local $15 + get_local $5 + i32.sub + get_local $3 + get_local $16 + i32.sub + tee_local $3 + i32.sub + i64.extend_s/i32 + i64.shl + set_global $~lib/internal/number/_frc_minus + get_local $3 + set_global $~lib/internal/number/_exp + i32.const 348 + i32.const -61 + get_global $~lib/internal/number/_exp + i32.sub + f64.convert_s/i32 + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + tee_local $1 + i32.trunc_s/f64 + tee_local $16 + get_local $16 + f64.convert_s/i32 + get_local $1 + f64.ne + i32.add + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + tee_local $3 + i32.const 3 + i32.shl + i32.sub + set_global $~lib/internal/number/_K + i32.const 4256 + i32.load + set_local $5 + i32.const 3992 + i32.load + get_local $3 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + set_global $~lib/internal/number/_frc_pow + get_local $5 + get_local $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=8 + set_global $~lib/internal/number/_exp_pow + get_local $2 + get_local $2 + i64.clz + i32.wrap/i64 + tee_local $5 + i64.extend_s/i32 + i64.shl + tee_local $2 + i64.const 4294967295 + i64.and + tee_local $7 + get_global $~lib/internal/number/_frc_pow + tee_local $4 + i64.const 4294967295 + i64.and + tee_local $8 + i64.mul + set_local $9 + get_local $7 + get_local $4 + i64.const 32 + i64.shr_u + tee_local $10 + i64.mul + get_local $2 + i64.const 32 + i64.shr_u + tee_local $11 + get_local $8 + i64.mul + get_local $9 + i64.const 32 + i64.shr_u + i64.add + tee_local $6 + i64.const 4294967295 + i64.and + i64.add + set_local $2 + get_local $11 + get_local $10 + i64.mul + get_local $6 + i64.const 32 + i64.shr_u + i64.add + get_local $2 + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + set_local $2 + get_global $~lib/internal/number/_frc_plus + tee_local $6 + i64.const 4294967295 + i64.and + tee_local $9 + get_local $4 + i64.const 4294967295 + i64.and + tee_local $10 + i64.mul + set_local $7 + get_local $9 + get_local $4 + i64.const 32 + i64.shr_u + tee_local $8 + i64.mul + get_local $6 + i64.const 32 + i64.shr_u + tee_local $11 + get_local $10 + i64.mul + get_local $7 + i64.const 32 + i64.shr_u + i64.add + tee_local $12 + i64.const 4294967295 + i64.and + i64.add + set_local $13 + get_local $11 + get_local $8 + i64.mul + get_local $12 + i64.const 32 + i64.shr_u + i64.add + get_local $13 + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + set_local $13 + get_global $~lib/internal/number/_frc_minus + tee_local $12 + i64.const 4294967295 + i64.and + tee_local $7 + get_local $4 + i64.const 4294967295 + i64.and + tee_local $8 + i64.mul + set_local $9 + get_local $7 + get_local $4 + i64.const 32 + i64.shr_u + tee_local $10 + i64.mul + get_local $12 + i64.const 32 + i64.shr_u + tee_local $11 + get_local $8 + i64.mul + get_local $9 + i64.const 32 + i64.shr_u + i64.add + tee_local $6 + i64.const 4294967295 + i64.and + i64.add + set_local $12 + get_local $13 + i64.const 1 + i64.sub + tee_local $13 + get_local $11 + get_local $10 + i64.mul + get_local $6 + i64.const 32 + i64.shr_u + i64.add + get_local $12 + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + set_local $6 + get_local $0 + get_local $2 + get_local $15 + get_local $5 + i32.sub + get_global $~lib/internal/number/_exp_pow + tee_local $5 + i32.add + i32.const -64 + i32.sub + tee_local $3 + get_local $13 + get_global $~lib/internal/number/_exp + get_local $5 + i32.add + i32.const -64 + i32.sub + get_local $6 + get_local $14 + call $~lib/internal/number/genDigits + set_local $3 + get_local $0 + get_local $14 + i32.const 1 + i32.shl + i32.add + get_local $3 + get_local $14 + i32.sub + get_global $~lib/internal/number/_K + call $~lib/internal/number/prettify + tee_local $3 + get_local $14 + i32.add ) - (func $~lib/string/String#substring (; 58 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 269) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $1 - (select - (tee_local $2 - (select - (get_local $1) - (i32.const 0) - (i32.gt_s - (get_local $1) - (i32.const 0) - ) - ) - ) - (tee_local $3 - (i32.load - (get_local $0) - ) - ) - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (set_local $4 - (select - (tee_local $2 - (select - (i32.const 0) - (get_local $3) - (i32.lt_s - (i32.const 0) - (get_local $3) - ) - ) - ) - (get_local $1) - (i32.lt_s - (get_local $2) - (get_local $1) - ) - ) - ) - (if - (i32.eqz - (tee_local $3 - (i32.sub - (tee_local $1 - (select - (get_local $2) - (get_local $1) - (i32.gt_s - (get_local $2) - (get_local $1) - ) - ) - ) - (get_local $4) - ) - ) - ) - (return - (i32.const 256) - ) - ) - (if - (tee_local $2 - (i32.eqz - (get_local $4) - ) - ) - (set_local $2 - (i32.eq - (get_local $1) - (i32.load - (get_local $0) - ) - ) - ) - ) - (if - (get_local $2) - (return - (get_local $0) - ) - ) - (call $~lib/internal/string/copyUnsafe - (tee_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $3) - ) - ) - (i32.const 0) - (get_local $0) - (get_local $4) - (get_local $3) - ) - (get_local $2) + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 269 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + get_local $1 + i32.const 0 + i32.gt_s + select + tee_local $2 + get_local $0 + i32.load + tee_local $3 + get_local $2 + get_local $3 + i32.lt_s + select + set_local $1 + i32.const 0 + get_local $3 + i32.const 0 + get_local $3 + i32.lt_s + select + tee_local $2 + get_local $1 + get_local $2 + get_local $1 + i32.lt_s + select + set_local $4 + get_local $2 + get_local $1 + get_local $2 + get_local $1 + i32.gt_s + select + tee_local $1 + get_local $4 + i32.sub + tee_local $3 + i32.eqz + if + i32.const 256 + return + end + get_local $4 + i32.eqz + tee_local $2 + if + get_local $1 + get_local $0 + i32.load + i32.eq + set_local $2 + end + get_local $2 + if + get_local $0 + return + end + get_local $3 + call $~lib/internal/string/allocateUnsafe + tee_local $2 + i32.const 0 + get_local $0 + get_local $4 + get_local $3 + call $~lib/internal/string/copyUnsafe + get_local $2 ) - (func $~lib/allocator/arena/__memory_free (; 59 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (nop) + (func $~lib/allocator/arena/__memory_free (; 59 ;) (type $FUNCSIG$v) + nop ) - (func $~lib/internal/number/dtoa (; 60 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) + (func $~lib/internal/number/dtoa (; 60 ;) (type $Fi) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) - (if - (f64.eq - (get_local $0) - (f64.const 0) - ) - (return - (i32.const 2888) - ) - ) - (if - (i32.eqz - (call $~lib/builtins/isFinite - (get_local $0) - ) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (i32.const 2904) - ) - ) - (return - (select - (i32.const 2920) - (i32.const 2944) - (f64.lt - (get_local $0) - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $2 - (call $~lib/internal/number/dtoa_core - (tee_local $1 - (call $~lib/internal/string/allocateUnsafe - (i32.const 28) - ) - ) - (get_local $0) - ) - ) - (set_local $2 - (call $~lib/string/String#substring - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 112) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (call $~lib/allocator/arena/__memory_free) - (get_local $2) + get_local $0 + f64.const 0 + f64.eq + if + i32.const 2888 + return + end + get_local $0 + call $~lib/builtins/isFinite + i32.eqz + if + get_local $0 + call $~lib/builtins/isNaN + if + i32.const 2904 + return + end + i32.const 2920 + i32.const 2944 + get_local $0 + f64.const 0 + f64.lt + select + return + end + i32.const 28 + call $~lib/internal/string/allocateUnsafe + tee_local $1 + get_local $0 + call $~lib/internal/number/dtoa_core + set_local $2 + get_local $1 + get_local $2 + call $~lib/string/String#substring + set_local $2 + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + call $~lib/allocator/arena/__memory_free + get_local $2 ) - (func $start (; 61 ;) (; has Stack IR ;) (type $v) + (func $start (; 61 ;) (type $v) (local $0 i32) (local $1 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 5880) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (if - (i32.ne - (get_global $std/string/str) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load - (get_global $std/string/str) - ) - (i32.const 16) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#charCodeAt - (get_global $std/string/str) - ) - (i32.const 104) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromCharCode - (i32.const 0) - ) - (i32.const 168) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromCharCode - (i32.const 54) - ) - (i32.const 176) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromCharCode - (i32.const 65590) - ) - (i32.const 176) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromCodePoint - (i32.const 0) - ) - (i32.const 168) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromCodePoint - (i32.const 54) - ) - (i32.const 176) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.fromCodePoint - (i32.const 119558) - ) - ) - (block - (call $~lib/env/abort - (i32.const 184) - (i32.const 48) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String#startsWith - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.eqz - (call $~lib/string/String#endsWith|trampoline - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eq - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 232) - (i32.const 0) - ) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 32) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart|trampoline - (get_global $std/string/str) - (i32.const 0) - ) - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 34) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart|trampoline - (get_global $std/string/str) - (i32.const 15) - ) - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 35) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart|trampoline - (i32.const 256) - (i32.const 3) - ) - (i32.const 264) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 36) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart - (i32.const 256) - (i32.const 10) - (i32.const 256) - ) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 37) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart - (i32.const 280) - (i32.const 100) - (i32.const 256) - ) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 38) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart|trampoline - (i32.const 288) - (i32.const 5) - ) - (i32.const 304) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart - (i32.const 288) - (i32.const 6) - (i32.const 320) - ) - (i32.const 336) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart - (i32.const 288) - (i32.const 8) - (i32.const 320) - ) - (i32.const 352) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 41) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd|trampoline - (get_global $std/string/str) - (i32.const 0) - ) - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 43) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd|trampoline - (get_global $std/string/str) - (i32.const 15) - ) - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 44) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd|trampoline - (i32.const 256) - (i32.const 3) - ) - (i32.const 264) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 45) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd - (i32.const 256) - (i32.const 10) - (i32.const 256) - ) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 46) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd - (i32.const 280) - (i32.const 100) - (i32.const 256) - ) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 47) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd|trampoline - (i32.const 288) - (i32.const 5) - ) - (i32.const 376) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 48) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd - (i32.const 288) - (i32.const 6) - (i32.const 288) - ) - (i32.const 392) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 49) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd - (i32.const 288) - (i32.const 8) - (i32.const 288) - ) - (i32.const 408) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 50) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String#indexOf - (i32.const 256) - (i32.const 256) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 52) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#indexOf - (i32.const 256) - (i32.const 192) - (i32.const 0) - ) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 53) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String#indexOf - (i32.const 280) - (i32.const 280) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 54) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (get_global $std/string/str) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 55) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 256) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 56) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 432) - (i32.const 0) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 57) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 440) - (i32.const 0) - ) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 58) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 432) - (i32.const 2) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 59) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 432) - (i32.const 3) - ) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 60) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 448) - (i32.const -1) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 61) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (call $~lib/string/String#lastIndexOf|trampoline - (i32.const 256) - (i32.const 256) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 63) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.ne - (call $~lib/string/String#lastIndexOf|trampoline - (i32.const 256) - (i32.const 192) - ) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 64) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.ne - (call $~lib/string/String#lastIndexOf|trampoline - (get_global $std/string/str) - (i32.const 256) - ) - (i32.load - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 65) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.ne - (call $~lib/string/String#lastIndexOf|trampoline - (get_global $std/string/str) - (i32.const 432) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 66) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.ne - (call $~lib/string/String#lastIndexOf|trampoline - (get_global $std/string/str) - (i32.const 440) - ) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 67) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (if - (i32.ne - (call $~lib/string/String#lastIndexOf|trampoline - (get_global $std/string/str) - (i32.const 464) - ) - (i32.const 15) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 68) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#lastIndexOf - (get_global $std/string/str) - (i32.const 432) - (i32.const 2) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 69) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#lastIndexOf - (get_global $std/string/str) - (i32.const 432) - (i32.const 3) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 70) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#lastIndexOf - (get_global $std/string/str) - (i32.const 448) - (i32.const -1) - ) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 71) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/string/String#lastIndexOf - (get_global $std/string/str) - (i32.const 472) - (i32.const 0) - ) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 72) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String#lastIndexOf - (get_global $std/string/str) - (i32.const 192) - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 73) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseInt - (i32.const 480) - ) - (f64.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 79) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseInt - (i32.const 488) - ) - (f64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 80) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseInt - (i32.const 496) - ) - (f64.const 5) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 81) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseInt - (i32.const 512) - ) - (f64.const 455) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 82) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseInt - (i32.const 528) - ) - (f64.const 3855) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 83) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseInt - (i32.const 544) - ) - (f64.const 3855) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 84) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseInt - (i32.const 560) - ) - (f64.const 11) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 85) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseInt - (i32.const 576) - ) - (f64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 86) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseFloat - (i32.const 480) - ) - (f64.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 88) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseFloat - (i32.const 488) - ) - (f64.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 89) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseFloat - (i32.const 592) - ) - (f64.const 0.1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 90) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseFloat - (i32.const 608) - ) - (f64.const 0.25) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 91) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (f64.ne - (call $~lib/string/parseFloat - (i32.const 624) - ) - (f64.const 0.1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 92) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/c - (call $~lib/string/String.__concat - (i32.const 280) - (i32.const 648) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (get_global $std/string/c) - (i32.const 656) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 95) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__ne - (get_global $std/string/c) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 96) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (i32.const 256) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 97) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__ne - (i32.const 256) - (get_global $std/string/nullStr) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 98) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 648) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 100) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 664) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gte - (i32.const 664) - (i32.const 672) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 664) - (i32.const 656) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 103) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__lt - (i32.const 664) - (i32.const 656) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 104) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__lt - (i32.const 648) - (get_global $std/string/nullStr) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__lt - (get_global $std/string/nullStr) - (i32.const 648) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 288) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__lt - (i32.const 256) - (i32.const 288) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gte - (i32.const 288) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__lte - (i32.const 288) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 112) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__lt - (i32.const 288) - (i32.const 256) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 113) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__gt - (i32.const 256) - (i32.const 288) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__lt - (i32.const 256) - (i32.const 256) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__gt - (i32.const 256) - (i32.const 256) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gte - (i32.const 256) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__lte - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 118) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/a - (call $~lib/string/String.fromCodePoint - (i32.const 65377) - ) - ) - (set_local $0 - (call $~lib/string/String.fromCodePoint - (i32.const 55296) - ) - ) - (set_local $1 - (call $~lib/string/String.fromCodePoint - (i32.const 56322) - ) - ) - (set_global $std/string/b - (call $~lib/string/String.__concat - (get_local $0) - (get_local $1) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (get_global $std/string/a) - (get_global $std/string/b) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load - (i32.const 320) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 256) - (i32.const 100) - ) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 0) - ) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 1) - ) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 2) - ) - (i32.const 672) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 3) - ) - (i32.const 680) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 656) - (i32.const 4) - ) - (i32.const 696) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 5) - ) - (i32.const 720) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 6) - ) - (i32.const 736) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 7) - ) - (i32.const 752) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 134) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 0) - ) - (set_global $std/string/sa - (call $~lib/string/String#split|trampoline - (i32.const 256) - (i32.const 0) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 1) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 256) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 139) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/string/sa - (call $~lib/string/String#split|trampoline - (i32.const 256) - (i32.const 256) - ) - ) - (if - (i32.load offset=4 - (get_global $std/string/sa) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 141) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/string/sa - (call $~lib/string/String#split|trampoline - (i32.const 256) - (i32.const 432) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 1) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 256) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 143) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/string/sa - (call $~lib/string/String#split|trampoline - (i32.const 896) - (i32.const 912) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 1) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 896) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 145) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/string/sa - (call $~lib/string/String#split|trampoline - (i32.const 896) - (i32.const 432) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 3) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 147) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/string/sa - (call $~lib/string/String#split|trampoline - (i32.const 928) - (i32.const 952) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 3) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 149) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/string/sa - (call $~lib/string/String#split|trampoline - (i32.const 960) - (i32.const 432) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 4) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 256) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 3) - ) - (i32.const 920) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 151) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/string/sa - (call $~lib/string/String#split|trampoline - (i32.const 976) - (i32.const 432) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 4) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 256) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 280) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 648) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 3) - ) - (i32.const 920) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 153) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/string/sa - (call $~lib/string/String#split|trampoline - (i32.const 992) - (i32.const 432) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 4) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 3) - ) - (i32.const 256) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (set_global $std/string/sa - (call $~lib/string/String#split|trampoline - (i32.const 288) - (i32.const 256) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 3) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 157) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 288) - (i32.const 256) - (i32.const 0) - ) - ) - (if - (i32.load offset=4 - (get_global $std/string/sa) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 288) - (i32.const 256) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 1) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 161) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 896) - (i32.const 432) - (i32.const 1) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 1) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 163) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 288) - (i32.const 256) - (i32.const 4) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 3) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 288) - (i32.const 256) - (i32.const -1) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 3) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 167) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 896) - (i32.const 432) - (i32.const -1) - ) - ) - (if - (tee_local $0 - (i32.eq - (i32.load offset=4 - (get_global $std/string/sa) - ) - (i32.const 3) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 169) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 0) - ) - (i32.const 480) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 171) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 1) - ) - (i32.const 488) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 172) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 8) - ) - (i32.const 1528) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 173) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 123) - ) - (i32.const 320) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 174) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const -1000) - ) - (i32.const 1536) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 175) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 1234) - ) - (i32.const 1552) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 176) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 12345) - ) - (i32.const 1568) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 177) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 123456) - ) - (i32.const 1584) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 178) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 1111111) - ) - (i32.const 1600) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 179) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 1234567) - ) - (i32.const 1624) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 180) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 2147483646) - ) - (i32.const 1648) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 181) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 2147483647) - ) - (i32.const 1672) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 182) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const -2147483648) - ) - (i32.const 1696) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 183) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const -1) - ) - (i32.const 1728) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 184) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa32 - (i32.const 0) - ) - (i32.const 480) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 186) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa32 - (i32.const 1000) - ) - (i32.const 1736) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 187) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa32 - (i32.const 2147483647) - ) - (i32.const 1672) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 188) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa32 - (i32.const -2147483648) - ) - (i32.const 1752) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 189) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa32 - (i32.const -1) - ) - (i32.const 1776) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 190) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 0) - ) - (i32.const 480) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 192) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 1234) - ) - (i32.const 1552) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 193) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 99999999) - ) - (i32.const 2320) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 194) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 100000000) - ) - (i32.const 2344) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 195) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 4294967295) - ) - (i32.const 1776) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 196) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 68719476735) - ) - (i32.const 2368) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 197) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 868719476735) - ) - (i32.const 2400) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 198) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 999868719476735) - ) - (i32.const 2432) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 199) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 9999868719476735) - ) - (i32.const 2472) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 200) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 19999868719476735) - ) - (i32.const 2512) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 201) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const -1) - ) - (i32.const 2552) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 202) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const 0) - ) - (i32.const 480) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 204) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -1234) - ) - (i32.const 2600) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 205) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const 4294967295) - ) - (i32.const 1776) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 206) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -4294967295) - ) - (i32.const 2616) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 207) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const 68719476735) - ) - (i32.const 2368) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 208) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -68719476735) - ) - (i32.const 2648) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 209) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -868719476735) - ) - (i32.const 2680) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 210) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -999868719476735) - ) - (i32.const 2712) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 211) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -19999868719476735) - ) - (i32.const 2752) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 212) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const 9223372036854775807) - ) - (i32.const 2792) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 213) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -9223372036854775808) - ) - (i32.const 2840) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 214) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0) - ) - (i32.const 2888) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 217) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -0) - ) - (i32.const 2888) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 218) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const nan:0x8000000000000) - ) - (i32.const 2904) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 219) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const inf) - ) - (i32.const 2944) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 220) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -inf) - ) - (i32.const 2920) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 221) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 2.220446049250313e-16) - ) - (i32.const 4336) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 222) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -2.220446049250313e-16) - ) - (i32.const 4384) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 223) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1797693134862315708145274e284) - ) - (i32.const 4432) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 224) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1797693134862315708145274e284) - ) - (i32.const 4488) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 225) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 4185580496821356722454785e274) - ) - (i32.const 4544) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 226) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 2.2250738585072014e-308) - ) - (i32.const 4592) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 227) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 2.9802322387695312e-08) - ) - (i32.const 4648) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 228) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -21098088986959632) - ) - (i32.const 4696) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 229) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 4.940656e-318) - ) - (i32.const 4744) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 230) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 9060801153433600) - ) - (i32.const 4776) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 231) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 4708356024711512064) - ) - (i32.const 4816) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 232) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 9409340012568248320) - ) - (i32.const 4864) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 233) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 5e-324) - ) - (i32.const 4912) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 234) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1) - ) - (i32.const 4928) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 240) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0.1) - ) - (i32.const 592) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 241) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1) - ) - (i32.const 4944) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 242) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -0.1) - ) - (i32.const 4960) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 243) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e6) - ) - (i32.const 4976) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 245) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e-06) - ) - (i32.const 5000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 246) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1e6) - ) - (i32.const 5024) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 247) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1e-06) - ) - (i32.const 5048) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 248) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e7) - ) - (i32.const 5072) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 249) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e-07) - ) - (i32.const 5096) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 250) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1.e+308) - ) - (i32.const 5112) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 252) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1.e+308) - ) - (i32.const 5128) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 253) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const inf) - ) - (i32.const 2944) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 254) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -inf) - ) - (i32.const 2920) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 255) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e-308) - ) - (i32.const 5152) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 256) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1e-308) - ) - (i32.const 5168) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 257) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e-323) - ) - (i32.const 5192) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 258) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1e-323) - ) - (i32.const 5208) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 259) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0) - ) - (i32.const 2888) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 260) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 4294967272) - ) - (i32.const 5232) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 262) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1.2312145673456234e-08) - ) - (i32.const 5264) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 263) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1.0471975511965976e-06) - ) - (i32.const 5312) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 264) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 555555555.5555556) - ) - (i32.const 5368) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 265) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0.9999999999999999) - ) - (i32.const 5408) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 266) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1) - ) - (i32.const 4928) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 267) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 12.34) - ) - (i32.const 5448) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 268) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0.30000000000000004) - ) - (i32.const 5464) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 269) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0.3333333333333333) - ) - (i32.const 5512) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 270) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1234e17) - ) - (i32.const 5552) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 271) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1234e18) - ) - (i32.const 5608) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 272) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 2.71828) - ) - (i32.const 5632) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 273) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0.0271828) - ) - (i32.const 5656) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 274) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 271.828) - ) - (i32.const 5680) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 275) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1.1e+128) - ) - (i32.const 5704) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 276) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1.1e-64) - ) - (i32.const 5728) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 277) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0.000035689) - ) - (i32.const 5752) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 278) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 3402823466385288598117041e14) - ) - (i32.const 5784) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 280) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1.1920928955078125e-07) - ) - (i32.const 5832) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 281) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 5880 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + get_global $std/string/str + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.load + i32.const 16 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + call $~lib/string/String#charCodeAt + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/string/String.fromCharCode + i32.const 168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 54 + call $~lib/string/String.fromCharCode + i32.const 176 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 65590 + call $~lib/string/String.fromCharCode + i32.const 176 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/string/String.fromCodePoint + i32.const 168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 54 + call $~lib/string/String.fromCodePoint + i32.const 176 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 119558 + call $~lib/string/String.fromCodePoint + i32.eqz + if + i32.const 184 + i32.const 48 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + call $~lib/string/String#startsWith + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/string/str + call $~lib/string/String#endsWith|trampoline + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 232 + i32.const 0 + call $~lib/string/String#indexOf + i32.const -1 + i32.eq + if + i32.const 0 + i32.const 48 + i32.const 32 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 0 + call $~lib/string/String#padStart|trampoline + get_global $std/string/str + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 34 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 15 + call $~lib/string/String#padStart|trampoline + get_global $std/string/str + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 35 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 3 + call $~lib/string/String#padStart|trampoline + i32.const 264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 36 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 10 + i32.const 256 + call $~lib/string/String#padStart + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 37 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 100 + i32.const 256 + call $~lib/string/String#padStart + i32.const 280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 38 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 288 + i32.const 5 + call $~lib/string/String#padStart|trampoline + i32.const 304 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 6 + i32.const 320 + call $~lib/string/String#padStart + i32.const 336 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 8 + i32.const 320 + call $~lib/string/String#padStart + i32.const 352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 41 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 0 + call $~lib/string/String#padEnd|trampoline + get_global $std/string/str + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 43 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 15 + call $~lib/string/String#padEnd|trampoline + get_global $std/string/str + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 44 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 3 + call $~lib/string/String#padEnd|trampoline + i32.const 264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 45 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 10 + i32.const 256 + call $~lib/string/String#padEnd + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 46 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 100 + i32.const 256 + call $~lib/string/String#padEnd + i32.const 280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 47 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 288 + i32.const 5 + call $~lib/string/String#padEnd|trampoline + i32.const 376 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 48 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 6 + i32.const 288 + call $~lib/string/String#padEnd + i32.const 392 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 49 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 8 + i32.const 288 + call $~lib/string/String#padEnd + i32.const 408 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 50 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + i32.const 0 + call $~lib/string/String#indexOf + if + i32.const 0 + i32.const 48 + i32.const 52 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 192 + i32.const 0 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 53 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 280 + i32.const 0 + call $~lib/string/String#indexOf + if + i32.const 0 + i32.const 48 + i32.const 54 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + get_global $std/string/str + i32.const 0 + call $~lib/string/String#indexOf + if + i32.const 0 + i32.const 48 + i32.const 55 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 256 + i32.const 0 + call $~lib/string/String#indexOf + if + i32.const 0 + i32.const 48 + i32.const 56 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 432 + i32.const 0 + call $~lib/string/String#indexOf + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 57 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 440 + i32.const 0 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 58 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 432 + i32.const 2 + call $~lib/string/String#indexOf + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 59 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 432 + i32.const 3 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 60 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 448 + i32.const -1 + call $~lib/string/String#indexOf + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 61 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 256 + call $~lib/string/String#lastIndexOf|trampoline + if + i32.const 0 + i32.const 48 + i32.const 63 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 192 + call $~lib/string/String#lastIndexOf|trampoline + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 64 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 256 + call $~lib/string/String#lastIndexOf|trampoline + get_global $std/string/str + i32.load + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 65 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 432 + call $~lib/string/String#lastIndexOf|trampoline + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 66 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 440 + call $~lib/string/String#lastIndexOf|trampoline + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 67 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 464 + call $~lib/string/String#lastIndexOf|trampoline + i32.const 15 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 68 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 432 + i32.const 2 + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 69 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 432 + i32.const 3 + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 70 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 448 + i32.const -1 + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 71 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 472 + i32.const 0 + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 72 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 192 + i32.const 0 + call $~lib/string/String#lastIndexOf + if + i32.const 0 + i32.const 48 + i32.const 73 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 480 + call $~lib/string/parseInt + f64.const 0 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 79 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 488 + call $~lib/string/parseInt + f64.const 1 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 80 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 496 + call $~lib/string/parseInt + f64.const 5 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 81 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 512 + call $~lib/string/parseInt + f64.const 455 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 82 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 528 + call $~lib/string/parseInt + f64.const 3855 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 83 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 544 + call $~lib/string/parseInt + f64.const 3855 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 84 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 560 + call $~lib/string/parseInt + f64.const 11 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 85 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 576 + call $~lib/string/parseInt + f64.const 1 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 86 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 480 + call $~lib/string/parseFloat + f64.const 0 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 88 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 488 + call $~lib/string/parseFloat + f64.const 1 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 89 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 592 + call $~lib/string/parseFloat + f64.const 0.1 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 90 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 608 + call $~lib/string/parseFloat + f64.const 0.25 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 91 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 624 + call $~lib/string/parseFloat + f64.const 0.1 + f64.ne + if + i32.const 0 + i32.const 48 + i32.const 92 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 648 + call $~lib/string/String.__concat + set_global $std/string/c + get_global $std/string/c + i32.const 656 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 95 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/c + i32.const 280 + call $~lib/string/String.__ne + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 96 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 97 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + get_global $std/string/nullStr + call $~lib/string/String.__ne + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 98 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 648 + i32.const 280 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 100 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 664 + i32.const 280 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 101 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 664 + i32.const 672 + call $~lib/string/String.__gte + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 102 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 664 + i32.const 656 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 103 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 664 + i32.const 656 + call $~lib/string/String.__lt + if + i32.const 0 + i32.const 48 + i32.const 104 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 648 + get_global $std/string/nullStr + call $~lib/string/String.__lt + if + i32.const 0 + i32.const 48 + i32.const 106 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/nullStr + i32.const 648 + call $~lib/string/String.__lt + if + i32.const 0 + i32.const 48 + i32.const 107 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 109 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 288 + call $~lib/string/String.__lt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 110 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + call $~lib/string/String.__gte + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 111 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + call $~lib/string/String.__lte + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 112 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + call $~lib/string/String.__lt + if + i32.const 0 + i32.const 48 + i32.const 113 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 288 + call $~lib/string/String.__gt + if + i32.const 0 + i32.const 48 + i32.const 114 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + call $~lib/string/String.__lt + if + i32.const 0 + i32.const 48 + i32.const 115 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + call $~lib/string/String.__gt + if + i32.const 0 + i32.const 48 + i32.const 116 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + call $~lib/string/String.__gte + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 117 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + call $~lib/string/String.__lte + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 118 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 65377 + call $~lib/string/String.fromCodePoint + set_global $std/string/a + i32.const 55296 + call $~lib/string/String.fromCodePoint + set_local $0 + i32.const 56322 + call $~lib/string/String.fromCodePoint + set_local $1 + get_local $0 + get_local $1 + call $~lib/string/String.__concat + set_global $std/string/b + get_global $std/string/a + get_global $std/string/b + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 122 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 320 + i32.load + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 48 + i32.const 124 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 100 + call $~lib/string/String#repeat + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 0 + call $~lib/string/String#repeat + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 127 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 1 + call $~lib/string/String#repeat + i32.const 280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 2 + call $~lib/string/String#repeat + i32.const 672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 129 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 3 + call $~lib/string/String#repeat + i32.const 680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 130 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 656 + i32.const 4 + call $~lib/string/String#repeat + i32.const 696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 131 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 5 + call $~lib/string/String#repeat + i32.const 720 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 132 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 6 + call $~lib/string/String#repeat + i32.const 736 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 133 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 7 + call $~lib/string/String#repeat + i32.const 752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 134 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $~argc + i32.const 256 + i32.const 0 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 1 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 256 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 139 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 256 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + if + i32.const 0 + i32.const 48 + i32.const 141 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 432 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 1 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 256 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 896 + i32.const 912 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 1 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 896 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 145 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 896 + i32.const 432 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 147 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 928 + i32.const 952 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 149 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 960 + i32.const 432 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 4 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 256 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 3 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 151 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 976 + i32.const 432 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 4 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 256 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 3 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 153 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 992 + i32.const 432 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 4 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 3 + call $~lib/array/Array#__get + i32.const 256 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 288 + i32.const 256 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 157 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + i32.const 0 + call $~lib/string/String#split + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + if + i32.const 0 + i32.const 48 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + i32.const 1 + call $~lib/string/String#split + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 1 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 161 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 896 + i32.const 432 + i32.const 1 + call $~lib/string/String#split + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 1 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 163 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + i32.const 4 + call $~lib/string/String#split + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + i32.const -1 + call $~lib/string/String#split + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 167 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 896 + i32.const 432 + i32.const -1 + call $~lib/string/String#split + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 169 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/internal/number/itoa32 + i32.const 480 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 171 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $~lib/internal/number/itoa32 + i32.const 488 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 172 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + call $~lib/internal/number/itoa32 + i32.const 1528 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 173 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 123 + call $~lib/internal/number/itoa32 + i32.const 320 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 174 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1000 + call $~lib/internal/number/itoa32 + i32.const 1536 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 175 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1234 + call $~lib/internal/number/itoa32 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 176 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 12345 + call $~lib/internal/number/itoa32 + i32.const 1568 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 177 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 123456 + call $~lib/internal/number/itoa32 + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 178 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1111111 + call $~lib/internal/number/itoa32 + i32.const 1600 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 179 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1234567 + call $~lib/internal/number/itoa32 + i32.const 1624 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 180 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2147483646 + call $~lib/internal/number/itoa32 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 181 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2147483647 + call $~lib/internal/number/itoa32 + i32.const 1672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 182 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -2147483648 + call $~lib/internal/number/itoa32 + i32.const 1696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 183 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1 + call $~lib/internal/number/itoa32 + i32.const 1728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 184 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/internal/number/utoa32 + i32.const 480 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 186 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1000 + call $~lib/internal/number/utoa32 + i32.const 1736 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 187 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2147483647 + call $~lib/internal/number/utoa32 + i32.const 1672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 188 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -2147483648 + call $~lib/internal/number/utoa32 + i32.const 1752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 189 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1 + call $~lib/internal/number/utoa32 + i32.const 1776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 190 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + call $~lib/internal/number/utoa64 + i32.const 480 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 192 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1234 + call $~lib/internal/number/utoa64 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 193 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 99999999 + call $~lib/internal/number/utoa64 + i32.const 2320 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 194 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 100000000 + call $~lib/internal/number/utoa64 + i32.const 2344 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 195 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 4294967295 + call $~lib/internal/number/utoa64 + i32.const 1776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 196 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 68719476735 + call $~lib/internal/number/utoa64 + i32.const 2368 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 197 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 868719476735 + call $~lib/internal/number/utoa64 + i32.const 2400 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 198 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 999868719476735 + call $~lib/internal/number/utoa64 + i32.const 2432 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 199 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 9999868719476735 + call $~lib/internal/number/utoa64 + i32.const 2472 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 200 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 19999868719476735 + call $~lib/internal/number/utoa64 + i32.const 2512 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 201 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1 + call $~lib/internal/number/utoa64 + i32.const 2552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 202 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + call $~lib/internal/number/itoa64 + i32.const 480 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 204 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1234 + call $~lib/internal/number/itoa64 + i32.const 2600 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 205 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 4294967295 + call $~lib/internal/number/itoa64 + i32.const 1776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 206 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -4294967295 + call $~lib/internal/number/itoa64 + i32.const 2616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 207 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 68719476735 + call $~lib/internal/number/itoa64 + i32.const 2368 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 208 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -68719476735 + call $~lib/internal/number/itoa64 + i32.const 2648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 209 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -868719476735 + call $~lib/internal/number/itoa64 + i32.const 2680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 210 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -999868719476735 + call $~lib/internal/number/itoa64 + i32.const 2712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 211 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -19999868719476735 + call $~lib/internal/number/itoa64 + i32.const 2752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 212 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 9223372036854775807 + call $~lib/internal/number/itoa64 + i32.const 2792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 213 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -9223372036854775808 + call $~lib/internal/number/itoa64 + i32.const 2840 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 214 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + call $~lib/internal/number/dtoa + i32.const 2888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 217 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + call $~lib/internal/number/dtoa + i32.const 2888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 218 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + call $~lib/internal/number/dtoa + i32.const 2904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 219 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + call $~lib/internal/number/dtoa + i32.const 2944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 220 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + call $~lib/internal/number/dtoa + i32.const 2920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 221 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.220446049250313e-16 + call $~lib/internal/number/dtoa + i32.const 4336 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 222 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -2.220446049250313e-16 + call $~lib/internal/number/dtoa + i32.const 4384 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 223 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1797693134862315708145274e284 + call $~lib/internal/number/dtoa + i32.const 4432 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 224 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1797693134862315708145274e284 + call $~lib/internal/number/dtoa + i32.const 4488 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 225 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4185580496821356722454785e274 + call $~lib/internal/number/dtoa + i32.const 4544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 226 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072014e-308 + call $~lib/internal/number/dtoa + i32.const 4592 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 227 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.9802322387695312e-08 + call $~lib/internal/number/dtoa + i32.const 4648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 228 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -21098088986959632 + call $~lib/internal/number/dtoa + i32.const 4696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 229 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.940656e-318 + call $~lib/internal/number/dtoa + i32.const 4744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 230 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9060801153433600 + call $~lib/internal/number/dtoa + i32.const 4776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 231 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4708356024711512064 + call $~lib/internal/number/dtoa + i32.const 4816 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 232 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9409340012568248320 + call $~lib/internal/number/dtoa + i32.const 4864 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 233 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + call $~lib/internal/number/dtoa + i32.const 4912 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 234 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + call $~lib/internal/number/dtoa + i32.const 4928 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 240 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.1 + call $~lib/internal/number/dtoa + i32.const 592 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 241 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + call $~lib/internal/number/dtoa + i32.const 4944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 242 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.1 + call $~lib/internal/number/dtoa + i32.const 4960 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 243 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e6 + call $~lib/internal/number/dtoa + i32.const 4976 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 245 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-06 + call $~lib/internal/number/dtoa + i32.const 5000 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 246 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1e6 + call $~lib/internal/number/dtoa + i32.const 5024 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 247 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1e-06 + call $~lib/internal/number/dtoa + i32.const 5048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 248 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e7 + call $~lib/internal/number/dtoa + i32.const 5072 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-07 + call $~lib/internal/number/dtoa + i32.const 5096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 250 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.e+308 + call $~lib/internal/number/dtoa + i32.const 5112 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 252 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.e+308 + call $~lib/internal/number/dtoa + i32.const 5128 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 253 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + call $~lib/internal/number/dtoa + i32.const 2944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 254 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + call $~lib/internal/number/dtoa + i32.const 2920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 255 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-308 + call $~lib/internal/number/dtoa + i32.const 5152 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 256 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1e-308 + call $~lib/internal/number/dtoa + i32.const 5168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 257 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-323 + call $~lib/internal/number/dtoa + i32.const 5192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 258 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1e-323 + call $~lib/internal/number/dtoa + i32.const 5208 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 259 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + call $~lib/internal/number/dtoa + i32.const 2888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 260 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4294967272 + call $~lib/internal/number/dtoa + i32.const 5232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 262 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.2312145673456234e-08 + call $~lib/internal/number/dtoa + i32.const 5264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 263 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0471975511965976e-06 + call $~lib/internal/number/dtoa + i32.const 5312 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 264 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 555555555.5555556 + call $~lib/internal/number/dtoa + i32.const 5368 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 265 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999999999999999 + call $~lib/internal/number/dtoa + i32.const 5408 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 266 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + call $~lib/internal/number/dtoa + i32.const 4928 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 267 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 12.34 + call $~lib/internal/number/dtoa + i32.const 5448 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 268 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.30000000000000004 + call $~lib/internal/number/dtoa + i32.const 5464 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 269 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.3333333333333333 + call $~lib/internal/number/dtoa + i32.const 5512 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 270 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1234e17 + call $~lib/internal/number/dtoa + i32.const 5552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 271 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1234e18 + call $~lib/internal/number/dtoa + i32.const 5608 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 272 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.71828 + call $~lib/internal/number/dtoa + i32.const 5632 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 273 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.0271828 + call $~lib/internal/number/dtoa + i32.const 5656 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 274 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 271.828 + call $~lib/internal/number/dtoa + i32.const 5680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 275 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1e+128 + call $~lib/internal/number/dtoa + i32.const 5704 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 276 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1e-64 + call $~lib/internal/number/dtoa + i32.const 5728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 277 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.000035689 + call $~lib/internal/number/dtoa + i32.const 5752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 278 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 3402823466385288598117041e14 + call $~lib/internal/number/dtoa + i32.const 5784 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 280 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1920928955078125e-07 + call $~lib/internal/number/dtoa + i32.const 5832 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 281 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 62 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 62 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 485551a9..5c3df2f6 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -16,6 +16,7 @@ (type $iIiIiIii (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $iv (func (param i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\10\00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g\00") (data (i32.const 48) "\0d\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") @@ -167,9 +168,8 @@ (data (i32.const 5752) "\0b\00\00\000\00.\000\000\000\000\003\005\006\008\009\00") (data (i32.const 5784) "\16\00\00\003\00.\004\000\002\008\002\003\004\006\006\003\008\005\002\008\008\006\00e\00+\003\008\00") (data (i32.const 5832) "\15\00\00\001\00.\001\009\002\000\009\002\008\009\005\005\000\007\008\001\002\005\00e\00-\007\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -240,43 +240,32 @@ (export "getString" (func $std/string/getString)) (start $start) (func $~lib/string/String#charCodeAt (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 75) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.load - (get_local $0) - ) - ) - (return - (i32.const -1) - ) - ) - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 75 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $0 + i32.load + i32.ge_u + if + i32.const -1 + return + end + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 ) (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -285,386 +274,283 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/internal/string/allocateUnsafe (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (if (result i32) - (tee_local $1 - (i32.gt_s - (get_local $0) - (i32.const 0) - ) - ) - (i32.le_s - (get_local $0) - (get_global $~lib/internal/string/MAX_LENGTH) - ) - (get_local $1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 112) - (i32.const 14) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $2 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $1 - (i32.add - (get_global $~lib/internal/string/HEADER_SIZE) - (i32.shl - (get_local $0) - (i32.const 1) - ) - ) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $1) - ) - ) - ) - ) - (i32.store - (get_local $2) - (get_local $0) - ) - (get_local $2) + get_local $0 + i32.const 0 + i32.gt_s + tee_local $1 + if (result i32) + get_local $0 + get_global $~lib/internal/string/MAX_LENGTH + i32.le_s + else + get_local $1 + end + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 14 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_global $~lib/internal/string/HEADER_SIZE + get_local $0 + i32.const 1 + i32.shl + i32.add + set_local $1 + get_local $1 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $2 + get_local $2 + get_local $0 + i32.store + get_local $2 ) (func $~lib/string/String.fromCharCode (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (set_local $1 - (call $~lib/internal/string/allocateUnsafe - (i32.const 1) - ) - ) - (i32.store16 offset=4 - (get_local $1) - (get_local $0) - ) - (get_local $1) + i32.const 1 + call $~lib/internal/string/allocateUnsafe + set_local $1 + get_local $1 + get_local $0 + i32.store16 offset=4 + get_local $1 ) (func $~lib/internal/string/compareUnsafe (; 5 ;) (type $iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $5 - (i32.const 0) - ) - (set_local $6 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $4) - (i32.eqz - (tee_local $5 - (i32.sub - (i32.load16_u offset=4 - (get_local $6) - ) - (i32.load16_u offset=4 - (get_local $7) - ) - ) - ) - ) - (get_local $4) - ) - (block - (block - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (get_local $5) + i32.const 0 + set_local $5 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $6 + get_local $2 + get_local $3 + i32.const 1 + i32.shl + i32.add + set_local $7 + block $break|0 + loop $continue|0 + get_local $4 + if (result i32) + get_local $6 + i32.load16_u offset=4 + get_local $7 + i32.load16_u offset=4 + i32.sub + tee_local $5 + i32.eqz + else + get_local $4 + end + if + block + get_local $4 + i32.const 1 + i32.sub + set_local $4 + get_local $6 + i32.const 1 + i32.add + set_local $6 + get_local $7 + i32.const 1 + i32.add + set_local $7 + end + br $continue|0 + end + end + end + get_local $5 ) (func $~lib/string/String.__eq (; 6 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.ne - (get_local $3) - (i32.load - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $3) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.const 0 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $3 + call $~lib/internal/string/compareUnsafe + i32.eqz ) (func $~lib/string/String.fromCodePoint (; 7 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (i32.const 1114111) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 34) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $1 - (i32.gt_s - (get_local $0) - (i32.const 65535) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (i32.store16 offset=4 - (get_local $2) - (get_local $0) - ) - (block - (set_local $0 - (i32.sub - (get_local $0) - (i32.const 65536) - ) - ) - (set_local $3 - (i32.add - (i32.shr_u - (get_local $0) - (i32.const 10) - ) - (i32.const 55296) - ) - ) - (set_local $4 - (i32.add - (i32.and - (get_local $0) - (i32.const 1023) - ) - (i32.const 56320) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (i32.shl - (get_local $3) - (i32.const 16) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $2) + get_local $0 + i32.const 1114111 + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 34 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 65535 + i32.gt_s + set_local $1 + get_local $1 + i32.const 1 + i32.add + call $~lib/internal/string/allocateUnsafe + set_local $2 + get_local $1 + i32.eqz + if + get_local $2 + get_local $0 + i32.store16 offset=4 + else + get_local $0 + i32.const 65536 + i32.sub + set_local $0 + get_local $0 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.add + set_local $3 + get_local $0 + i32.const 1023 + i32.and + i32.const 56320 + i32.add + set_local $4 + get_local $2 + get_local $3 + i32.const 16 + i32.shl + get_local $4 + i32.or + i32.store offset=4 + end + get_local $2 ) (func $~lib/string/String#startsWith (; 8 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -673,91 +559,65 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 244) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (i32.const 200) - ) - ) - (set_local $3 - (get_local $2) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $7 - (select - (tee_local $5 - (select - (tee_local $5 - (get_local $3) - ) - (tee_local $6 - (i32.const 0) - ) - (i32.gt_s - (get_local $5) - (get_local $6) - ) - ) - ) - (tee_local $6 - (get_local $4) - ) - (i32.lt_s - (get_local $5) - (get_local $6) - ) - ) - ) - (set_local $8 - (i32.load - (get_local $1) - ) - ) - (if - (i32.gt_s - (i32.add - (get_local $8) - (get_local $7) - ) - (get_local $4) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $7) - (get_local $1) - (i32.const 0) - (get_local $8) - ) - ) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 244 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.eq + if + i32.const 200 + set_local $1 + end + get_local $2 + set_local $3 + get_local $0 + i32.load + set_local $4 + get_local $3 + tee_local $5 + i32.const 0 + tee_local $6 + get_local $5 + get_local $6 + i32.gt_s + select + tee_local $5 + get_local $4 + tee_local $6 + get_local $5 + get_local $6 + i32.lt_s + select + set_local $7 + get_local $1 + i32.load + set_local $8 + get_local $8 + get_local $7 + i32.add + get_local $4 + i32.gt_s + if + i32.const 0 + return + end + get_local $0 + get_local $7 + get_local $1 + i32.const 0 + get_local $8 + call $~lib/internal/string/compareUnsafe + i32.eqz ) (func $~lib/string/String#endsWith (; 9 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -765,111 +625,82 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 124) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - (set_local $5 - (select - (tee_local $3 - (select - (tee_local $3 - (get_local $2) - ) - (tee_local $4 - (i32.const 0) - ) - (i32.gt_s - (get_local $3) - (get_local $4) - ) - ) - ) - (tee_local $4 - (i32.load - (get_local $0) - ) - ) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - (set_local $6 - (i32.load - (get_local $1) - ) - ) - (set_local $7 - (i32.sub - (get_local $5) - (get_local $6) - ) - ) - (if - (i32.lt_s - (get_local $7) - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $7) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - ) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 124 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.eq + if + i32.const 0 + return + end + get_local $2 + tee_local $3 + i32.const 0 + tee_local $4 + get_local $3 + get_local $4 + i32.gt_s + select + tee_local $3 + get_local $0 + i32.load + tee_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + set_local $5 + get_local $1 + i32.load + set_local $6 + get_local $5 + get_local $6 + i32.sub + set_local $7 + get_local $7 + i32.const 0 + i32.lt_s + if + i32.const 0 + return + end + get_local $0 + get_local $7 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/compareUnsafe + i32.eqz ) (func $~lib/string/String#endsWith|trampoline (; 10 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (get_global $~lib/internal/string/MAX_LENGTH) - ) - ) - (call $~lib/string/String#endsWith - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + get_global $~lib/internal/string/MAX_LENGTH + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/string/String#endsWith ) (func $~lib/string/String#indexOf (; 11 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -877,2164 +708,1521 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 213) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (i32.const 200) - ) - ) - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 0) - ) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (i32.const -1) - ) - ) - (set_local $7 - (select - (tee_local $5 - (select - (tee_local $5 - (get_local $2) - ) - (tee_local $6 - (i32.const 0) - ) - (i32.gt_s - (get_local $5) - (get_local $6) - ) - ) - ) - (tee_local $6 - (get_local $4) - ) - (i32.lt_s - (get_local $5) - (get_local $6) - ) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (get_local $3) - ) - ) - (block $break|0 - (set_local $5 - (get_local $7) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.le_s - (get_local $5) - (get_local $4) - ) - ) - ) - (if - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $5) - (get_local $1) - (i32.const 0) - (get_local $3) - ) - ) - (return - (get_local $5) - ) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const -1) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 213 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.eq + if + i32.const 200 + set_local $1 + end + get_local $1 + i32.load + set_local $3 + get_local $3 + i32.eqz + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $4 + get_local $4 + i32.eqz + if + i32.const -1 + return + end + get_local $2 + tee_local $5 + i32.const 0 + tee_local $6 + get_local $5 + get_local $6 + i32.gt_s + select + tee_local $5 + get_local $4 + tee_local $6 + get_local $5 + get_local $6 + i32.lt_s + select + set_local $7 + get_local $4 + get_local $3 + i32.sub + set_local $4 + block $break|0 + get_local $7 + set_local $5 + loop $repeat|0 + get_local $5 + get_local $4 + i32.le_s + i32.eqz + br_if $break|0 + get_local $0 + get_local $5 + get_local $1 + i32.const 0 + get_local $3 + call $~lib/internal/string/compareUnsafe + i32.eqz + if + get_local $5 + return + end + get_local $5 + i32.const 1 + i32.add + set_local $5 + br $repeat|0 + unreachable + end + unreachable + end + i32.const -1 ) (func $~lib/internal/memory/memcpy (; 12 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $2) - (i32.and - (get_local $1) - (i32.const 3) - ) - (get_local $2) - ) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (block - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 16) - ) - (block - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 12) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.load - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store16 - (get_local $0) - (i32.load16_u - (get_local $1) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 2) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - (return) - ) - ) - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block $break|2 - (block $case2|2 - (block $case1|2 - (block $case0|2 - (set_local $5 - (i32.and - (get_local $0) - (i32.const 3) - ) - ) - (br_if $case0|2 - (i32.eq - (get_local $5) - (i32.const 1) - ) - ) - (br_if $case1|2 - (i32.eq - (get_local $5) - (i32.const 2) - ) - ) - (br_if $case2|2 - (i32.eq - (get_local $5) - (i32.const 3) - ) - ) - (br $break|2) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 3) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.ge_u - (get_local $2) - (i32.const 17) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 5) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 9) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 24) - ) - (i32.shl - (get_local $4) - (i32.const 8) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 13) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 24) - ) - (i32.shl - (get_local $3) - (i32.const 8) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 18) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 6) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 10) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 16) - ) - (i32.shl - (get_local $4) - (i32.const 16) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 14) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 16) - ) - (i32.shl - (get_local $3) - (i32.const 16) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (br $break|2) - ) - ) - (block - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (i32.ge_u - (get_local $2) - (i32.const 19) - ) - (block - (block - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 3) - ) - ) - ) - (i32.store - (get_local $0) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $4 - (i32.load - (i32.add - (get_local $1) - (i32.const 11) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.or - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - (i32.shl - (get_local $4) - (i32.const 24) - ) - ) - ) - (set_local $3 - (i32.load - (i32.add - (get_local $1) - (i32.const 15) - ) - ) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.or - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - (i32.shl - (get_local $3) - (i32.const 24) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 16) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 16) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - (br $break|2) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 16) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 8) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 4) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 2) - ) - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) - ) - (if - (i32.and - (get_local $2) - (i32.const 1) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $5 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $5 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - ) + block $break|0 + loop $continue|0 + get_local $2 + if (result i32) + get_local $1 + i32.const 3 + i32.and + else + get_local $2 + end + if + block + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|0 + end + end + end + get_local $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + get_local $2 + i32.const 16 + i32.ge_u + if + block + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.const 8 + i32.add + i32.load + i32.store + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.const 12 + i32.add + i32.load + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|1 + end + end + end + get_local $2 + i32.const 8 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.const 4 + i32.add + i32.load + i32.store + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + get_local $2 + i32.const 4 + i32.and + if + get_local $0 + get_local $1 + i32.load + i32.store + get_local $0 + i32.const 4 + i32.add + set_local $0 + get_local $1 + i32.const 4 + i32.add + set_local $1 + end + get_local $2 + i32.const 2 + i32.and + if + get_local $0 + get_local $1 + i32.load16_u + i32.store16 + get_local $0 + i32.const 2 + i32.add + set_local $0 + get_local $1 + i32.const 2 + i32.add + set_local $1 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + return + end + get_local $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + get_local $0 + i32.const 3 + i32.and + set_local $5 + get_local $5 + i32.const 1 + i32.eq + br_if $case0|2 + get_local $5 + i32.const 2 + i32.eq + br_if $case1|2 + get_local $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 3 + i32.sub + set_local $2 + block $break|3 + loop $continue|3 + get_local $2 + i32.const 17 + i32.ge_u + if + block + get_local $1 + i32.const 1 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 5 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 9 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 24 + i32.shr_u + get_local $4 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 13 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 24 + i32.shr_u + get_local $3 + i32.const 8 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|3 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $break|4 + loop $continue|4 + get_local $2 + i32.const 18 + i32.ge_u + if + block + get_local $1 + i32.const 2 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 6 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 10 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 16 + i32.shr_u + get_local $4 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 14 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 16 + i32.shr_u + get_local $3 + i32.const 16 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|4 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + get_local $1 + i32.load + set_local $3 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block $break|5 + loop $continue|5 + get_local $2 + i32.const 19 + i32.ge_u + if + block + get_local $1 + i32.const 3 + i32.add + i32.load + set_local $4 + get_local $0 + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 7 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 11 + i32.add + i32.load + set_local $4 + get_local $0 + i32.const 8 + i32.add + get_local $3 + i32.const 8 + i32.shr_u + get_local $4 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 15 + i32.add + i32.load + set_local $3 + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.const 8 + i32.shr_u + get_local $3 + i32.const 24 + i32.shl + i32.or + i32.store + get_local $1 + i32.const 16 + i32.add + set_local $1 + get_local $0 + i32.const 16 + i32.add + set_local $0 + get_local $2 + i32.const 16 + i32.sub + set_local $2 + end + br $continue|5 + end + end + end + br $break|2 + unreachable + end + unreachable + end + end + get_local $2 + i32.const 16 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 8 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 4 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 2 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end + get_local $2 + i32.const 1 + i32.and + if + block (result i32) + get_local $0 + tee_local $5 + i32.const 1 + i32.add + set_local $0 + get_local $5 + end + block (result i32) + get_local $1 + tee_local $5 + i32.const 1 + i32.add + set_local $1 + get_local $5 + end + i32.load8_u + i32.store8 + end ) (func $~lib/internal/memory/memmove (; 13 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return) - ) - (if - (if (result i32) - (tee_local $3 - (i32.le_u - (i32.add - (get_local $1) - (get_local $2) - ) - (get_local $0) - ) - ) - (get_local $3) - (i32.le_u - (i32.add - (get_local $0) - (get_local $2) - ) - (get_local $1) - ) - ) - (block - (call $~lib/internal/memory/memcpy - (get_local $0) - (get_local $1) - (get_local $2) - ) - (return) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $1) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|0 - (loop $continue|0 - (if - (i32.and - (get_local $0) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (i64.store - (get_local $0) - (i64.load - (get_local $1) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (get_local $2) - (block - (block - (i32.store8 - (block (result i32) - (set_local $0 - (i32.add - (tee_local $3 - (get_local $0) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - (i32.load8_u - (block (result i32) - (set_local $1 - (i32.add - (tee_local $3 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - ) - (block - (if - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.and - (get_local $0) - (i32.const 7) - ) - ) - (block - (block $break|3 - (loop $continue|3 - (if - (i32.and - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 7) - ) - (block - (block - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.ge_u - (get_local $2) - (i32.const 8) - ) - (block - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 8) - ) - ) - (i64.store - (i32.add - (get_local $0) - (get_local $2) - ) - (i64.load - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - ) - (block $break|5 - (loop $continue|5 - (if - (get_local $2) - (block - (i32.store8 - (i32.add - (get_local $0) - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (i32.load8_u - (i32.add - (get_local $1) - (get_local $2) - ) - ) - ) - (br $continue|5) - ) - ) - ) - ) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + return + end + get_local $1 + get_local $2 + i32.add + get_local $0 + i32.le_u + tee_local $3 + if (result i32) + get_local $3 + else + get_local $0 + get_local $2 + i32.add + get_local $1 + i32.le_u + end + if + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/memory/memcpy + return + end + get_local $0 + get_local $1 + i32.lt_u + if + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|0 + loop $continue|0 + get_local $0 + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $2 + i32.const 1 + i32.sub + set_local $2 + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + end + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $0 + get_local $1 + i64.load + i64.store + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + i32.const 8 + i32.add + set_local $0 + get_local $1 + i32.const 8 + i32.add + set_local $1 + end + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + get_local $2 + if + block + block (result i32) + get_local $0 + tee_local $3 + i32.const 1 + i32.add + set_local $0 + get_local $3 + end + block (result i32) + get_local $1 + tee_local $3 + i32.const 1 + i32.add + set_local $1 + get_local $3 + end + i32.load8_u + i32.store8 + get_local $2 + i32.const 1 + i32.sub + set_local $2 + end + br $continue|2 + end + end + end + else + get_local $1 + i32.const 7 + i32.and + get_local $0 + i32.const 7 + i32.and + i32.eq + if + block $break|3 + loop $continue|3 + get_local $0 + get_local $2 + i32.add + i32.const 7 + i32.and + if + block + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + end + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $2 + i32.const 8 + i32.ge_u + if + block + get_local $2 + i32.const 8 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i64.load + i64.store + end + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + get_local $2 + if + get_local $0 + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.add + get_local $1 + get_local $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end ) (func $~lib/internal/string/repeatUnsafe (; 14 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -3045,385 +2233,299 @@ (local $9 i64) (local $10 i32) (local $11 i32) - (set_local $4 - (i32.load - (get_local $2) - ) - ) - (block $break|0 - (block $case5|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $5 - (get_local $4) - ) - (br_if $case0|0 - (i32.eq - (get_local $5) - (i32.const 0) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $5) - (i32.const 1) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $5) - (i32.const 2) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $5) - (i32.const 3) - ) - ) - (br_if $case4|0 - (i32.eq - (get_local $5) - (i32.const 4) - ) - ) - (br $case5|0) - ) - (br $break|0) - ) - (block - (set_local $5 - (i32.load16_u offset=4 - (get_local $2) - ) - ) - (set_local $6 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (block $break|1 - (set_local $7 - (i32.const 0) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $7) - (get_local $3) - ) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $6) - (i32.shl - (get_local $7) - (i32.const 1) - ) - ) - (get_local $5) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $6 - (i32.load offset=4 - (get_local $2) - ) - ) - (set_local $5 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (block $break|2 - (set_local $7 - (i32.const 0) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.lt_s - (get_local $7) - (get_local $3) - ) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $5) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - (get_local $6) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $5 - (i32.load offset=4 - (get_local $2) - ) - ) - (set_local $6 - (i32.load16_u offset=8 - (get_local $2) - ) - ) - (set_local $7 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (block $break|3 - (set_local $8 - (i32.const 0) - ) - (loop $repeat|3 - (br_if $break|3 - (i32.eqz - (i32.lt_s - (get_local $8) - (get_local $3) - ) - ) - ) - (block - (i32.store offset=4 - (i32.add - (get_local $7) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $5) - ) - (i32.store16 offset=8 - (i32.add - (get_local $7) - (i32.shl - (get_local $8) - (i32.const 1) - ) - ) - (get_local $6) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.const 1) - ) - ) - (br $repeat|3) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $9 - (i64.load offset=4 - (get_local $2) - ) - ) - (set_local $7 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (block $break|4 - (set_local $6 - (i32.const 0) - ) - (loop $repeat|4 - (br_if $break|4 - (i32.eqz - (i32.lt_s - (get_local $6) - (get_local $3) - ) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $7) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - (get_local $9) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|4) - ) - ) - (br $break|0) - ) - ) - (block - (set_local $7 - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (set_local $5 - (i32.add - (get_local $2) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (block $break|5 - (block - (set_local $8 - (i32.const 0) - ) - (set_local $10 - (i32.mul - (get_local $7) - (get_local $3) - ) - ) - ) - (loop $repeat|5 - (br_if $break|5 - (i32.eqz - (i32.lt_s - (get_local $8) - (get_local $10) - ) - ) - ) - (block $~lib/memory/memory.copy|inlined.0 - (set_local $11 - (i32.add - (get_local $6) - (get_local $8) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $11) - (get_local $5) - (get_local $7) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (get_local $7) - ) - ) - (br $repeat|5) - ) - ) - (br $break|0) - ) - ) + get_local $2 + i32.load + set_local $4 + block $break|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $4 + set_local $5 + get_local $5 + i32.const 0 + i32.eq + br_if $case0|0 + get_local $5 + i32.const 1 + i32.eq + br_if $case1|0 + get_local $5 + i32.const 2 + i32.eq + br_if $case2|0 + get_local $5 + i32.const 3 + i32.eq + br_if $case3|0 + get_local $5 + i32.const 4 + i32.eq + br_if $case4|0 + br $case5|0 + end + br $break|0 + end + block + get_local $2 + i32.load16_u offset=4 + set_local $5 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $6 + block $break|1 + i32.const 0 + set_local $7 + loop $repeat|1 + get_local $7 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|1 + get_local $6 + get_local $7 + i32.const 1 + i32.shl + i32.add + get_local $5 + i32.store16 offset=4 + get_local $7 + i32.const 1 + i32.add + set_local $7 + br $repeat|1 + unreachable + end + unreachable + end + br $break|0 + unreachable + end + unreachable + end + block + get_local $2 + i32.load offset=4 + set_local $6 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $5 + block $break|2 + i32.const 0 + set_local $7 + loop $repeat|2 + get_local $7 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|2 + get_local $5 + get_local $7 + i32.const 2 + i32.shl + i32.add + get_local $6 + i32.store offset=4 + get_local $7 + i32.const 1 + i32.add + set_local $7 + br $repeat|2 + unreachable + end + unreachable + end + br $break|0 + unreachable + end + unreachable + end + block + get_local $2 + i32.load offset=4 + set_local $5 + get_local $2 + i32.load16_u offset=8 + set_local $6 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $7 + block $break|3 + i32.const 0 + set_local $8 + loop $repeat|3 + get_local $8 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|3 + block + get_local $7 + get_local $8 + i32.const 2 + i32.shl + i32.add + get_local $5 + i32.store offset=4 + get_local $7 + get_local $8 + i32.const 1 + i32.shl + i32.add + get_local $6 + i32.store16 offset=8 + end + get_local $8 + i32.const 1 + i32.add + set_local $8 + br $repeat|3 + unreachable + end + unreachable + end + br $break|0 + unreachable + end + unreachable + end + block + get_local $2 + i64.load offset=4 + set_local $9 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $7 + block $break|4 + i32.const 0 + set_local $6 + loop $repeat|4 + get_local $6 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|4 + get_local $7 + get_local $6 + i32.const 3 + i32.shl + i32.add + get_local $9 + i64.store offset=4 + get_local $6 + i32.const 1 + i32.add + set_local $6 + br $repeat|4 + unreachable + end + unreachable + end + br $break|0 + unreachable + end + unreachable + end + block + get_local $4 + i32.const 1 + i32.shl + set_local $7 + get_local $0 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $6 + get_local $2 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $5 + block $break|5 + block + i32.const 0 + set_local $8 + get_local $7 + get_local $3 + i32.mul + set_local $10 + end + loop $repeat|5 + get_local $8 + get_local $10 + i32.lt_s + i32.eqz + br_if $break|5 + block $~lib/memory/memory.copy|inlined.0 + get_local $6 + get_local $8 + i32.add + set_local $11 + get_local $11 + get_local $5 + get_local $7 + call $~lib/internal/memory/memmove + end + get_local $8 + get_local $7 + i32.add + set_local $8 + br $repeat|5 + unreachable + end + unreachable + end + br $break|0 + unreachable + end + unreachable + end ) (func $~lib/internal/string/copyUnsafe (; 15 ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (block $~lib/memory/memory.copy|inlined.1 - (set_local $5 - (i32.add - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (set_local $6 - (i32.add - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $5) - (get_local $6) - (get_local $7) - ) - ) + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $5 + get_local $2 + get_local $3 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $6 + get_local $4 + i32.const 1 + i32.shl + set_local $7 + get_local $5 + get_local $6 + get_local $7 + call $~lib/internal/memory/memmove ) (func $~lib/string/String#padStart (; 16 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3433,147 +2535,114 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 360) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load - (get_local $2) - ) - ) - (if - (if (result i32) - (tee_local $5 - (i32.lt_s - (get_local $1) - (get_local $3) - ) - ) - (get_local $5) - (i32.eqz - (get_local $4) - ) - ) - (return - (get_local $0) - ) - ) - (set_local $6 - (i32.sub - (get_local $1) - (get_local $3) - ) - ) - (set_local $7 - (call $~lib/internal/string/allocateUnsafe - (get_local $1) - ) - ) - (if - (i32.gt_s - (get_local $6) - (get_local $4) - ) - (block - (set_local $5 - (i32.div_s - (i32.sub - (get_local $6) - (i32.const 1) - ) - (get_local $4) - ) - ) - (set_local $8 - (i32.mul - (get_local $5) - (get_local $4) - ) - ) - (set_local $9 - (i32.sub - (get_local $6) - (get_local $8) - ) - ) - (call $~lib/internal/string/repeatUnsafe - (get_local $7) - (i32.const 0) - (get_local $2) - (get_local $5) - ) - (if - (get_local $9) - (call $~lib/internal/string/copyUnsafe - (get_local $7) - (get_local $8) - (get_local $2) - (i32.const 0) - (get_local $9) - ) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $7) - (i32.const 0) - (get_local $2) - (i32.const 0) - (get_local $6) - ) - ) - (if - (get_local $3) - (call $~lib/internal/string/copyUnsafe - (get_local $7) - (get_local $6) - (get_local $0) - (i32.const 0) - (get_local $3) - ) - ) - (get_local $7) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 360 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.load + set_local $4 + get_local $1 + get_local $3 + i32.lt_s + tee_local $5 + if (result i32) + get_local $5 + else + get_local $4 + i32.eqz + end + if + get_local $0 + return + end + get_local $1 + get_local $3 + i32.sub + set_local $6 + get_local $1 + call $~lib/internal/string/allocateUnsafe + set_local $7 + get_local $6 + get_local $4 + i32.gt_s + if + get_local $6 + i32.const 1 + i32.sub + get_local $4 + i32.div_s + set_local $5 + get_local $5 + get_local $4 + i32.mul + set_local $8 + get_local $6 + get_local $8 + i32.sub + set_local $9 + get_local $7 + i32.const 0 + get_local $2 + get_local $5 + call $~lib/internal/string/repeatUnsafe + get_local $9 + if + get_local $7 + get_local $8 + get_local $2 + i32.const 0 + get_local $9 + call $~lib/internal/string/copyUnsafe + end + else + get_local $7 + i32.const 0 + get_local $2 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + end + get_local $3 + if + get_local $7 + get_local $6 + get_local $0 + i32.const 0 + get_local $3 + call $~lib/internal/string/copyUnsafe + end + get_local $7 ) (func $~lib/string/String#padStart|trampoline (; 17 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 248) - ) - ) - (call $~lib/string/String#padStart - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 248 + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/string/String#padStart ) (func $~lib/string/String#padEnd (; 18 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3583,150 +2652,116 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 380) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load - (get_local $2) - ) - ) - (if - (if (result i32) - (tee_local $5 - (i32.lt_s - (get_local $1) - (get_local $3) - ) - ) - (get_local $5) - (i32.eqz - (get_local $4) - ) - ) - (return - (get_local $0) - ) - ) - (set_local $6 - (i32.sub - (get_local $1) - (get_local $3) - ) - ) - (set_local $7 - (call $~lib/internal/string/allocateUnsafe - (get_local $1) - ) - ) - (if - (get_local $3) - (call $~lib/internal/string/copyUnsafe - (get_local $7) - (i32.const 0) - (get_local $0) - (i32.const 0) - (get_local $3) - ) - ) - (if - (i32.gt_s - (get_local $6) - (get_local $4) - ) - (block - (set_local $5 - (i32.div_s - (i32.sub - (get_local $6) - (i32.const 1) - ) - (get_local $4) - ) - ) - (set_local $8 - (i32.mul - (get_local $5) - (get_local $4) - ) - ) - (set_local $9 - (i32.sub - (get_local $6) - (get_local $8) - ) - ) - (call $~lib/internal/string/repeatUnsafe - (get_local $7) - (get_local $3) - (get_local $2) - (get_local $5) - ) - (if - (get_local $9) - (call $~lib/internal/string/copyUnsafe - (get_local $7) - (i32.add - (get_local $8) - (get_local $3) - ) - (get_local $2) - (i32.const 0) - (get_local $9) - ) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $7) - (get_local $3) - (get_local $2) - (i32.const 0) - (get_local $6) - ) - ) - (get_local $7) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 380 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + set_local $3 + get_local $2 + i32.load + set_local $4 + get_local $1 + get_local $3 + i32.lt_s + tee_local $5 + if (result i32) + get_local $5 + else + get_local $4 + i32.eqz + end + if + get_local $0 + return + end + get_local $1 + get_local $3 + i32.sub + set_local $6 + get_local $1 + call $~lib/internal/string/allocateUnsafe + set_local $7 + get_local $3 + if + get_local $7 + i32.const 0 + get_local $0 + i32.const 0 + get_local $3 + call $~lib/internal/string/copyUnsafe + end + get_local $6 + get_local $4 + i32.gt_s + if + get_local $6 + i32.const 1 + i32.sub + get_local $4 + i32.div_s + set_local $5 + get_local $5 + get_local $4 + i32.mul + set_local $8 + get_local $6 + get_local $8 + i32.sub + set_local $9 + get_local $7 + get_local $3 + get_local $2 + get_local $5 + call $~lib/internal/string/repeatUnsafe + get_local $9 + if + get_local $7 + get_local $8 + get_local $3 + i32.add + get_local $2 + i32.const 0 + get_local $9 + call $~lib/internal/string/copyUnsafe + end + else + get_local $7 + get_local $3 + get_local $2 + i32.const 0 + get_local $6 + call $~lib/internal/string/copyUnsafe + end + get_local $7 ) (func $~lib/string/String#padEnd|trampoline (; 19 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 248) - ) - ) - (call $~lib/string/String#padEnd - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 248 + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/string/String#padEnd ) (func $~lib/string/String#lastIndexOf (; 20 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3734,149 +2769,113 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 229) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (i32.const 200) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const -1) - ) - ) - (set_local $7 - (select - (tee_local $5 - (select - (tee_local $5 - (get_local $2) - ) - (tee_local $6 - (i32.const 0) - ) - (i32.gt_s - (get_local $5) - (get_local $6) - ) - ) - ) - (tee_local $6 - (i32.sub - (get_local $3) - (get_local $4) - ) - ) - (i32.lt_s - (get_local $5) - (get_local $6) - ) - ) - ) - (block $break|0 - (set_local $5 - (get_local $7) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $5) - (get_local $1) - (i32.const 0) - (get_local $4) - ) - ) - (return - (get_local $5) - ) - ) - (set_local $5 - (i32.sub - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const -1) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 229 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.eq + if + i32.const 200 + set_local $1 + end + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.load + set_local $4 + get_local $4 + i32.eqz + if + get_local $3 + return + end + get_local $3 + i32.eqz + if + i32.const -1 + return + end + get_local $2 + tee_local $5 + i32.const 0 + tee_local $6 + get_local $5 + get_local $6 + i32.gt_s + select + tee_local $5 + get_local $3 + get_local $4 + i32.sub + tee_local $6 + get_local $5 + get_local $6 + i32.lt_s + select + set_local $7 + block $break|0 + get_local $7 + set_local $5 + loop $repeat|0 + get_local $5 + i32.const 0 + i32.ge_s + i32.eqz + br_if $break|0 + get_local $0 + get_local $5 + get_local $1 + i32.const 0 + get_local $4 + call $~lib/internal/string/compareUnsafe + i32.eqz + if + get_local $5 + return + end + get_local $5 + i32.const 1 + i32.sub + set_local $5 + br $repeat|0 + unreachable + end + unreachable + end + i32.const -1 ) (func $~lib/string/String#lastIndexOf|trampoline (; 21 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (get_global $~lib/builtins/i32.MAX_VALUE) - ) - ) - (call $~lib/string/String#lastIndexOf - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + get_global $~lib/builtins/i32.MAX_VALUE + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/string/String#lastIndexOf ) (func $std/string/getString (; 22 ;) (type $i) (result i32) - (get_global $std/string/str) + get_global $std/string/str ) (func $~lib/internal/string/parse (; 23 ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) (local $2 i32) @@ -3885,393 +2884,304 @@ (local $5 f64) (local $6 i32) (local $7 f64) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (set_local $3 - (get_local $0) - ) - (set_local $4 - (i32.load16_u offset=4 - (get_local $3) - ) - ) - (if - (i32.eq - (get_local $4) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - (block - (if - (i32.eqz - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (set_local $4 - (i32.load16_u offset=4 - (tee_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (set_local $5 - (f64.const -1) - ) - ) - (if - (i32.eq - (get_local $4) - (get_global $~lib/internal/string/CharCode.PLUS) - ) - (block - (if - (i32.eqz - (tee_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (set_local $4 - (i32.load16_u offset=4 - (tee_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - ) - (set_local $5 - (f64.const 1) - ) - ) - (set_local $5 - (f64.const 1) - ) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (if - (if (result i32) - (tee_local $6 - (i32.eq - (get_local $4) - (get_global $~lib/internal/string/CharCode._0) - ) - ) - (i32.gt_s - (get_local $2) - (i32.const 2) - ) - (get_local $6) - ) - (block $break|0 - (block $case6|0 - (block $case5|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $6 - (i32.load16_u offset=4 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - (br_if $case0|0 - (i32.eq - (get_local $6) - (get_global $~lib/internal/string/CharCode.B) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $6) - (get_global $~lib/internal/string/CharCode.b) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $6) - (get_global $~lib/internal/string/CharCode.O) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $6) - (get_global $~lib/internal/string/CharCode.o) - ) - ) - (br_if $case4|0 - (i32.eq - (get_local $6) - (get_global $~lib/internal/string/CharCode.X) - ) - ) - (br_if $case5|0 - (i32.eq - (get_local $6) - (get_global $~lib/internal/string/CharCode.x) - ) - ) - (br $case6|0) - ) - ) - (block - (set_local $3 - (i32.add - (get_local $3) - (i32.const 4) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (set_local $1 - (i32.const 2) - ) - (br $break|0) - ) - ) - ) - (block - (set_local $3 - (i32.add - (get_local $3) - (i32.const 4) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (set_local $1 - (i32.const 8) - ) - (br $break|0) - ) - ) - ) - (block - (set_local $3 - (i32.add - (get_local $3) - (i32.const 4) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (set_local $1 - (i32.const 16) - ) - (br $break|0) - ) - ) - (set_local $1 - (i32.const 10) - ) - ) - (set_local $1 - (i32.const 10) - ) - ) - (if - (if (result i32) - (tee_local $6 - (i32.lt_s - (get_local $1) - (i32.const 2) - ) - ) - (get_local $6) - (i32.gt_s - (get_local $1) - (i32.const 36) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - ) - (set_local $7 - (f64.const 0) - ) - (block $break|1 - (loop $continue|1 - (if - (block (result i32) - (set_local $2 - (i32.sub - (tee_local $6 - (get_local $2) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block - (block - (set_local $4 - (i32.load16_u offset=4 - (get_local $3) - ) - ) - (if - (if (result i32) - (tee_local $6 - (i32.ge_s - (get_local $4) - (get_global $~lib/internal/string/CharCode._0) - ) - ) - (i32.le_s - (get_local $4) - (get_global $~lib/internal/string/CharCode._9) - ) - (get_local $6) - ) - (set_local $4 - (i32.sub - (get_local $4) - (get_global $~lib/internal/string/CharCode._0) - ) - ) - (if - (if (result i32) - (tee_local $6 - (i32.ge_s - (get_local $4) - (get_global $~lib/internal/string/CharCode.A) - ) - ) - (i32.le_s - (get_local $4) - (get_global $~lib/internal/string/CharCode.Z) - ) - (get_local $6) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.sub - (get_global $~lib/internal/string/CharCode.A) - (i32.const 10) - ) - ) - ) - (if - (if (result i32) - (tee_local $6 - (i32.ge_s - (get_local $4) - (get_global $~lib/internal/string/CharCode.a) - ) - ) - (i32.le_s - (get_local $4) - (get_global $~lib/internal/string/CharCode.z) - ) - (get_local $6) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.sub - (get_global $~lib/internal/string/CharCode.a) - (i32.const 10) - ) - ) - ) - (br $break|1) - ) - ) - ) - (if - (i32.ge_s - (get_local $4) - (get_local $1) - ) - (br $break|1) - ) - (set_local $7 - (f64.add - (f64.mul - (get_local $7) - (f64.convert_s/i32 - (get_local $1) - ) - ) - (f64.convert_s/i32 - (get_local $4) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (f64.mul - (get_local $5) - (get_local $7) - ) + get_local $0 + i32.load + set_local $2 + get_local $2 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $0 + set_local $3 + get_local $3 + i32.load16_u offset=4 + set_local $4 + get_local $4 + get_global $~lib/internal/string/CharCode.MINUS + i32.eq + if + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $3 + i32.const 2 + i32.add + tee_local $3 + i32.load16_u offset=4 + set_local $4 + f64.const -1 + set_local $5 + else + get_local $4 + get_global $~lib/internal/string/CharCode.PLUS + i32.eq + if + get_local $2 + i32.const 1 + i32.sub + tee_local $2 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $3 + i32.const 2 + i32.add + tee_local $3 + i32.load16_u offset=4 + set_local $4 + f64.const 1 + set_local $5 + else + f64.const 1 + set_local $5 + end + end + get_local $1 + i32.eqz + if + get_local $4 + get_global $~lib/internal/string/CharCode._0 + i32.eq + tee_local $6 + if (result i32) + get_local $2 + i32.const 2 + i32.gt_s + else + get_local $6 + end + if + block $break|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $3 + i32.const 2 + i32.add + i32.load16_u offset=4 + set_local $6 + get_local $6 + get_global $~lib/internal/string/CharCode.B + i32.eq + br_if $case0|0 + get_local $6 + get_global $~lib/internal/string/CharCode.b + i32.eq + br_if $case1|0 + get_local $6 + get_global $~lib/internal/string/CharCode.O + i32.eq + br_if $case2|0 + get_local $6 + get_global $~lib/internal/string/CharCode.o + i32.eq + br_if $case3|0 + get_local $6 + get_global $~lib/internal/string/CharCode.X + i32.eq + br_if $case4|0 + get_local $6 + get_global $~lib/internal/string/CharCode.x + i32.eq + br_if $case5|0 + br $case6|0 + end + end + block + get_local $3 + i32.const 4 + i32.add + set_local $3 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + i32.const 2 + set_local $1 + br $break|0 + unreachable + end + unreachable + end + end + block + get_local $3 + i32.const 4 + i32.add + set_local $3 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + i32.const 8 + set_local $1 + br $break|0 + unreachable + end + unreachable + end + end + block + get_local $3 + i32.const 4 + i32.add + set_local $3 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + i32.const 16 + set_local $1 + br $break|0 + unreachable + end + unreachable + end + i32.const 10 + set_local $1 + end + else + i32.const 10 + set_local $1 + end + else + get_local $1 + i32.const 2 + i32.lt_s + tee_local $6 + if (result i32) + get_local $6 + else + get_local $1 + i32.const 36 + i32.gt_s + end + if + f64.const nan:0x8000000000000 + return + end + end + f64.const 0 + set_local $7 + block $break|1 + loop $continue|1 + block (result i32) + get_local $2 + tee_local $6 + i32.const 1 + i32.sub + set_local $2 + get_local $6 + end + if + block + get_local $3 + i32.load16_u offset=4 + set_local $4 + get_local $4 + get_global $~lib/internal/string/CharCode._0 + i32.ge_s + tee_local $6 + if (result i32) + get_local $4 + get_global $~lib/internal/string/CharCode._9 + i32.le_s + else + get_local $6 + end + if + get_local $4 + get_global $~lib/internal/string/CharCode._0 + i32.sub + set_local $4 + else + get_local $4 + get_global $~lib/internal/string/CharCode.A + i32.ge_s + tee_local $6 + if (result i32) + get_local $4 + get_global $~lib/internal/string/CharCode.Z + i32.le_s + else + get_local $6 + end + if + get_local $4 + get_global $~lib/internal/string/CharCode.A + i32.const 10 + i32.sub + i32.sub + set_local $4 + else + get_local $4 + get_global $~lib/internal/string/CharCode.a + i32.ge_s + tee_local $6 + if (result i32) + get_local $4 + get_global $~lib/internal/string/CharCode.z + i32.le_s + else + get_local $6 + end + if + get_local $4 + get_global $~lib/internal/string/CharCode.a + i32.const 10 + i32.sub + i32.sub + set_local $4 + else + br $break|1 + end + end + end + get_local $4 + get_local $1 + i32.ge_s + if + br $break|1 + end + get_local $7 + get_local $1 + f64.convert_s/i32 + f64.mul + get_local $4 + f64.convert_s/i32 + f64.add + set_local $7 + get_local $3 + i32.const 2 + i32.add + set_local $3 + end + br $continue|1 + end + end + end + get_local $5 + get_local $7 + f64.mul ) (func $~lib/string/parseInt (; 24 ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) - (call $~lib/internal/string/parse - (get_local $0) - (get_local $1) - ) + get_local $0 + get_local $1 + call $~lib/internal/string/parse ) (func $~lib/string/parseFloat (; 25 ;) (type $iF) (param $0 i32) (result f64) (local $1 i32) @@ -4281,371 +3191,269 @@ (local $5 f64) (local $6 i32) (local $7 f64) - (set_local $1 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eqz - (get_local $1) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (set_local $2 - (get_local $0) - ) - (set_local $3 - (i32.load16_u offset=4 - (get_local $2) - ) - ) - (if - (i32.eq - (get_local $3) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (set_local $3 - (i32.load16_u offset=4 - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - (set_local $4 - (f64.const -1) - ) - ) - (if - (i32.eq - (get_local $3) - (get_global $~lib/internal/string/CharCode.PLUS) - ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.sub - (get_local $1) - (i32.const 1) - ) - ) - ) - (return - (f64.const nan:0x8000000000000) - ) - ) - (set_local $3 - (i32.load16_u offset=4 - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - (set_local $4 - (f64.const 1) - ) - ) - (set_local $4 - (f64.const 1) - ) - ) - ) - (set_local $5 - (f64.const 0) - ) - (block $break|0 - (loop $continue|0 - (if - (block (result i32) - (set_local $1 - (i32.sub - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block - (block - (set_local $3 - (i32.load16_u offset=4 - (get_local $2) - ) - ) - (if - (i32.eq - (get_local $3) - (get_global $~lib/internal/string/CharCode.DOT) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 2) - ) - ) - (set_local $7 - (f64.const 0.1) - ) - (block $break|1 - (loop $continue|1 - (if - (block (result i32) - (set_local $1 - (i32.sub - (tee_local $6 - (get_local $1) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block - (block - (set_local $3 - (i32.load16_u offset=4 - (get_local $2) - ) - ) - (if - (if (result i32) - (tee_local $6 - (i32.eq - (get_local $3) - (get_global $~lib/internal/string/CharCode.E) - ) - ) - (get_local $6) - (i32.eq - (get_local $3) - (get_global $~lib/internal/string/CharCode.e) - ) - ) - (if - (i32.eqz - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 626) - (i32.const 10) - ) - (unreachable) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (get_global $~lib/internal/string/CharCode._0) - ) - ) - (if - (i32.gt_u - (get_local $3) - (i32.const 9) - ) - (br $break|1) - ) - (set_local $5 - (f64.add - (get_local $5) - (f64.mul - (f64.convert_s/i32 - (get_local $3) - ) - (get_local $7) - ) - ) - ) - (set_local $7 - (f64.mul - (get_local $7) - (f64.const 0.1) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 2) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (br $break|0) - ) - ) - (set_local $3 - (i32.sub - (get_local $3) - (get_global $~lib/internal/string/CharCode._0) - ) - ) - (if - (i32.ge_u - (get_local $3) - (i32.const 10) - ) - (br $break|0) - ) - (set_local $5 - (f64.add - (f64.mul - (get_local $5) - (f64.const 10) - ) - (f64.convert_s/i32 - (get_local $3) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 2) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (f64.mul - (get_local $4) - (get_local $5) - ) + get_local $0 + i32.load + set_local $1 + get_local $1 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $0 + set_local $2 + get_local $2 + i32.load16_u offset=4 + set_local $3 + get_local $3 + get_global $~lib/internal/string/CharCode.MINUS + i32.eq + if + get_local $1 + i32.const 1 + i32.sub + tee_local $1 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $2 + i32.const 2 + i32.add + tee_local $2 + i32.load16_u offset=4 + set_local $3 + f64.const -1 + set_local $4 + else + get_local $3 + get_global $~lib/internal/string/CharCode.PLUS + i32.eq + if + get_local $1 + i32.const 1 + i32.sub + tee_local $1 + i32.eqz + if + f64.const nan:0x8000000000000 + return + end + get_local $2 + i32.const 2 + i32.add + tee_local $2 + i32.load16_u offset=4 + set_local $3 + f64.const 1 + set_local $4 + else + f64.const 1 + set_local $4 + end + end + f64.const 0 + set_local $5 + block $break|0 + loop $continue|0 + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.sub + set_local $1 + get_local $6 + end + if + block + get_local $2 + i32.load16_u offset=4 + set_local $3 + get_local $3 + get_global $~lib/internal/string/CharCode.DOT + i32.eq + if + get_local $2 + i32.const 2 + i32.add + set_local $2 + f64.const 0.1 + set_local $7 + block $break|1 + loop $continue|1 + block (result i32) + get_local $1 + tee_local $6 + i32.const 1 + i32.sub + set_local $1 + get_local $6 + end + if + block + get_local $2 + i32.load16_u offset=4 + set_local $3 + get_local $3 + get_global $~lib/internal/string/CharCode.E + i32.eq + tee_local $6 + if (result i32) + get_local $6 + else + get_local $3 + get_global $~lib/internal/string/CharCode.e + i32.eq + end + if + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 626 + i32.const 10 + call $~lib/env/abort + unreachable + end + end + get_local $3 + get_global $~lib/internal/string/CharCode._0 + i32.sub + set_local $3 + get_local $3 + i32.const 9 + i32.gt_u + if + br $break|1 + end + get_local $5 + get_local $3 + f64.convert_s/i32 + get_local $7 + f64.mul + f64.add + set_local $5 + get_local $7 + f64.const 0.1 + f64.mul + set_local $7 + get_local $2 + i32.const 2 + i32.add + set_local $2 + end + br $continue|1 + end + end + end + br $break|0 + end + get_local $3 + get_global $~lib/internal/string/CharCode._0 + i32.sub + set_local $3 + get_local $3 + i32.const 10 + i32.ge_u + if + br $break|0 + end + get_local $5 + f64.const 10 + f64.mul + get_local $3 + f64.convert_s/i32 + f64.add + set_local $5 + get_local $2 + i32.const 2 + i32.add + set_local $2 + end + br $continue|0 + end + end + end + get_local $4 + get_local $5 + f64.mul ) (func $~lib/string/String#concat (; 26 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 110) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (i32.const 200) - ) - ) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $1) - ) - ) - (set_local $4 - (i32.add - (get_local $2) - (get_local $3) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (return - (i32.const 256) - ) - ) - (set_local $5 - (call $~lib/internal/string/allocateUnsafe - (get_local $4) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $5) - (i32.const 0) - (get_local $0) - (i32.const 0) - (get_local $2) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $5) - (get_local $2) - (get_local $1) - (i32.const 0) - (get_local $3) - ) - (get_local $5) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 110 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.eq + if + i32.const 200 + set_local $1 + end + get_local $0 + i32.load + set_local $2 + get_local $1 + i32.load + set_local $3 + get_local $2 + get_local $3 + i32.add + set_local $4 + get_local $4 + i32.const 0 + i32.eq + if + i32.const 256 + return + end + get_local $4 + call $~lib/internal/string/allocateUnsafe + set_local $5 + get_local $5 + i32.const 0 + get_local $0 + i32.const 0 + get_local $2 + call $~lib/internal/string/copyUnsafe + get_local $5 + get_local $2 + get_local $1 + i32.const 0 + get_local $3 + call $~lib/internal/string/copyUnsafe + get_local $5 ) (func $~lib/string/String.__concat (; 27 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (if - (i32.eqz - (get_local $0) - ) - (set_local $0 - (i32.const 200) - ) - ) - (call $~lib/string/String#concat - (get_local $0) - (get_local $1) - ) + get_local $0 + i32.eqz + if + i32.const 200 + set_local $0 + end + get_local $0 + get_local $1 + call $~lib/string/String#concat ) (func $~lib/string/String.__ne (; 28 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.eqz - (call $~lib/string/String.__eq - (get_local $0) - (get_local $1) - ) - ) + get_local $0 + get_local $1 + call $~lib/string/String.__eq + i32.eqz ) (func $~lib/string/String.__gt (; 29 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4653,83 +3461,64 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (i32.const 1) - ) - ) - (set_local $6 - (select - (tee_local $2 - (get_local $3) - ) - (tee_local $5 - (get_local $4) - ) - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - ) - (i32.gt_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $0 + i32.const 0 + i32.eq + end + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.load + set_local $4 + get_local $3 + i32.eqz + if + i32.const 0 + return + end + get_local $4 + i32.eqz + if + i32.const 1 + return + end + get_local $3 + tee_local $2 + get_local $4 + tee_local $5 + get_local $2 + get_local $5 + i32.lt_s + select + set_local $6 + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.gt_s ) (func $~lib/string/String.__gte (; 30 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4737,85 +3526,64 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.eqz - (get_local $4) - ) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (i32.const 1) - ) - ) - (set_local $6 - (select - (tee_local $2 - (get_local $3) - ) - (tee_local $5 - (get_local $4) - ) - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - ) - (i32.ge_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.const 0 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.load + set_local $4 + get_local $3 + i32.eqz + if + get_local $4 + i32.eqz + return + end + get_local $4 + i32.eqz + if + i32.const 1 + return + end + get_local $3 + tee_local $2 + get_local $4 + tee_local $5 + get_local $2 + get_local $5 + i32.lt_s + select + set_local $6 + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.ge_s ) (func $~lib/string/String.__lt (; 31 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4823,83 +3591,64 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 1) - ) - ) - (set_local $6 - (select - (tee_local $2 - (get_local $3) - ) - (tee_local $5 - (get_local $4) - ) - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - ) - (i32.lt_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $0 + i32.const 0 + i32.eq + end + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.load + set_local $4 + get_local $4 + i32.eqz + if + i32.const 0 + return + end + get_local $3 + i32.eqz + if + i32.const 1 + return + end + get_local $3 + tee_local $2 + get_local $4 + tee_local $5 + get_local $2 + get_local $5 + i32.lt_s + select + set_local $6 + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.lt_s ) (func $~lib/string/String.__lte (; 32 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4907,699 +3656,513 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.load - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (i32.eqz - (get_local $3) - ) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 1) - ) - ) - (set_local $6 - (select - (tee_local $2 - (get_local $3) - ) - (tee_local $5 - (get_local $4) - ) - (i32.lt_s - (get_local $2) - (get_local $5) - ) - ) - ) - (i32.le_s - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $6) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.const 0 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $1 + i32.load + set_local $4 + get_local $4 + i32.eqz + if + get_local $3 + i32.eqz + return + end + get_local $3 + i32.eqz + if + i32.const 1 + return + end + get_local $3 + tee_local $2 + get_local $4 + tee_local $5 + get_local $2 + get_local $5 + i32.lt_s + select + set_local $6 + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $6 + call $~lib/internal/string/compareUnsafe + i32.const 0 + i32.le_s ) (func $~lib/string/String#repeat (; 33 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 400) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if - (if (result i32) - (tee_local $3 - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - ) - (get_local $3) - (i32.gt_s - (i32.mul - (get_local $2) - (get_local $1) - ) - (i32.shl - (i32.const 1) - (i32.const 28) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 405) - (i32.const 6) - ) - (unreachable) - ) - ) - (if - (if (result i32) - (tee_local $3 - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (get_local $3) - (i32.eqz - (get_local $2) - ) - ) - (return - (i32.const 256) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $4 - (call $~lib/internal/string/allocateUnsafe - (i32.mul - (get_local $2) - (get_local $1) - ) - ) - ) - (call $~lib/internal/string/repeatUnsafe - (get_local $4) - (i32.const 0) - (get_local $0) - (get_local $1) - ) - (get_local $4) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 400 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + set_local $2 + get_local $1 + i32.const 0 + i32.lt_s + tee_local $3 + if (result i32) + get_local $3 + else + get_local $2 + get_local $1 + i32.mul + i32.const 1 + i32.const 28 + i32.shl + i32.gt_s + end + if + i32.const 0 + i32.const 80 + i32.const 405 + i32.const 6 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.eq + tee_local $3 + if (result i32) + get_local $3 + else + get_local $2 + i32.eqz + end + if + i32.const 256 + return + end + get_local $1 + i32.const 1 + i32.eq + if + get_local $0 + return + end + get_local $2 + get_local $1 + i32.mul + call $~lib/internal/string/allocateUnsafe + set_local $4 + get_local $4 + i32.const 0 + get_local $0 + get_local $1 + call $~lib/internal/string/repeatUnsafe + get_local $4 ) (func $~lib/internal/arraybuffer/computeSize (; 34 ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.sub - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 35 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 808) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block $~lib/memory/memory.allocate|inlined.1 (result i32) - (set_local $2 - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.1 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 808 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.1 (result i32) + get_local $0 + call $~lib/internal/arraybuffer/computeSize + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.1 + end + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/memory/memory.allocate (; 36 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $~lib/internal/memory/memset (; 37 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/array/Array#constructor (; 38 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 776) - (i32.const 37) - (i32.const 39) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $4 - (call $~lib/memory/memory.allocate - (i32.const 8) - ) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - (get_local $4) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 776 + i32.const 37 + i32.const 39 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 8 + call $~lib/memory/memory.allocate + set_local $4 + get_local $4 + i32.const 0 + i32.store + get_local $4 + i32.const 0 + i32.store offset=4 + get_local $4 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + block $~lib/memory/memory.fill|inlined.0 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/array/Array#__unchecked_set (; 39 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 ) (func $~lib/internal/arraybuffer/reallocateUnsafe (; 40 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -5607,245 +4170,174 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if - (i32.gt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.eqz - (i32.le_s - (get_local $1) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 808) - (i32.const 37) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.le_s - (get_local $1) - (i32.sub - (call $~lib/internal/arraybuffer/computeSize - (get_local $2) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $1) - ) - (block $~lib/memory/memory.fill|inlined.1 - (set_local $3 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (get_local $2) - ) - ) - (set_local $4 - (i32.const 0) - ) - (set_local $5 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memset - (get_local $3) - (get_local $4) - (get_local $5) - ) - ) - ) - (block - (set_local $5 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (block $~lib/memory/memory.copy|inlined.2 - (set_local $4 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $3 - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $4) - (get_local $3) - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.2 - (set_local $3 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (get_local $2) - ) - ) - (set_local $4 - (i32.const 0) - ) - (set_local $6 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memset - (get_local $3) - (get_local $4) - (get_local $6) - ) - ) - (return - (get_local $5) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (get_local $2) - ) - (block - (if - (i32.eqz - (i32.ge_s - (get_local $1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 808) - (i32.const 61) - (i32.const 4) - ) - (unreachable) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - ) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.gt_s + if + get_local $1 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_s + i32.eqz + if + i32.const 0 + i32.const 808 + i32.const 37 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $1 + get_local $2 + call $~lib/internal/arraybuffer/computeSize + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.sub + i32.le_s + if + get_local $0 + get_local $1 + i32.store + block $~lib/memory/memory.fill|inlined.1 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $2 + i32.add + set_local $3 + i32.const 0 + set_local $4 + get_local $1 + get_local $2 + i32.sub + set_local $5 + get_local $3 + get_local $4 + get_local $5 + call $~lib/internal/memory/memset + end + else + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $5 + block $~lib/memory/memory.copy|inlined.2 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $3 + get_local $4 + get_local $3 + get_local $2 + call $~lib/internal/memory/memmove + end + block $~lib/memory/memory.fill|inlined.2 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + get_local $2 + i32.add + set_local $3 + i32.const 0 + set_local $4 + get_local $1 + get_local $2 + i32.sub + set_local $6 + get_local $3 + get_local $4 + get_local $6 + call $~lib/internal/memory/memset + end + get_local $5 + return + end + else + get_local $1 + get_local $2 + i32.lt_s + if + get_local $1 + i32.const 0 + i32.ge_s + i32.eqz + if + i32.const 0 + i32.const 808 + i32.const 61 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + get_local $1 + i32.store + end + end + get_local $0 ) (func $~lib/array/Array#push (; 41 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.load - (get_local $3) - ) - (i32.const 2) - ) - ) - (set_local $5 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (if - (i32.ge_u - (get_local $2) - (get_local $4) - ) - (block - (if - (i32.ge_u - (get_local $2) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 776) - (i32.const 174) - (i32.const 42) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/reallocateUnsafe - (get_local $3) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - ) - ) - (i32.store offset=4 - (get_local $0) - (get_local $5) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.2 - (i32.store offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (get_local $1) - ) - ) - (get_local $5) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $0 + i32.load + set_local $3 + get_local $3 + i32.load + i32.const 2 + i32.shr_u + set_local $4 + get_local $2 + i32.const 1 + i32.add + set_local $5 + get_local $2 + get_local $4 + i32.ge_u + if + get_local $2 + i32.const 268435454 + i32.ge_u + if + i32.const 0 + i32.const 776 + i32.const 174 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $3 + get_local $5 + i32.const 2 + i32.shl + call $~lib/internal/arraybuffer/reallocateUnsafe + set_local $3 + get_local $0 + get_local $3 + i32.store + end + get_local $0 + get_local $5 + i32.store offset=4 + block $~lib/internal/arraybuffer/storeUnsafe|inlined.2 + get_local $3 + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store offset=8 + end + get_local $5 ) (func $~lib/string/String#split (; 42 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5860,484 +4352,356 @@ (local $12 i32) (local $13 i32) (local $14 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 417) - (i32.const 4) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (return - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 0) - ) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 0) - ) - (return - (block (result i32) - (set_local $3 - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 1) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $3) - (i32.const 0) - (get_local $0) - ) - (get_local $3) - ) - ) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $5 - (i32.load - (get_local $1) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (set_local $2 - (get_global $~lib/builtins/i32.MAX_VALUE) - ) - ) - (if - (i32.eqz - (get_local $5) - ) - (block - (if - (i32.eqz - (get_local $4) - ) - (return - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 0) - ) - ) - ) - (set_local $4 - (select - (tee_local $3 - (get_local $4) - ) - (tee_local $6 - (get_local $2) - ) - (i32.lt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (set_local $3 - (call $~lib/array/Array#constructor - (i32.const 0) - (get_local $4) - ) - ) - (set_local $6 - (i32.load - (get_local $3) - ) - ) - (block $break|0 - (set_local $7 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $7) - (get_local $4) - ) - ) - ) - (block - (set_local $8 - (call $~lib/internal/string/allocateUnsafe - (i32.const 1) - ) - ) - (i32.store16 offset=4 - (get_local $8) - (i32.load16_u offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $7) - (i32.const 1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 - (i32.store offset=8 - (i32.add - (get_local $6) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - (get_local $8) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (return - (get_local $3) - ) - ) - (if - (i32.eqz - (get_local $4) - ) - (return - (i32.const 888) - ) - ) - ) - (set_local $9 - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 0) - ) - ) - (set_local $10 - (i32.const 0) - ) - (set_local $11 - (i32.const 0) - ) - (set_local $12 - (i32.const 0) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ne - (tee_local $10 - (call $~lib/string/String#indexOf - (get_local $0) - (get_local $1) - (get_local $11) - ) - ) - (i32.const -1) - ) - (block - (block - (set_local $6 - (i32.sub - (get_local $10) - (get_local $11) - ) - ) - (if - (i32.gt_s - (get_local $6) - (i32.const 0) - ) - (block - (set_local $3 - (call $~lib/internal/string/allocateUnsafe - (get_local $6) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $3) - (i32.const 0) - (get_local $0) - (get_local $11) - (get_local $6) - ) - (drop - (call $~lib/array/Array#push - (get_local $9) - (get_local $3) - ) - ) - ) - (drop - (call $~lib/array/Array#push - (get_local $9) - (i32.const 256) - ) - ) - ) - (if - (i32.eq - (tee_local $12 - (i32.add - (get_local $12) - (i32.const 1) - ) - ) - (get_local $2) - ) - (return - (get_local $9) - ) - ) - (set_local $11 - (i32.add - (get_local $10) - (get_local $5) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.eqz - (get_local $11) - ) - (return - (block (result i32) - (set_local $13 - (call $~lib/array/Array#constructor - (i32.const 0) - (i32.const 1) - ) - ) - (call $~lib/array/Array#__unchecked_set - (get_local $13) - (i32.const 0) - (get_local $0) - ) - (get_local $13) - ) - ) - ) - (set_local $14 - (i32.sub - (get_local $4) - (get_local $11) - ) - ) - (if - (i32.gt_s - (get_local $14) - (i32.const 0) - ) - (block - (set_local $13 - (call $~lib/internal/string/allocateUnsafe - (get_local $14) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $13) - (i32.const 0) - (get_local $0) - (get_local $11) - (get_local $14) - ) - (drop - (call $~lib/array/Array#push - (get_local $9) - (get_local $13) - ) - ) - ) - (drop - (call $~lib/array/Array#push - (get_local $9) - (i32.const 256) - ) - ) - ) - (get_local $9) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 417 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $2 + i32.eqz + if + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + return + end + get_local $1 + i32.const 0 + i32.eq + if + block (result i32) + i32.const 0 + i32.const 1 + call $~lib/array/Array#constructor + set_local $3 + get_local $3 + i32.const 0 + get_local $0 + call $~lib/array/Array#__unchecked_set + get_local $3 + end + return + end + get_local $0 + i32.load + set_local $4 + get_local $1 + i32.load + set_local $5 + get_local $2 + i32.const 0 + i32.lt_s + if + get_global $~lib/builtins/i32.MAX_VALUE + set_local $2 + end + get_local $5 + i32.eqz + if + get_local $4 + i32.eqz + if + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + return + end + get_local $4 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.lt_s + select + set_local $4 + i32.const 0 + get_local $4 + call $~lib/array/Array#constructor + set_local $3 + get_local $3 + i32.load + set_local $6 + block $break|0 + i32.const 0 + set_local $7 + loop $repeat|0 + get_local $7 + get_local $4 + i32.lt_s + i32.eqz + br_if $break|0 + block + i32.const 1 + call $~lib/internal/string/allocateUnsafe + set_local $8 + get_local $8 + get_local $0 + get_local $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=4 + i32.store16 offset=4 + block $~lib/internal/arraybuffer/storeUnsafe|inlined.1 + get_local $6 + get_local $7 + i32.const 2 + i32.shl + i32.add + get_local $8 + i32.store offset=8 + end + end + get_local $7 + i32.const 1 + i32.add + set_local $7 + br $repeat|0 + unreachable + end + unreachable + end + get_local $3 + return + else + get_local $4 + i32.eqz + if + i32.const 888 + return + end + end + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + set_local $9 + i32.const 0 + set_local $10 + i32.const 0 + set_local $11 + i32.const 0 + set_local $12 + block $break|1 + loop $continue|1 + get_local $0 + get_local $1 + get_local $11 + call $~lib/string/String#indexOf + tee_local $10 + i32.const -1 + i32.ne + if + block + get_local $10 + get_local $11 + i32.sub + set_local $6 + get_local $6 + i32.const 0 + i32.gt_s + if + get_local $6 + call $~lib/internal/string/allocateUnsafe + set_local $3 + get_local $3 + i32.const 0 + get_local $0 + get_local $11 + get_local $6 + call $~lib/internal/string/copyUnsafe + get_local $9 + get_local $3 + call $~lib/array/Array#push + drop + else + get_local $9 + i32.const 256 + call $~lib/array/Array#push + drop + end + get_local $12 + i32.const 1 + i32.add + tee_local $12 + get_local $2 + i32.eq + if + get_local $9 + return + end + get_local $10 + get_local $5 + i32.add + set_local $11 + end + br $continue|1 + end + end + end + get_local $11 + i32.eqz + if + block (result i32) + i32.const 0 + i32.const 1 + call $~lib/array/Array#constructor + set_local $13 + get_local $13 + i32.const 0 + get_local $0 + call $~lib/array/Array#__unchecked_set + get_local $13 + end + return + end + get_local $4 + get_local $11 + i32.sub + set_local $14 + get_local $14 + i32.const 0 + i32.gt_s + if + get_local $14 + call $~lib/internal/string/allocateUnsafe + set_local $13 + get_local $13 + i32.const 0 + get_local $0 + get_local $11 + get_local $14 + call $~lib/internal/string/copyUnsafe + get_local $9 + get_local $13 + call $~lib/array/Array#push + drop + else + get_local $9 + i32.const 256 + call $~lib/array/Array#push + drop + end + get_local $9 ) (func $~lib/string/String#split|trampoline (; 43 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 0) - ) - ) - (set_local $2 - (get_global $~lib/builtins/i32.MAX_VALUE) - ) - ) - (call $~lib/string/String#split - (get_local $0) - (get_local $1) - (get_local $2) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $1 + end + get_global $~lib/builtins/i32.MAX_VALUE + set_local $2 + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/string/String#split ) (func $~lib/array/Array#__get (; 44 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $~lib/internal/number/decimalCount32 (; 45 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.lt_u - (get_local $0) - (i32.const 100000) - ) - (block - (if - (i32.lt_u - (get_local $0) - (i32.const 100) - ) - (return - (select - (i32.const 1) - (i32.const 2) - (i32.lt_u - (get_local $0) - (i32.const 10) - ) - ) - ) - (block - (set_local $1 - (select - (i32.const 4) - (i32.const 5) - (i32.lt_u - (get_local $0) - (i32.const 10000) - ) - ) - ) - (return - (select - (i32.const 3) - (get_local $1) - (i32.lt_u - (get_local $0) - (i32.const 1000) - ) - ) - ) - ) - ) - (unreachable) - ) - (block - (if - (i32.lt_u - (get_local $0) - (i32.const 10000000) - ) - (return - (select - (i32.const 6) - (i32.const 7) - (i32.lt_u - (get_local $0) - (i32.const 1000000) - ) - ) - ) - (block - (set_local $1 - (select - (i32.const 9) - (i32.const 10) - (i32.lt_u - (get_local $0) - (i32.const 1000000000) - ) - ) - ) - (return - (select - (i32.const 8) - (get_local $1) - (i32.lt_u - (get_local $0) - (i32.const 100000000) - ) - ) - ) - ) - ) - (unreachable) - ) - ) - (unreachable) + get_local $0 + i32.const 100000 + i32.lt_u + if + get_local $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + i32.const 2 + get_local $0 + i32.const 10 + i32.lt_u + select + return + else + i32.const 4 + i32.const 5 + get_local $0 + i32.const 10000 + i32.lt_u + select + set_local $1 + i32.const 3 + get_local $1 + get_local $0 + i32.const 1000 + i32.lt_u + select + return + end + unreachable + unreachable + else + get_local $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + i32.const 7 + get_local $0 + i32.const 1000000 + i32.lt_u + select + return + else + i32.const 9 + i32.const 10 + get_local $0 + i32.const 1000000000 + i32.lt_u + select + set_local $1 + i32.const 8 + get_local $1 + get_local $0 + i32.const 100000000 + i32.lt_u + select + return + end + unreachable + unreachable + end + unreachable + unreachable ) (func $~lib/internal/number/utoa32_lut (; 46 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -6347,394 +4711,285 @@ (local $7 i32) (local $8 i64) (local $9 i64) - (set_local $3 - (i32.load - (block $~lib/internal/number/DIGITS|inlined.0 (result i32) - (i32.const 1520) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 10000) - ) - (block - (block - (set_local $4 - (i32.div_u - (get_local $1) - (i32.const 10000) - ) - ) - (set_local $5 - (i32.rem_u - (get_local $1) - (i32.const 10000) - ) - ) - (set_local $1 - (get_local $4) - ) - (set_local $6 - (i32.div_u - (get_local $5) - (i32.const 100) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $5) - (i32.const 100) - ) - ) - (set_local $8 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $7) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (i64.or - (get_local $8) - (i64.shl - (get_local $9) - (i64.const 32) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 100) - ) - (block - (set_local $7 - (i32.div_u - (get_local $1) - (i32.const 100) - ) - ) - (set_local $6 - (i32.rem_u - (get_local $1) - (i32.const 100) - ) - ) - (set_local $1 - (get_local $7) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $6) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) - (if - (i32.ge_u - (get_local $1) - (i32.const 10) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 2) - ) - ) - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $5 - (i32.add - (get_global $~lib/internal/string/CharCode._0) - (get_local $1) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (get_local $5) - ) - ) - ) + block $~lib/internal/number/DIGITS|inlined.0 (result i32) + i32.const 1520 + end + i32.load + set_local $3 + block $break|0 + loop $continue|0 + get_local $1 + i32.const 10000 + i32.ge_u + if + block + get_local $1 + i32.const 10000 + i32.div_u + set_local $4 + get_local $1 + i32.const 10000 + i32.rem_u + set_local $5 + get_local $4 + set_local $1 + get_local $5 + i32.const 100 + i32.div_u + set_local $6 + get_local $5 + i32.const 100 + i32.rem_u + set_local $7 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $8 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) + get_local $3 + get_local $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $9 + get_local $2 + i32.const 4 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $8 + get_local $9 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + end + br $continue|0 + end + end + end + get_local $1 + i32.const 100 + i32.ge_u + if + get_local $1 + i32.const 100 + i32.div_u + set_local $7 + get_local $1 + i32.const 100 + i32.rem_u + set_local $6 + get_local $7 + set_local $1 + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + get_local $3 + get_local $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $5 + i32.store offset=4 + end + get_local $1 + i32.const 10 + i32.ge_u + if + get_local $2 + i32.const 2 + i32.sub + set_local $2 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + get_local $3 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end + set_local $5 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $5 + i32.store offset=4 + else + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_global $~lib/internal/string/CharCode._0 + get_local $1 + i32.add + set_local $5 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $5 + i32.store16 offset=4 + end ) (func $~lib/internal/number/itoa32 (; 47 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.eqz - (get_local $0) - ) - (return - (i32.const 480) - ) - ) - (set_local $1 - (i32.lt_s - (get_local $0) - (i32.const 0) - ) - ) - (if - (get_local $1) - (set_local $0 - (i32.sub - (i32.const 0) - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $0) - ) - (get_local $1) - ) - ) - (set_local $3 - (call $~lib/internal/string/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.0 - (call $~lib/internal/number/utoa32_lut - (get_local $3) - (get_local $0) - (get_local $2) - ) - ) - (if - (get_local $1) - (i32.store16 offset=4 - (get_local $3) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - ) - (get_local $3) + get_local $0 + i32.eqz + if + i32.const 480 + return + end + get_local $0 + i32.const 0 + i32.lt_s + set_local $1 + get_local $1 + if + i32.const 0 + get_local $0 + i32.sub + set_local $0 + end + get_local $0 + call $~lib/internal/number/decimalCount32 + get_local $1 + i32.add + set_local $2 + get_local $2 + call $~lib/internal/string/allocateUnsafe + set_local $3 + block $~lib/internal/number/utoa32_core|inlined.0 + get_local $3 + get_local $0 + get_local $2 + call $~lib/internal/number/utoa32_lut + end + get_local $1 + if + get_local $3 + get_global $~lib/internal/string/CharCode.MINUS + i32.store16 offset=4 + end + get_local $3 ) (func $~lib/internal/number/utoa32 (; 48 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $0) - ) - (return - (i32.const 480) - ) - ) - (set_local $1 - (call $~lib/internal/number/decimalCount32 - (get_local $0) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $1) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.1 - (call $~lib/internal/number/utoa32_lut - (get_local $2) - (get_local $0) - (get_local $1) - ) - ) - (get_local $2) + get_local $0 + i32.eqz + if + i32.const 480 + return + end + get_local $0 + call $~lib/internal/number/decimalCount32 + set_local $1 + get_local $1 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $~lib/internal/number/utoa32_core|inlined.1 + get_local $2 + get_local $0 + get_local $1 + call $~lib/internal/number/utoa32_lut + end + get_local $2 ) (func $~lib/internal/number/decimalCount64 (; 49 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) - (if - (i64.lt_u - (get_local $0) - (i64.const 1000000000000000) - ) - (block - (if - (i64.lt_u - (get_local $0) - (i64.const 1000000000000) - ) - (return - (select - (i32.const 11) - (i32.const 12) - (i64.lt_u - (get_local $0) - (i64.const 100000000000) - ) - ) - ) - (block - (set_local $1 - (select - (i32.const 14) - (i32.const 15) - (i64.lt_u - (get_local $0) - (i64.const 100000000000000) - ) - ) - ) - (return - (select - (i32.const 13) - (get_local $1) - (i64.lt_u - (get_local $0) - (i64.const 10000000000000) - ) - ) - ) - ) - ) - (unreachable) - ) - (block - (if - (i64.lt_u - (get_local $0) - (i64.const 100000000000000000) - ) - (return - (select - (i32.const 16) - (i32.const 17) - (i64.lt_u - (get_local $0) - (i64.const 10000000000000000) - ) - ) - ) - (block - (set_local $1 - (select - (i32.const 19) - (i32.const 20) - (i64.lt_u - (get_local $0) - (i64.const -8446744073709551616) - ) - ) - ) - (return - (select - (i32.const 18) - (get_local $1) - (i64.lt_u - (get_local $0) - (i64.const 1000000000000000000) - ) - ) - ) - ) - ) - (unreachable) - ) - ) - (unreachable) + get_local $0 + i64.const 1000000000000000 + i64.lt_u + if + get_local $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 11 + i32.const 12 + get_local $0 + i64.const 100000000000 + i64.lt_u + select + return + else + i32.const 14 + i32.const 15 + get_local $0 + i64.const 100000000000000 + i64.lt_u + select + set_local $1 + i32.const 13 + get_local $1 + get_local $0 + i64.const 10000000000000 + i64.lt_u + select + return + end + unreachable + unreachable + else + get_local $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + i32.const 17 + get_local $0 + i64.const 10000000000000000 + i64.lt_u + select + return + else + i32.const 19 + i32.const 20 + get_local $0 + i64.const -8446744073709551616 + i64.lt_u + select + set_local $1 + i32.const 18 + get_local $1 + get_local $0 + i64.const 1000000000000000000 + i64.lt_u + select + return + end + unreachable + unreachable + end + unreachable + unreachable ) (func $~lib/internal/number/utoa64_lut (; 50 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -6748,361 +5003,257 @@ (local $11 i32) (local $12 i64) (local $13 i64) - (set_local $3 - (i32.load - (block $~lib/internal/number/DIGITS|inlined.1 (result i32) - (i32.const 2312) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i64.ge_u - (get_local $1) - (i64.const 100000000) - ) - (block - (block - (set_local $4 - (i64.div_u - (get_local $1) - (i64.const 100000000) - ) - ) - (set_local $5 - (i32.wrap/i64 - (i64.sub - (get_local $1) - (i64.mul - (get_local $4) - (i64.const 100000000) - ) - ) - ) - ) - (set_local $1 - (get_local $4) - ) - (set_local $6 - (i32.div_u - (get_local $5) - (i32.const 10000) - ) - ) - (set_local $7 - (i32.rem_u - (get_local $5) - (i32.const 10000) - ) - ) - (set_local $8 - (i32.div_u - (get_local $6) - (i32.const 100) - ) - ) - (set_local $9 - (i32.rem_u - (get_local $6) - (i32.const 100) - ) - ) - (set_local $10 - (i32.div_u - (get_local $7) - (i32.const 100) - ) - ) - (set_local $11 - (i32.rem_u - (get_local $7) - (i32.const 100) - ) - ) - (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $10) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $13 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $11) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (i64.or - (get_local $12) - (i64.shl - (get_local $13) - (i64.const 32) - ) - ) - ) - (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $13 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $9) - (i32.const 2) - ) - ) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) - ) - ) - (i64.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (i64.or - (get_local $12) - (i64.shl - (get_local $13) - (i64.const 32) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (call $~lib/internal/number/utoa32_lut - (get_local $0) - (i32.wrap/i64 - (get_local $1) - ) - (get_local $2) - ) + block $~lib/internal/number/DIGITS|inlined.1 (result i32) + i32.const 2312 + end + i32.load + set_local $3 + block $break|0 + loop $continue|0 + get_local $1 + i64.const 100000000 + i64.ge_u + if + block + get_local $1 + i64.const 100000000 + i64.div_u + set_local $4 + get_local $1 + get_local $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap/i64 + set_local $5 + get_local $4 + set_local $1 + get_local $5 + i32.const 10000 + i32.div_u + set_local $6 + get_local $5 + i32.const 10000 + i32.rem_u + set_local $7 + get_local $6 + i32.const 100 + i32.div_u + set_local $8 + get_local $6 + i32.const 100 + i32.rem_u + set_local $9 + get_local $7 + i32.const 100 + i32.div_u + set_local $10 + get_local $7 + i32.const 100 + i32.rem_u + set_local $11 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) + get_local $3 + get_local $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $12 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i64) + get_local $3 + get_local $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $13 + get_local $2 + i32.const 4 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $12 + get_local $13 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i64) + get_local $3 + get_local $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $12 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i64) + get_local $3 + get_local $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + set_local $13 + get_local $2 + i32.const 4 + i32.sub + set_local $2 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $12 + get_local $13 + i64.const 32 + i64.shl + i64.or + i64.store offset=4 + end + br $continue|0 + end + end + end + get_local $0 + get_local $1 + i32.wrap/i64 + get_local $2 + call $~lib/internal/number/utoa32_lut ) (func $~lib/internal/number/utoa64 (; 51 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i64.eqz - (get_local $0) - ) - (return - (i32.const 480) - ) - ) - (if - (i64.le_u - (get_local $0) - (i64.extend_u/i32 - (get_global $~lib/builtins/u32.MAX_VALUE) - ) - ) - (block - (set_local $2 - (i32.wrap/i64 - (get_local $0) - ) - ) - (set_local $3 - (call $~lib/internal/number/decimalCount32 - (get_local $2) - ) - ) - (set_local $1 - (call $~lib/internal/string/allocateUnsafe - (get_local $3) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.2 - (call $~lib/internal/number/utoa32_lut - (get_local $1) - (get_local $2) - (get_local $3) - ) - ) - ) - (block - (set_local $3 - (call $~lib/internal/number/decimalCount64 - (get_local $0) - ) - ) - (set_local $1 - (call $~lib/internal/string/allocateUnsafe - (get_local $3) - ) - ) - (block $~lib/internal/number/utoa64_core|inlined.0 - (call $~lib/internal/number/utoa64_lut - (get_local $1) - (get_local $0) - (get_local $3) - ) - ) - ) - ) - (get_local $1) + get_local $0 + i64.eqz + if + i32.const 480 + return + end + get_local $0 + get_global $~lib/builtins/u32.MAX_VALUE + i64.extend_u/i32 + i64.le_u + if + get_local $0 + i32.wrap/i64 + set_local $2 + get_local $2 + call $~lib/internal/number/decimalCount32 + set_local $3 + get_local $3 + call $~lib/internal/string/allocateUnsafe + set_local $1 + block $~lib/internal/number/utoa32_core|inlined.2 + get_local $1 + get_local $2 + get_local $3 + call $~lib/internal/number/utoa32_lut + end + else + get_local $0 + call $~lib/internal/number/decimalCount64 + set_local $3 + get_local $3 + call $~lib/internal/string/allocateUnsafe + set_local $1 + block $~lib/internal/number/utoa64_core|inlined.0 + get_local $1 + get_local $0 + get_local $3 + call $~lib/internal/number/utoa64_lut + end + end + get_local $1 ) (func $~lib/internal/number/itoa64 (; 52 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (if - (i64.eqz - (get_local $0) - ) - (return - (i32.const 480) - ) - ) - (set_local $1 - (i64.lt_s - (get_local $0) - (i64.const 0) - ) - ) - (if - (get_local $1) - (set_local $0 - (i64.sub - (i64.const 0) - (get_local $0) - ) - ) - ) - (if - (i64.le_u - (get_local $0) - (i64.extend_u/i32 - (get_global $~lib/builtins/u32.MAX_VALUE) - ) - ) - (block - (set_local $3 - (i32.wrap/i64 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $3) - ) - (get_local $1) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $4) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.3 - (call $~lib/internal/number/utoa32_lut - (get_local $2) - (get_local $3) - (get_local $4) - ) - ) - ) - (block - (set_local $4 - (i32.add - (call $~lib/internal/number/decimalCount64 - (get_local $0) - ) - (get_local $1) - ) - ) - (set_local $2 - (call $~lib/internal/string/allocateUnsafe - (get_local $4) - ) - ) - (block $~lib/internal/number/utoa64_core|inlined.1 - (call $~lib/internal/number/utoa64_lut - (get_local $2) - (get_local $0) - (get_local $4) - ) - ) - ) - ) - (if - (get_local $1) - (i32.store16 offset=4 - (get_local $2) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - ) - (get_local $2) + get_local $0 + i64.eqz + if + i32.const 480 + return + end + get_local $0 + i64.const 0 + i64.lt_s + set_local $1 + get_local $1 + if + i64.const 0 + get_local $0 + i64.sub + set_local $0 + end + get_local $0 + get_global $~lib/builtins/u32.MAX_VALUE + i64.extend_u/i32 + i64.le_u + if + get_local $0 + i32.wrap/i64 + set_local $3 + get_local $3 + call $~lib/internal/number/decimalCount32 + get_local $1 + i32.add + set_local $4 + get_local $4 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $~lib/internal/number/utoa32_core|inlined.3 + get_local $2 + get_local $3 + get_local $4 + call $~lib/internal/number/utoa32_lut + end + else + get_local $0 + call $~lib/internal/number/decimalCount64 + get_local $1 + i32.add + set_local $4 + get_local $4 + call $~lib/internal/string/allocateUnsafe + set_local $2 + block $~lib/internal/number/utoa64_core|inlined.1 + get_local $2 + get_local $0 + get_local $4 + call $~lib/internal/number/utoa64_lut + end + end + get_local $1 + if + get_local $2 + get_global $~lib/internal/string/CharCode.MINUS + i32.store16 offset=4 + end + get_local $2 ) (func $~lib/builtins/isFinite (; 53 ;) (type $Fi) (param $0 f64) (result i32) - (f64.eq - (f64.sub - (get_local $0) - (get_local $0) - ) - (f64.const 0) - ) + get_local $0 + get_local $0 + f64.sub + f64.const 0 + f64.eq ) (func $~lib/builtins/isNaN (; 54 ;) (type $Fi) (param $0 f64) (result i32) - (f64.ne - (get_local $0) - (get_local $0) - ) + get_local $0 + get_local $0 + f64.ne ) (func $~lib/internal/number/genDigits (; 55 ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) @@ -7121,712 +5272,540 @@ (local $20 i64) (local $21 i32) (local $22 i32) - (set_local $7 - (i32.sub - (i32.const 0) - (get_local $4) - ) - ) - (set_local $8 - (i64.shl - (i64.const 1) - (i64.extend_s/i32 - (get_local $7) - ) - ) - ) - (set_local $9 - (i64.sub - (get_local $8) - (i64.const 1) - ) - ) - (set_local $10 - (i64.sub - (get_local $3) - (get_local $1) - ) - ) - (set_local $11 - (get_local $4) - ) - (set_local $12 - (i32.wrap/i64 - (i64.shr_u - (get_local $3) - (i64.extend_s/i32 - (get_local $7) - ) - ) - ) - ) - (set_local $13 - (i64.and - (get_local $3) - (get_local $9) - ) - ) - (set_local $14 - (call $~lib/internal/number/decimalCount32 - (get_local $12) - ) - ) - (set_local $15 - (get_local $6) - ) - (set_local $16 - (i32.load - (block $~lib/internal/number/POWERS10|inlined.0 (result i32) - (i32.const 4328) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.gt_s - (get_local $14) - (i32.const 0) - ) - (block - (block - (block $break|1 - (block $case10|1 - (block $case9|1 - (block $case8|1 - (block $case7|1 - (block $case6|1 - (block $case5|1 - (block $case4|1 - (block $case3|1 - (block $case2|1 - (block $case1|1 - (block $case0|1 - (set_local $18 - (get_local $14) - ) - (br_if $case0|1 - (i32.eq - (get_local $18) - (i32.const 10) - ) - ) - (br_if $case1|1 - (i32.eq - (get_local $18) - (i32.const 9) - ) - ) - (br_if $case2|1 - (i32.eq - (get_local $18) - (i32.const 8) - ) - ) - (br_if $case3|1 - (i32.eq - (get_local $18) - (i32.const 7) - ) - ) - (br_if $case4|1 - (i32.eq - (get_local $18) - (i32.const 6) - ) - ) - (br_if $case5|1 - (i32.eq - (get_local $18) - (i32.const 5) - ) - ) - (br_if $case6|1 - (i32.eq - (get_local $18) - (i32.const 4) - ) - ) - (br_if $case7|1 - (i32.eq - (get_local $18) - (i32.const 3) - ) - ) - (br_if $case8|1 - (i32.eq - (get_local $18) - (i32.const 2) - ) - ) - (br_if $case9|1 - (i32.eq - (get_local $18) - (i32.const 1) - ) - ) - (br $case10|1) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 1000000000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 1000000000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 100000000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 100000000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 10000000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 10000000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 1000000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 1000000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 100000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 100000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 10000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 10000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 1000) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 1000) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 100) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 100) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.div_u - (get_local $12) - (i32.const 10) - ) - ) - (set_local $12 - (i32.rem_u - (get_local $12) - (i32.const 10) - ) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (get_local $12) - ) - (set_local $12 - (i32.const 0) - ) - (br $break|1) - ) - ) - (block - (set_local $17 - (i32.const 0) - ) - (br $break|1) - ) - ) - (if - (i32.or - (get_local $17) - (get_local $15) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (block (result i32) - (set_local $15 - (i32.add - (tee_local $18 - (get_local $15) - ) - (i32.const 1) - ) - ) - (get_local $18) - ) - (i32.const 1) - ) - ) - (i32.add - (get_global $~lib/internal/string/CharCode._0) - (i32.and - (get_local $17) - (i32.const 65535) - ) - ) - ) - ) - (set_local $14 - (i32.sub - (get_local $14) - (i32.const 1) - ) - ) - (set_local $19 - (i64.add - (i64.shl - (i64.extend_u/i32 - (get_local $12) - ) - (i64.extend_s/i32 - (get_local $7) - ) - ) - (get_local $13) - ) - ) - (if - (i64.le_u - (get_local $19) - (get_local $5) - ) - (block - (set_global $~lib/internal/number/_K - (i32.add - (get_global $~lib/internal/number/_K) - (get_local $14) - ) - ) - (block $~lib/internal/number/grisuRound|inlined.0 - (set_local $20 - (i64.shl - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i64) - (i64.load32_u offset=8 - (i32.add - (get_local $16) - (i32.shl - (get_local $14) - (i32.const 2) - ) - ) - ) - ) - (i64.extend_s/i32 - (get_local $7) - ) - ) - ) - (set_local $18 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $15) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - (set_local $21 - (i32.load16_u offset=4 - (get_local $18) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (if (result i32) - (tee_local $22 - (if (result i32) - (tee_local $22 - (i64.lt_u - (get_local $19) - (get_local $10) - ) - ) - (i64.ge_u - (i64.sub - (get_local $5) - (get_local $19) - ) - (get_local $20) - ) - (get_local $22) - ) - ) - (if (result i32) - (tee_local $22 - (i64.lt_u - (i64.add - (get_local $19) - (get_local $20) - ) - (get_local $10) - ) - ) - (get_local $22) - (i64.gt_u - (i64.sub - (get_local $10) - (get_local $19) - ) - (i64.sub - (i64.add - (get_local $19) - (get_local $20) - ) - (get_local $10) - ) - ) - ) - (get_local $22) - ) - (block - (block - (set_local $21 - (i32.sub - (get_local $21) - (i32.const 1) - ) - ) - (set_local $19 - (i64.add - (get_local $19) - (get_local $20) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (i32.store16 offset=4 - (get_local $18) - (get_local $21) - ) - ) - (return - (get_local $15) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.const 1) - (block - (block - (set_local $13 - (i64.mul - (get_local $13) - (i64.const 10) - ) - ) - (set_local $5 - (i64.mul - (get_local $5) - (i64.const 10) - ) - ) - (set_local $19 - (i64.shr_u - (get_local $13) - (i64.extend_s/i32 - (get_local $7) - ) - ) - ) - (if - (i64.ne - (i64.or - (get_local $19) - (i64.extend_s/i32 - (get_local $15) - ) - ) - (i64.const 0) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (block (result i32) - (set_local $15 - (i32.add - (tee_local $17 - (get_local $15) - ) - (i32.const 1) - ) - ) - (get_local $17) - ) - (i32.const 1) - ) - ) - (i32.add - (get_global $~lib/internal/string/CharCode._0) - (i32.and - (i32.wrap/i64 - (get_local $19) - ) - (i32.const 65535) - ) - ) - ) - ) - (set_local $13 - (i64.and - (get_local $13) - (get_local $9) - ) - ) - (set_local $14 - (i32.sub - (get_local $14) - (i32.const 1) - ) - ) - (if - (i64.lt_u - (get_local $13) - (get_local $5) - ) - (block - (set_global $~lib/internal/number/_K - (i32.add - (get_global $~lib/internal/number/_K) - (get_local $14) - ) - ) - (set_local $10 - (i64.mul - (get_local $10) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.7 (result i64) - (set_local $17 - (i32.sub - (i32.const 0) - (get_local $14) - ) - ) - (i64.load32_u offset=8 - (i32.add - (get_local $16) - (i32.shl - (get_local $17) - (i32.const 2) - ) - ) - ) - ) - ) - ) - (block $~lib/internal/number/grisuRound|inlined.1 - (set_local $17 - (i32.add - (get_local $0) - (i32.shl - (i32.sub - (get_local $15) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - (set_local $21 - (i32.load16_u offset=4 - (get_local $17) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (if (result i32) - (tee_local $18 - (if (result i32) - (tee_local $18 - (i64.lt_u - (get_local $13) - (get_local $10) - ) - ) - (i64.ge_u - (i64.sub - (get_local $5) - (get_local $13) - ) - (get_local $8) - ) - (get_local $18) - ) - ) - (if (result i32) - (tee_local $18 - (i64.lt_u - (i64.add - (get_local $13) - (get_local $8) - ) - (get_local $10) - ) - ) - (get_local $18) - (i64.gt_u - (i64.sub - (get_local $10) - (get_local $13) - ) - (i64.sub - (i64.add - (get_local $13) - (get_local $8) - ) - (get_local $10) - ) - ) - ) - (get_local $18) - ) - (block - (block - (set_local $21 - (i32.sub - (get_local $21) - (i32.const 1) - ) - ) - (set_local $13 - (i64.add - (get_local $13) - (get_local $8) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - (i32.store16 offset=4 - (get_local $17) - (get_local $21) - ) - ) - (return - (get_local $15) - ) - ) - ) - ) - (br $continue|3) - ) - ) - ) - ) - (get_local $15) + i32.const 0 + get_local $4 + i32.sub + set_local $7 + i64.const 1 + get_local $7 + i64.extend_s/i32 + i64.shl + set_local $8 + get_local $8 + i64.const 1 + i64.sub + set_local $9 + get_local $3 + get_local $1 + i64.sub + set_local $10 + get_local $4 + set_local $11 + get_local $3 + get_local $7 + i64.extend_s/i32 + i64.shr_u + i32.wrap/i64 + set_local $12 + get_local $3 + get_local $9 + i64.and + set_local $13 + get_local $12 + call $~lib/internal/number/decimalCount32 + set_local $14 + get_local $6 + set_local $15 + block $~lib/internal/number/POWERS10|inlined.0 (result i32) + i32.const 4328 + end + i32.load + set_local $16 + block $break|0 + loop $continue|0 + get_local $14 + i32.const 0 + i32.gt_s + if + block + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + get_local $14 + set_local $18 + get_local $18 + i32.const 10 + i32.eq + br_if $case0|1 + get_local $18 + i32.const 9 + i32.eq + br_if $case1|1 + get_local $18 + i32.const 8 + i32.eq + br_if $case2|1 + get_local $18 + i32.const 7 + i32.eq + br_if $case3|1 + get_local $18 + i32.const 6 + i32.eq + br_if $case4|1 + get_local $18 + i32.const 5 + i32.eq + br_if $case5|1 + get_local $18 + i32.const 4 + i32.eq + br_if $case6|1 + get_local $18 + i32.const 3 + i32.eq + br_if $case7|1 + get_local $18 + i32.const 2 + i32.eq + br_if $case8|1 + get_local $18 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + block + get_local $12 + i32.const 1000000000 + i32.div_u + set_local $17 + get_local $12 + i32.const 1000000000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 100000000 + i32.div_u + set_local $17 + get_local $12 + i32.const 100000000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 10000000 + i32.div_u + set_local $17 + get_local $12 + i32.const 10000000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 1000000 + i32.div_u + set_local $17 + get_local $12 + i32.const 1000000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 100000 + i32.div_u + set_local $17 + get_local $12 + i32.const 100000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 10000 + i32.div_u + set_local $17 + get_local $12 + i32.const 10000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 1000 + i32.div_u + set_local $17 + get_local $12 + i32.const 1000 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 100 + i32.div_u + set_local $17 + get_local $12 + i32.const 100 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + i32.const 10 + i32.div_u + set_local $17 + get_local $12 + i32.const 10 + i32.rem_u + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + get_local $12 + set_local $17 + i32.const 0 + set_local $12 + br $break|1 + unreachable + end + unreachable + end + block + i32.const 0 + set_local $17 + br $break|1 + unreachable + end + unreachable + end + get_local $17 + get_local $15 + i32.or + if + get_local $0 + block (result i32) + get_local $15 + tee_local $18 + i32.const 1 + i32.add + set_local $15 + get_local $18 + end + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode._0 + get_local $17 + i32.const 65535 + i32.and + i32.add + i32.store16 offset=4 + end + get_local $14 + i32.const 1 + i32.sub + set_local $14 + get_local $12 + i64.extend_u/i32 + get_local $7 + i64.extend_s/i32 + i64.shl + get_local $13 + i64.add + set_local $19 + get_local $19 + get_local $5 + i64.le_u + if + get_global $~lib/internal/number/_K + get_local $14 + i32.add + set_global $~lib/internal/number/_K + block $~lib/internal/number/grisuRound|inlined.0 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i64) + get_local $16 + get_local $14 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + get_local $7 + i64.extend_s/i32 + i64.shl + set_local $20 + get_local $0 + get_local $15 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + set_local $18 + get_local $18 + i32.load16_u offset=4 + set_local $21 + block $break|2 + loop $continue|2 + get_local $19 + get_local $10 + i64.lt_u + tee_local $22 + if (result i32) + get_local $5 + get_local $19 + i64.sub + get_local $20 + i64.ge_u + else + get_local $22 + end + tee_local $22 + if (result i32) + get_local $19 + get_local $20 + i64.add + get_local $10 + i64.lt_u + tee_local $22 + if (result i32) + get_local $22 + else + get_local $10 + get_local $19 + i64.sub + get_local $19 + get_local $20 + i64.add + get_local $10 + i64.sub + i64.gt_u + end + else + get_local $22 + end + if + block + get_local $21 + i32.const 1 + i32.sub + set_local $21 + get_local $19 + get_local $20 + i64.add + set_local $19 + end + br $continue|2 + end + end + end + get_local $18 + get_local $21 + i32.store16 offset=4 + end + get_local $15 + return + end + end + br $continue|0 + end + end + end + block $break|3 + loop $continue|3 + i32.const 1 + if + block + get_local $13 + i64.const 10 + i64.mul + set_local $13 + get_local $5 + i64.const 10 + i64.mul + set_local $5 + get_local $13 + get_local $7 + i64.extend_s/i32 + i64.shr_u + set_local $19 + get_local $19 + get_local $15 + i64.extend_s/i32 + i64.or + i64.const 0 + i64.ne + if + get_local $0 + block (result i32) + get_local $15 + tee_local $17 + i32.const 1 + i32.add + set_local $15 + get_local $17 + end + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode._0 + get_local $19 + i32.wrap/i64 + i32.const 65535 + i32.and + i32.add + i32.store16 offset=4 + end + get_local $13 + get_local $9 + i64.and + set_local $13 + get_local $14 + i32.const 1 + i32.sub + set_local $14 + get_local $13 + get_local $5 + i64.lt_u + if + get_global $~lib/internal/number/_K + get_local $14 + i32.add + set_global $~lib/internal/number/_K + get_local $10 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.7 (result i64) + i32.const 0 + get_local $14 + i32.sub + set_local $17 + get_local $16 + get_local $17 + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 + end + i64.mul + set_local $10 + block $~lib/internal/number/grisuRound|inlined.1 + get_local $0 + get_local $15 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + set_local $17 + get_local $17 + i32.load16_u offset=4 + set_local $21 + block $break|4 + loop $continue|4 + get_local $13 + get_local $10 + i64.lt_u + tee_local $18 + if (result i32) + get_local $5 + get_local $13 + i64.sub + get_local $8 + i64.ge_u + else + get_local $18 + end + tee_local $18 + if (result i32) + get_local $13 + get_local $8 + i64.add + get_local $10 + i64.lt_u + tee_local $18 + if (result i32) + get_local $18 + else + get_local $10 + get_local $13 + i64.sub + get_local $13 + get_local $8 + i64.add + get_local $10 + i64.sub + i64.gt_u + end + else + get_local $18 + end + if + block + get_local $21 + i32.const 1 + i32.sub + set_local $21 + get_local $13 + get_local $8 + i64.add + set_local $13 + end + br $continue|4 + end + end + end + get_local $17 + get_local $21 + i32.store16 offset=4 + end + get_local $15 + return + end + end + br $continue|3 + end + end + end + get_local $15 ) (func $~lib/internal/number/prettify (; 56 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -7835,478 +5814,352 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (if - (i32.eqz - (get_local $2) - ) - (block - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (i32.or - (get_global $~lib/internal/string/CharCode.DOT) - (i32.shl - (get_global $~lib/internal/string/CharCode._0) - (i32.const 16) - ) - ) - ) - (return - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $1) - (get_local $2) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.le_s - (get_local $1) - (get_local $3) - ) - ) - (i32.le_s - (get_local $3) - (i32.const 21) - ) - (get_local $4) - ) - (block - (block $break|0 - (set_local $4 - (get_local $1) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $4) - (get_local $3) - ) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - (get_global $~lib/internal/string/CharCode._0) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.or - (get_global $~lib/internal/string/CharCode.DOT) - (i32.shl - (get_global $~lib/internal/string/CharCode._0) - (i32.const 16) - ) - ) - ) - (return - (i32.add - (get_local $3) - (i32.const 2) - ) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - ) - (i32.le_s - (get_local $3) - (i32.const 21) - ) - (get_local $4) - ) - (block - (set_local $4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - (block $~lib/memory/memory.copy|inlined.3 - (set_local $5 - (i32.add - (i32.add - (get_local $4) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - (i32.const 2) - ) - ) - (set_local $6 - (i32.add - (get_local $4) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.shl - (i32.sub - (i32.const 0) - (get_local $2) - ) - (i32.const 1) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $5) - (get_local $6) - (get_local $7) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (get_global $~lib/internal/string/CharCode.DOT) - ) - (return - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.lt_s - (i32.const -6) - (get_local $3) - ) - ) - (i32.le_s - (get_local $3) - (i32.const 0) - ) - (get_local $4) - ) - (block - (set_local $4 - (i32.sub - (i32.const 2) - (get_local $3) - ) - ) - (block $~lib/memory/memory.copy|inlined.4 - (set_local $7 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - (i32.shl - (get_local $4) - (i32.const 1) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $0) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $7) - (get_local $6) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (get_global $~lib/internal/string/CharCode._0) - (i32.shl - (get_global $~lib/internal/string/CharCode.DOT) - (i32.const 16) - ) - ) - ) - (block $break|1 - (set_local $5 - (i32.const 2) - ) - (loop $repeat|1 - (br_if $break|1 - (i32.eqz - (i32.lt_s - (get_local $5) - (get_local $4) - ) - ) - ) - (i32.store16 offset=4 - (i32.add - (get_local $0) - (i32.shl - (get_local $5) - (i32.const 1) - ) - ) - (get_global $~lib/internal/string/CharCode._0) - ) - (set_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|1) - ) - ) - (return - (i32.add - (get_local $1) - (get_local $4) - ) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 1) - ) - (block - (i32.store16 offset=6 - (get_local $0) - (get_global $~lib/internal/string/CharCode.e) - ) - (set_local $1 - (block $~lib/internal/number/genExponent|inlined.0 (result i32) - (set_local $4 - (i32.add - (get_local $0) - (i32.const 4) - ) - ) - (set_local $5 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (set_local $6 - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - ) - (if - (get_local $6) - (set_local $5 - (i32.sub - (i32.const 0) - (get_local $5) - ) - ) - ) - (set_local $7 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $5) - ) - (i32.const 1) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.4 - (call $~lib/internal/number/utoa32_lut - (get_local $4) - (get_local $5) - (get_local $7) - ) - ) - (i32.store16 offset=4 - (get_local $4) - (select - (get_global $~lib/internal/string/CharCode.MINUS) - (get_global $~lib/internal/string/CharCode.PLUS) - (get_local $6) - ) - ) - (get_local $7) - ) - ) - (return - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - (block - (set_local $7 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (block $~lib/memory/memory.copy|inlined.5 - (set_local $6 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - (i32.const 4) - ) - ) - (set_local $5 - (i32.add - (i32.add - (get_local $0) - (get_global $~lib/internal/string/HEADER_SIZE) - ) - (i32.const 2) - ) - ) - (set_local $4 - (i32.sub - (get_local $7) - (i32.const 2) - ) - ) - (call $~lib/internal/memory/memmove - (get_local $6) - (get_local $5) - (get_local $4) - ) - ) - (i32.store16 offset=6 - (get_local $0) - (get_global $~lib/internal/string/CharCode.DOT) - ) - (i32.store16 offset=6 - (i32.add - (get_local $0) - (get_local $7) - ) - (get_global $~lib/internal/string/CharCode.e) - ) - (set_local $1 - (i32.add - (get_local $1) - (block $~lib/internal/number/genExponent|inlined.1 (result i32) - (set_local $4 - (i32.add - (i32.add - (get_local $0) - (get_local $7) - ) - (i32.const 4) - ) - ) - (set_local $5 - (i32.sub - (get_local $3) - (i32.const 1) - ) - ) - (set_local $6 - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - ) - (if - (get_local $6) - (set_local $5 - (i32.sub - (i32.const 0) - (get_local $5) - ) - ) - ) - (set_local $8 - (i32.add - (call $~lib/internal/number/decimalCount32 - (get_local $5) - ) - (i32.const 1) - ) - ) - (block $~lib/internal/number/utoa32_core|inlined.5 - (call $~lib/internal/number/utoa32_lut - (get_local $4) - (get_local $5) - (get_local $8) - ) - ) - (i32.store16 offset=4 - (get_local $4) - (select - (get_global $~lib/internal/string/CharCode.MINUS) - (get_global $~lib/internal/string/CharCode.PLUS) - (get_local $6) - ) - ) - (get_local $8) - ) - ) - ) - (return - (i32.add - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - ) - ) - ) - (unreachable) + get_local $2 + i32.eqz + if + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode.DOT + get_global $~lib/internal/string/CharCode._0 + i32.const 16 + i32.shl + i32.or + i32.store offset=4 + get_local $1 + i32.const 2 + i32.add + return + end + get_local $1 + get_local $2 + i32.add + set_local $3 + get_local $1 + get_local $3 + i32.le_s + tee_local $4 + if (result i32) + get_local $3 + i32.const 21 + i32.le_s + else + get_local $4 + end + if + block $break|0 + get_local $1 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + get_local $0 + get_local $4 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode.DOT + get_global $~lib/internal/string/CharCode._0 + i32.const 16 + i32.shl + i32.or + i32.store offset=4 + get_local $3 + i32.const 2 + i32.add + return + else + get_local $3 + i32.const 0 + i32.gt_s + tee_local $4 + if (result i32) + get_local $3 + i32.const 21 + i32.le_s + else + get_local $4 + end + if + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + set_local $4 + block $~lib/memory/memory.copy|inlined.3 + get_local $4 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + i32.const 2 + i32.add + set_local $5 + get_local $4 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $6 + i32.const 0 + get_local $2 + i32.sub + i32.const 1 + i32.shl + set_local $7 + get_local $5 + get_local $6 + get_local $7 + call $~lib/internal/memory/memmove + end + get_local $0 + get_local $3 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode.DOT + i32.store16 offset=4 + get_local $1 + i32.const 1 + i32.add + return + else + i32.const -6 + get_local $3 + i32.lt_s + tee_local $4 + if (result i32) + get_local $3 + i32.const 0 + i32.le_s + else + get_local $4 + end + if + i32.const 2 + get_local $3 + i32.sub + set_local $4 + block $~lib/memory/memory.copy|inlined.4 + get_local $0 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + get_local $4 + i32.const 1 + i32.shl + i32.add + set_local $7 + get_local $0 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + set_local $6 + get_local $1 + i32.const 1 + i32.shl + set_local $5 + get_local $7 + get_local $6 + get_local $5 + call $~lib/internal/memory/memmove + end + get_local $0 + get_global $~lib/internal/string/CharCode._0 + get_global $~lib/internal/string/CharCode.DOT + i32.const 16 + i32.shl + i32.or + i32.store offset=4 + block $break|1 + i32.const 2 + set_local $5 + loop $repeat|1 + get_local $5 + get_local $4 + i32.lt_s + i32.eqz + br_if $break|1 + get_local $0 + get_local $5 + i32.const 1 + i32.shl + i32.add + get_global $~lib/internal/string/CharCode._0 + i32.store16 offset=4 + get_local $5 + i32.const 1 + i32.add + set_local $5 + br $repeat|1 + unreachable + end + unreachable + end + get_local $1 + get_local $4 + i32.add + return + else + get_local $1 + i32.const 1 + i32.eq + if + get_local $0 + get_global $~lib/internal/string/CharCode.e + i32.store16 offset=6 + block $~lib/internal/number/genExponent|inlined.0 (result i32) + get_local $0 + i32.const 4 + i32.add + set_local $4 + get_local $3 + i32.const 1 + i32.sub + set_local $5 + get_local $5 + i32.const 0 + i32.lt_s + set_local $6 + get_local $6 + if + i32.const 0 + get_local $5 + i32.sub + set_local $5 + end + get_local $5 + call $~lib/internal/number/decimalCount32 + i32.const 1 + i32.add + set_local $7 + block $~lib/internal/number/utoa32_core|inlined.4 + get_local $4 + get_local $5 + get_local $7 + call $~lib/internal/number/utoa32_lut + end + get_local $4 + get_global $~lib/internal/string/CharCode.MINUS + get_global $~lib/internal/string/CharCode.PLUS + get_local $6 + select + i32.store16 offset=4 + get_local $7 + end + set_local $1 + get_local $1 + i32.const 2 + i32.add + return + else + get_local $1 + i32.const 1 + i32.shl + set_local $7 + block $~lib/memory/memory.copy|inlined.5 + get_local $0 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + i32.const 4 + i32.add + set_local $6 + get_local $0 + get_global $~lib/internal/string/HEADER_SIZE + i32.add + i32.const 2 + i32.add + set_local $5 + get_local $7 + i32.const 2 + i32.sub + set_local $4 + get_local $6 + get_local $5 + get_local $4 + call $~lib/internal/memory/memmove + end + get_local $0 + get_global $~lib/internal/string/CharCode.DOT + i32.store16 offset=6 + get_local $0 + get_local $7 + i32.add + get_global $~lib/internal/string/CharCode.e + i32.store16 offset=6 + get_local $1 + block $~lib/internal/number/genExponent|inlined.1 (result i32) + get_local $0 + get_local $7 + i32.add + i32.const 4 + i32.add + set_local $4 + get_local $3 + i32.const 1 + i32.sub + set_local $5 + get_local $5 + i32.const 0 + i32.lt_s + set_local $6 + get_local $6 + if + i32.const 0 + get_local $5 + i32.sub + set_local $5 + end + get_local $5 + call $~lib/internal/number/decimalCount32 + i32.const 1 + i32.add + set_local $8 + block $~lib/internal/number/utoa32_core|inlined.5 + get_local $4 + get_local $5 + get_local $8 + call $~lib/internal/number/utoa32_lut + end + get_local $4 + get_global $~lib/internal/string/CharCode.MINUS + get_global $~lib/internal/string/CharCode.PLUS + get_local $6 + select + i32.store16 offset=4 + get_local $8 + end + i32.add + set_local $1 + get_local $1 + i32.const 2 + i32.add + return + end + unreachable + end + unreachable + end + unreachable + end + unreachable + unreachable ) (func $~lib/internal/number/dtoa_core (; 57 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) @@ -8332,607 +6185,411 @@ (local $22 i64) (local $23 i64) (local $24 i32) - (set_local $2 - (f64.lt - (get_local $1) - (f64.const 0) - ) - ) - (if - (get_local $2) - (block - (set_local $1 - (f64.neg - (get_local $1) - ) - ) - (i32.store16 offset=4 - (get_local $0) - (get_global $~lib/internal/string/CharCode.MINUS) - ) - ) - ) - (set_local $24 - (block $~lib/internal/number/grisu2|inlined.0 (result i32) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $4 - (i32.wrap/i64 - (i64.shr_u - (i64.and - (get_local $3) - (i64.const 9218868437227405312) - ) - (i64.const 52) - ) - ) - ) - (set_local $5 - (i64.and - (get_local $3) - (i64.const 4503599627370495) - ) - ) - (set_local $6 - (i64.add - (i64.shl - (i64.extend_u/i32 - (i32.ne - (get_local $4) - (i32.const 0) - ) - ) - (i64.const 52) - ) - (get_local $5) - ) - ) - (set_local $4 - (i32.sub - (select - (get_local $4) - (i32.const 1) - (i32.ne - (get_local $4) - (i32.const 0) - ) - ) - (i32.add - (i32.const 1023) - (i32.const 52) - ) - ) - ) - (block $~lib/internal/number/normalizedBoundaries|inlined.0 - (set_local $7 - (i64.add - (i64.shl - (get_local $6) - (i64.const 1) - ) - (i64.const 1) - ) - ) - (set_local $8 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (set_local $9 - (i32.wrap/i64 - (i64.clz - (get_local $7) - ) - ) - ) - (set_local $7 - (i64.shl - (get_local $7) - (i64.extend_s/i32 - (get_local $9) - ) - ) - ) - (set_local $8 - (i32.sub - (get_local $8) - (get_local $9) - ) - ) - (set_local $10 - (i32.add - (i32.const 1) - (i64.eq - (get_local $6) - (i64.const 4503599627370496) - ) - ) - ) - (set_global $~lib/internal/number/_frc_plus - (get_local $7) - ) - (set_global $~lib/internal/number/_frc_minus - (i64.shl - (i64.sub - (i64.shl - (get_local $6) - (i64.extend_s/i32 - (get_local $10) - ) - ) - (i64.const 1) - ) - (i64.extend_s/i32 - (i32.sub - (i32.sub - (get_local $4) - (get_local $10) - ) - (get_local $8) - ) - ) - ) - ) - (set_global $~lib/internal/number/_exp - (get_local $8) - ) - ) - (block $~lib/internal/number/getCachedPower|inlined.0 - (set_local $10 - (get_global $~lib/internal/number/_exp) - ) - (set_local $11 - (f64.add - (f64.mul - (f64.convert_s/i32 - (i32.sub - (i32.const -61) - (get_local $10) - ) - ) - (f64.const 0.30102999566398114) - ) - (f64.const 347) - ) - ) - (set_local $9 - (i32.trunc_s/f64 - (get_local $11) - ) - ) - (set_local $9 - (i32.add - (get_local $9) - (f64.ne - (f64.convert_s/i32 - (get_local $9) - ) - (get_local $11) - ) - ) - ) - (set_local $8 - (i32.add - (i32.shr_s - (get_local $9) - (i32.const 3) - ) - (i32.const 1) - ) - ) - (set_global $~lib/internal/number/_K - (i32.sub - (i32.const 348) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - (set_local $12 - (i32.load - (block $~lib/internal/number/FRC_POWERS|inlined.0 (result i32) - (i32.const 3992) - ) - ) - ) - (set_local $13 - (i32.load - (block $~lib/internal/number/EXP_POWERS|inlined.0 (result i32) - (i32.const 4256) - ) - ) - ) - (set_global $~lib/internal/number/_frc_pow - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) - (i64.load offset=8 - (i32.add - (get_local $12) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - (set_global $~lib/internal/number/_exp_pow - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load16_s offset=8 - (i32.add - (get_local $13) - (i32.shl - (get_local $8) - (i32.const 1) - ) - ) - ) - ) - ) - ) - (set_local $13 - (i32.wrap/i64 - (i64.clz - (get_local $6) - ) - ) - ) - (set_local $6 - (i64.shl - (get_local $6) - (i64.extend_s/i32 - (get_local $13) - ) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (get_local $13) - ) - ) - (set_local $7 - (get_global $~lib/internal/number/_frc_pow) - ) - (set_local $12 - (get_global $~lib/internal/number/_exp_pow) - ) - (set_local $20 - (block $~lib/internal/number/umul64f|inlined.0 (result i64) - (set_local $14 - (i64.and - (get_local $6) - (i64.const 4294967295) - ) - ) - (set_local $15 - (i64.and - (get_local $7) - (i64.const 4294967295) - ) - ) - (set_local $16 - (i64.shr_u - (get_local $6) - (i64.const 32) - ) - ) - (set_local $17 - (i64.shr_u - (get_local $7) - (i64.const 32) - ) - ) - (set_local $18 - (i64.mul - (get_local $14) - (get_local $15) - ) - ) - (set_local $19 - (i64.add - (i64.mul - (get_local $16) - (get_local $15) - ) - (i64.shr_u - (get_local $18) - (i64.const 32) - ) - ) - ) - (set_local $20 - (i64.add - (i64.mul - (get_local $14) - (get_local $17) - ) - (i64.and - (get_local $19) - (i64.const 4294967295) - ) - ) - ) - (set_local $20 - (i64.add - (get_local $20) - (i64.const 2147483647) - ) - ) - (set_local $19 - (i64.shr_u - (get_local $19) - (i64.const 32) - ) - ) - (set_local $20 - (i64.shr_u - (get_local $20) - (i64.const 32) - ) - ) - (i64.add - (i64.add - (i64.mul - (get_local $16) - (get_local $17) - ) - (get_local $19) - ) - (get_local $20) - ) - ) - ) - (set_local $8 - (block $~lib/internal/number/umul64e|inlined.0 (result i32) - (i32.add - (i32.add - (get_local $4) - (get_local $12) - ) - (i32.const 64) - ) - ) - ) - (set_local $22 - (i64.sub - (block $~lib/internal/number/umul64f|inlined.1 (result i64) - (set_local $19 - (get_global $~lib/internal/number/_frc_plus) - ) - (set_local $18 - (i64.and - (get_local $19) - (i64.const 4294967295) - ) - ) - (set_local $17 - (i64.and - (get_local $7) - (i64.const 4294967295) - ) - ) - (set_local $16 - (i64.shr_u - (get_local $19) - (i64.const 32) - ) - ) - (set_local $15 - (i64.shr_u - (get_local $7) - (i64.const 32) - ) - ) - (set_local $14 - (i64.mul - (get_local $18) - (get_local $17) - ) - ) - (set_local $21 - (i64.add - (i64.mul - (get_local $16) - (get_local $17) - ) - (i64.shr_u - (get_local $14) - (i64.const 32) - ) - ) - ) - (set_local $22 - (i64.add - (i64.mul - (get_local $18) - (get_local $15) - ) - (i64.and - (get_local $21) - (i64.const 4294967295) - ) - ) - ) - (set_local $22 - (i64.add - (get_local $22) - (i64.const 2147483647) - ) - ) - (set_local $21 - (i64.shr_u - (get_local $21) - (i64.const 32) - ) - ) - (set_local $22 - (i64.shr_u - (get_local $22) - (i64.const 32) - ) - ) - (i64.add - (i64.add - (i64.mul - (get_local $16) - (get_local $15) - ) - (get_local $21) - ) - (get_local $22) - ) - ) - (i64.const 1) - ) - ) - (set_local $9 - (block $~lib/internal/number/umul64e|inlined.1 (result i32) - (set_local $9 - (get_global $~lib/internal/number/_exp) - ) - (i32.add - (i32.add - (get_local $9) - (get_local $12) - ) - (i32.const 64) - ) - ) - ) - (set_local $23 - (i64.add - (block $~lib/internal/number/umul64f|inlined.2 (result i64) - (set_local $21 - (get_global $~lib/internal/number/_frc_minus) - ) - (set_local $14 - (i64.and - (get_local $21) - (i64.const 4294967295) - ) - ) - (set_local $15 - (i64.and - (get_local $7) - (i64.const 4294967295) - ) - ) - (set_local $16 - (i64.shr_u - (get_local $21) - (i64.const 32) - ) - ) - (set_local $17 - (i64.shr_u - (get_local $7) - (i64.const 32) - ) - ) - (set_local $18 - (i64.mul - (get_local $14) - (get_local $15) - ) - ) - (set_local $19 - (i64.add - (i64.mul - (get_local $16) - (get_local $15) - ) - (i64.shr_u - (get_local $18) - (i64.const 32) - ) - ) - ) - (set_local $23 - (i64.add - (i64.mul - (get_local $14) - (get_local $17) - ) - (i64.and - (get_local $19) - (i64.const 4294967295) - ) - ) - ) - (set_local $23 - (i64.add - (get_local $23) - (i64.const 2147483647) - ) - ) - (set_local $19 - (i64.shr_u - (get_local $19) - (i64.const 32) - ) - ) - (set_local $23 - (i64.shr_u - (get_local $23) - (i64.const 32) - ) - ) - (i64.add - (i64.add - (i64.mul - (get_local $16) - (get_local $17) - ) - (get_local $19) - ) - (get_local $23) - ) - ) - (i64.const 1) - ) - ) - (set_local $19 - (i64.sub - (get_local $22) - (get_local $23) - ) - ) - (call $~lib/internal/number/genDigits - (get_local $0) - (get_local $20) - (get_local $8) - (get_local $22) - (get_local $9) - (get_local $19) - (get_local $2) - ) - ) - ) - (set_local $24 - (call $~lib/internal/number/prettify - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (i32.sub - (get_local $24) - (get_local $2) - ) - (get_global $~lib/internal/number/_K) - ) - ) - (i32.add - (get_local $24) - (get_local $2) - ) + get_local $1 + f64.const 0 + f64.lt + set_local $2 + get_local $2 + if + get_local $1 + f64.neg + set_local $1 + get_local $0 + get_global $~lib/internal/string/CharCode.MINUS + i32.store16 offset=4 + end + block $~lib/internal/number/grisu2|inlined.0 (result i32) + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $3 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap/i64 + set_local $4 + get_local $3 + i64.const 4503599627370495 + i64.and + set_local $5 + get_local $4 + i32.const 0 + i32.ne + i64.extend_u/i32 + i64.const 52 + i64.shl + get_local $5 + i64.add + set_local $6 + get_local $4 + i32.const 1 + get_local $4 + i32.const 0 + i32.ne + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + set_local $4 + block $~lib/internal/number/normalizedBoundaries|inlined.0 + get_local $6 + i64.const 1 + i64.shl + i64.const 1 + i64.add + set_local $7 + get_local $4 + i32.const 1 + i32.sub + set_local $8 + get_local $7 + i64.clz + i32.wrap/i64 + set_local $9 + get_local $7 + get_local $9 + i64.extend_s/i32 + i64.shl + set_local $7 + get_local $8 + get_local $9 + i32.sub + set_local $8 + i32.const 1 + get_local $6 + i64.const 4503599627370496 + i64.eq + i32.add + set_local $10 + get_local $7 + set_global $~lib/internal/number/_frc_plus + get_local $6 + get_local $10 + i64.extend_s/i32 + i64.shl + i64.const 1 + i64.sub + get_local $4 + get_local $10 + i32.sub + get_local $8 + i32.sub + i64.extend_s/i32 + i64.shl + set_global $~lib/internal/number/_frc_minus + get_local $8 + set_global $~lib/internal/number/_exp + end + block $~lib/internal/number/getCachedPower|inlined.0 + get_global $~lib/internal/number/_exp + set_local $10 + i32.const -61 + get_local $10 + i32.sub + f64.convert_s/i32 + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + set_local $11 + get_local $11 + i32.trunc_s/f64 + set_local $9 + get_local $9 + get_local $9 + f64.convert_s/i32 + get_local $11 + f64.ne + i32.add + set_local $9 + get_local $9 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + set_local $8 + i32.const 348 + get_local $8 + i32.const 3 + i32.shl + i32.sub + set_global $~lib/internal/number/_K + block $~lib/internal/number/FRC_POWERS|inlined.0 (result i32) + i32.const 3992 + end + i32.load + set_local $12 + block $~lib/internal/number/EXP_POWERS|inlined.0 (result i32) + i32.const 4256 + end + i32.load + set_local $13 + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) + get_local $12 + get_local $8 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + end + set_global $~lib/internal/number/_frc_pow + block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + get_local $13 + get_local $8 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=8 + end + set_global $~lib/internal/number/_exp_pow + end + get_local $6 + i64.clz + i32.wrap/i64 + set_local $13 + get_local $6 + get_local $13 + i64.extend_s/i32 + i64.shl + set_local $6 + get_local $4 + get_local $13 + i32.sub + set_local $4 + get_global $~lib/internal/number/_frc_pow + set_local $7 + get_global $~lib/internal/number/_exp_pow + set_local $12 + block $~lib/internal/number/umul64f|inlined.0 (result i64) + get_local $6 + i64.const 4294967295 + i64.and + set_local $14 + get_local $7 + i64.const 4294967295 + i64.and + set_local $15 + get_local $6 + i64.const 32 + i64.shr_u + set_local $16 + get_local $7 + i64.const 32 + i64.shr_u + set_local $17 + get_local $14 + get_local $15 + i64.mul + set_local $18 + get_local $16 + get_local $15 + i64.mul + get_local $18 + i64.const 32 + i64.shr_u + i64.add + set_local $19 + get_local $14 + get_local $17 + i64.mul + get_local $19 + i64.const 4294967295 + i64.and + i64.add + set_local $20 + get_local $20 + i64.const 2147483647 + i64.add + set_local $20 + get_local $19 + i64.const 32 + i64.shr_u + set_local $19 + get_local $20 + i64.const 32 + i64.shr_u + set_local $20 + get_local $16 + get_local $17 + i64.mul + get_local $19 + i64.add + get_local $20 + i64.add + end + set_local $20 + block $~lib/internal/number/umul64e|inlined.0 (result i32) + get_local $4 + get_local $12 + i32.add + i32.const 64 + i32.add + end + set_local $8 + block $~lib/internal/number/umul64f|inlined.1 (result i64) + get_global $~lib/internal/number/_frc_plus + set_local $19 + get_local $19 + i64.const 4294967295 + i64.and + set_local $18 + get_local $7 + i64.const 4294967295 + i64.and + set_local $17 + get_local $19 + i64.const 32 + i64.shr_u + set_local $16 + get_local $7 + i64.const 32 + i64.shr_u + set_local $15 + get_local $18 + get_local $17 + i64.mul + set_local $14 + get_local $16 + get_local $17 + i64.mul + get_local $14 + i64.const 32 + i64.shr_u + i64.add + set_local $21 + get_local $18 + get_local $15 + i64.mul + get_local $21 + i64.const 4294967295 + i64.and + i64.add + set_local $22 + get_local $22 + i64.const 2147483647 + i64.add + set_local $22 + get_local $21 + i64.const 32 + i64.shr_u + set_local $21 + get_local $22 + i64.const 32 + i64.shr_u + set_local $22 + get_local $16 + get_local $15 + i64.mul + get_local $21 + i64.add + get_local $22 + i64.add + end + i64.const 1 + i64.sub + set_local $22 + block $~lib/internal/number/umul64e|inlined.1 (result i32) + get_global $~lib/internal/number/_exp + set_local $9 + get_local $9 + get_local $12 + i32.add + i32.const 64 + i32.add + end + set_local $9 + block $~lib/internal/number/umul64f|inlined.2 (result i64) + get_global $~lib/internal/number/_frc_minus + set_local $21 + get_local $21 + i64.const 4294967295 + i64.and + set_local $14 + get_local $7 + i64.const 4294967295 + i64.and + set_local $15 + get_local $21 + i64.const 32 + i64.shr_u + set_local $16 + get_local $7 + i64.const 32 + i64.shr_u + set_local $17 + get_local $14 + get_local $15 + i64.mul + set_local $18 + get_local $16 + get_local $15 + i64.mul + get_local $18 + i64.const 32 + i64.shr_u + i64.add + set_local $19 + get_local $14 + get_local $17 + i64.mul + get_local $19 + i64.const 4294967295 + i64.and + i64.add + set_local $23 + get_local $23 + i64.const 2147483647 + i64.add + set_local $23 + get_local $19 + i64.const 32 + i64.shr_u + set_local $19 + get_local $23 + i64.const 32 + i64.shr_u + set_local $23 + get_local $16 + get_local $17 + i64.mul + get_local $19 + i64.add + get_local $23 + i64.add + end + i64.const 1 + i64.add + set_local $23 + get_local $22 + get_local $23 + i64.sub + set_local $19 + get_local $0 + get_local $20 + get_local $8 + get_local $22 + get_local $9 + get_local $19 + get_local $2 + call $~lib/internal/number/genDigits + end + set_local $24 + get_local $0 + get_local $2 + i32.const 1 + i32.shl + i32.add + get_local $24 + get_local $2 + i32.sub + get_global $~lib/internal/number/_K + call $~lib/internal/number/prettify + set_local $24 + get_local $24 + get_local $2 + i32.add ) (func $~lib/string/String#substring (; 58 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -8943,5044 +6600,3586 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (if - (i32.eqz - (i32.ne - (get_local $0) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 80) - (i32.const 269) - (i32.const 4) - ) - (unreachable) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (set_local $6 - (select - (tee_local $4 - (select - (tee_local $4 - (get_local $1) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $7 - (select - (tee_local $4 - (select - (tee_local $4 - (get_local $2) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $8 - (select - (tee_local $4 - (get_local $6) - ) - (tee_local $5 - (get_local $7) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $9 - (select - (tee_local $4 - (get_local $6) - ) - (tee_local $5 - (get_local $7) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $3 - (i32.sub - (get_local $9) - (get_local $8) - ) - ) - (if - (i32.eqz - (get_local $3) - ) - (return - (i32.const 256) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (get_local $8) - ) - ) - (i32.eq - (get_local $9) - (i32.load - (get_local $0) - ) - ) - (get_local $4) - ) - (return - (get_local $0) - ) - ) - (set_local $10 - (call $~lib/internal/string/allocateUnsafe - (get_local $3) - ) - ) - (call $~lib/internal/string/copyUnsafe - (get_local $10) - (i32.const 0) - (get_local $0) - (get_local $8) - (get_local $3) - ) - (get_local $10) + get_local $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 269 + i32.const 4 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + set_local $3 + get_local $1 + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $6 + get_local $2 + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $7 + get_local $6 + tee_local $4 + get_local $7 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $8 + get_local $6 + tee_local $4 + get_local $7 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $9 + get_local $9 + get_local $8 + i32.sub + set_local $3 + get_local $3 + i32.eqz + if + i32.const 256 + return + end + get_local $8 + i32.eqz + tee_local $4 + if (result i32) + get_local $9 + get_local $0 + i32.load + i32.eq + else + get_local $4 + end + if + get_local $0 + return + end + get_local $3 + call $~lib/internal/string/allocateUnsafe + set_local $10 + get_local $10 + i32.const 0 + get_local $0 + get_local $8 + get_local $3 + call $~lib/internal/string/copyUnsafe + get_local $10 ) (func $~lib/allocator/arena/__memory_free (; 59 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $~lib/internal/number/dtoa (; 60 ;) (type $Fi) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (f64.eq - (get_local $0) - (f64.const 0) - ) - (return - (i32.const 2888) - ) - ) - (if - (i32.eqz - (call $~lib/builtins/isFinite - (get_local $0) - ) - ) - (block - (if - (call $~lib/builtins/isNaN - (get_local $0) - ) - (return - (i32.const 2904) - ) - ) - (return - (select - (i32.const 2920) - (i32.const 2944) - (f64.lt - (get_local $0) - (f64.const 0) - ) - ) - ) - ) - ) - (set_local $1 - (call $~lib/internal/string/allocateUnsafe - (get_global $~lib/internal/number/MAX_DOUBLE_LENGTH) - ) - ) - (set_local $2 - (call $~lib/internal/number/dtoa_core - (get_local $1) - (get_local $0) - ) - ) - (set_local $3 - (call $~lib/string/String#substring - (get_local $1) - (i32.const 0) - (get_local $2) - ) - ) - (block $~lib/internal/string/freeUnsafe|inlined.0 - (block - (if - (i32.eqz - (get_local $1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 112) - (i32.const 28) - (i32.const 4) - ) - (unreachable) - ) - ) - (block $~lib/memory/memory.free|inlined.0 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $1) - ) - (br $~lib/memory/memory.free|inlined.0) - ) - ) - ) - ) - (get_local $3) + get_local $0 + f64.const 0 + f64.eq + if + i32.const 2888 + return + end + get_local $0 + call $~lib/builtins/isFinite + i32.eqz + if + get_local $0 + call $~lib/builtins/isNaN + if + i32.const 2904 + return + end + i32.const 2920 + i32.const 2944 + get_local $0 + f64.const 0 + f64.lt + select + return + end + get_global $~lib/internal/number/MAX_DOUBLE_LENGTH + call $~lib/internal/string/allocateUnsafe + set_local $1 + get_local $1 + get_local $0 + call $~lib/internal/number/dtoa_core + set_local $2 + get_local $1 + i32.const 0 + get_local $2 + call $~lib/string/String#substring + set_local $3 + block $~lib/internal/string/freeUnsafe|inlined.0 + block + get_local $1 + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 28 + i32.const 4 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.free|inlined.0 + block + get_local $1 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.0 + unreachable + end + unreachable + end + end + end + get_local $3 ) (func $start (; 61 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/string/str) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (get_global $std/string/str) - ) - (i32.const 16) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 19) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#charCodeAt - (get_global $std/string/str) - (i32.const 0) - ) - (i32.const 104) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 20) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromCharCode - (i32.const 0) - ) - (i32.const 168) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromCharCode - (i32.const 54) - ) - (i32.const 176) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromCharCode - (i32.add - (i32.const 65536) - (i32.const 54) - ) - ) - (i32.const 176) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromCodePoint - (i32.const 0) - ) - (i32.const 168) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String.fromCodePoint - (i32.const 54) - ) - (i32.const 176) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.fromCodePoint - (i32.const 119558) - ) - ) - (block - (call $~lib/env/abort - (i32.const 184) - (i32.const 48) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String#startsWith - (get_global $std/string/str) - (i32.const 192) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 30) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#endsWith|trampoline - (get_global $std/string/str) - (i32.const 216) - (i32.const 0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.and - (block $~lib/string/String#includes|inlined.0 (result i32) - (set_local $0 - (get_global $std/string/str) - ) - (set_local $1 - (i32.const 232) - ) - (set_local $2 - (i32.const 0) - ) - (i32.ne - (call $~lib/string/String#indexOf - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const -1) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 32) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#padStart|trampoline - (get_global $std/string/str) - (i32.const 0) - (i32.const 0) - ) - ) - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 34) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#padStart|trampoline - (get_global $std/string/str) - (i32.const 15) - (i32.const 0) - ) - ) - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 35) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#padStart|trampoline - (i32.const 256) - (i32.const 3) - (i32.const 0) - ) - ) - (i32.const 264) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 36) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart - (i32.const 256) - (i32.const 10) - (i32.const 256) - ) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 37) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart - (i32.const 280) - (i32.const 100) - (i32.const 256) - ) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 38) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#padStart|trampoline - (i32.const 288) - (i32.const 5) - (i32.const 0) - ) - ) - (i32.const 304) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart - (i32.const 288) - (i32.const 6) - (i32.const 320) - ) - (i32.const 336) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padStart - (i32.const 288) - (i32.const 8) - (i32.const 320) - ) - (i32.const 352) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 41) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#padEnd|trampoline - (get_global $std/string/str) - (i32.const 0) - (i32.const 0) - ) - ) - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 43) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#padEnd|trampoline - (get_global $std/string/str) - (i32.const 15) - (i32.const 0) - ) - ) - (get_global $std/string/str) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 44) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#padEnd|trampoline - (i32.const 256) - (i32.const 3) - (i32.const 0) - ) - ) - (i32.const 264) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 45) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd - (i32.const 256) - (i32.const 10) - (i32.const 256) - ) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 46) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd - (i32.const 280) - (i32.const 100) - (i32.const 256) - ) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 47) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#padEnd|trampoline - (i32.const 288) - (i32.const 5) - (i32.const 0) - ) - ) - (i32.const 376) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 48) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd - (i32.const 288) - (i32.const 6) - (i32.const 288) - ) - (i32.const 392) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 49) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#padEnd - (i32.const 288) - (i32.const 8) - (i32.const 288) - ) - (i32.const 408) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 50) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#indexOf - (i32.const 256) - (i32.const 256) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 52) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#indexOf - (i32.const 256) - (i32.const 192) - (i32.const 0) - ) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 53) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#indexOf - (i32.const 280) - (i32.const 280) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 54) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (get_global $std/string/str) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 55) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 256) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 56) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 432) - (i32.const 0) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 57) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 440) - (i32.const 0) - ) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 58) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 432) - (i32.const 2) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 59) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 432) - (i32.const 3) - ) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 60) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#indexOf - (get_global $std/string/str) - (i32.const 448) - (i32.const -1) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 61) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#lastIndexOf|trampoline - (i32.const 256) - (i32.const 256) - (i32.const 0) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 63) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#lastIndexOf|trampoline - (i32.const 256) - (i32.const 192) - (i32.const 0) - ) - ) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 64) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#lastIndexOf|trampoline - (get_global $std/string/str) - (i32.const 256) - (i32.const 0) - ) - ) - (i32.load - (get_global $std/string/str) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 65) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#lastIndexOf|trampoline - (get_global $std/string/str) - (i32.const 432) - (i32.const 0) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 66) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#lastIndexOf|trampoline - (get_global $std/string/str) - (i32.const 440) - (i32.const 0) - ) - ) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 67) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#lastIndexOf|trampoline - (get_global $std/string/str) - (i32.const 464) - (i32.const 0) - ) - ) - (i32.const 15) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 68) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#lastIndexOf - (get_global $std/string/str) - (i32.const 432) - (i32.const 2) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 69) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#lastIndexOf - (get_global $std/string/str) - (i32.const 432) - (i32.const 3) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 70) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#lastIndexOf - (get_global $std/string/str) - (i32.const 448) - (i32.const -1) - ) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 71) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#lastIndexOf - (get_global $std/string/str) - (i32.const 472) - (i32.const 0) - ) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 72) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/string/String#lastIndexOf - (get_global $std/string/str) - (i32.const 192) - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 73) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseInt - (i32.const 480) - (i32.const 0) - ) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 79) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseInt - (i32.const 488) - (i32.const 0) - ) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 80) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseInt - (i32.const 496) - (i32.const 0) - ) - (f64.const 5) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 81) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseInt - (i32.const 512) - (i32.const 0) - ) - (f64.const 455) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 82) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseInt - (i32.const 528) - (i32.const 0) - ) - (f64.const 3855) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 83) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseInt - (i32.const 544) - (i32.const 0) - ) - (f64.const 3855) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 84) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseInt - (i32.const 560) - (i32.const 0) - ) - (f64.const 11) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 85) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseInt - (i32.const 576) - (i32.const 0) - ) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 86) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseFloat - (i32.const 480) - ) - (f64.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 88) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseFloat - (i32.const 488) - ) - (f64.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 89) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseFloat - (i32.const 592) - ) - (f64.const 0.1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 90) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseFloat - (i32.const 608) - ) - (f64.const 0.25) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 91) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (f64.eq - (call $~lib/string/parseFloat - (i32.const 624) - ) - (f64.const 0.1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 92) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/c - (call $~lib/string/String.__concat - (i32.const 280) - (i32.const 648) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (get_global $std/string/c) - (i32.const 656) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 95) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__ne - (get_global $std/string/c) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 96) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (i32.const 256) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 97) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__ne - (i32.const 256) - (get_global $std/string/nullStr) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 98) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 648) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 100) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 664) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gte - (i32.const 664) - (i32.const 672) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 664) - (i32.const 656) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 103) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/string/String.__lt - (i32.const 664) - (i32.const 656) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 104) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/string/String.__lt - (i32.const 648) - (get_global $std/string/nullStr) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/string/String.__lt - (get_global $std/string/nullStr) - (i32.const 648) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 288) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 109) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__lt - (i32.const 256) - (i32.const 288) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 110) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gte - (i32.const 288) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 111) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__lte - (i32.const 256) - (i32.const 288) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 112) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/string/String.__lt - (i32.const 288) - (i32.const 256) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 113) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 256) - (i32.const 288) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 114) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/string/String.__lt - (i32.const 256) - (i32.const 256) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 115) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 256) - (i32.const 256) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 116) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gte - (i32.const 256) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 117) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__lte - (i32.const 256) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 118) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/a - (call $~lib/string/String.fromCodePoint - (i32.const 65377) - ) - ) - (set_global $std/string/b - (call $~lib/string/String.__concat - (call $~lib/string/String.fromCodePoint - (i32.const 55296) - ) - (call $~lib/string/String.fromCodePoint - (i32.const 56322) - ) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (get_global $std/string/a) - (get_global $std/string/b) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 122) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load - (i32.const 320) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 124) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 256) - (i32.const 100) - ) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 0) - ) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 127) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 1) - ) - (i32.const 280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 2) - ) - (i32.const 672) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 3) - ) - (i32.const 680) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 656) - (i32.const 4) - ) - (i32.const 696) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 5) - ) - (i32.const 720) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 6) - ) - (i32.const 736) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/string/String#repeat - (i32.const 280) - (i32.const 7) - ) - (i32.const 752) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 134) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (block (result i32) - (set_global $~argc - (i32.const 0) - ) - (call $~lib/string/String#split|trampoline - (i32.const 256) - (i32.const 0) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.0 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 1) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 256) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 139) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#split|trampoline - (i32.const 256) - (i32.const 256) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.1 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 141) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#split|trampoline - (i32.const 256) - (i32.const 432) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.2 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 1) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 256) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 143) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#split|trampoline - (i32.const 896) - (i32.const 912) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.3 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 1) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 896) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 145) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#split|trampoline - (i32.const 896) - (i32.const 432) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.4 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 3) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 147) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#split|trampoline - (i32.const 928) - (i32.const 952) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.5 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 3) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 149) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#split|trampoline - (i32.const 960) - (i32.const 432) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.6 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 4) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 256) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 3) - ) - (i32.const 920) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 151) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#split|trampoline - (i32.const 976) - (i32.const 432) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.7 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 4) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 256) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 648) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 3) - ) - (i32.const 920) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 153) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#split|trampoline - (i32.const 992) - (i32.const 432) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.8 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 4) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 3) - ) - (i32.const 256) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/string/String#split|trampoline - (i32.const 288) - (i32.const 256) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.9 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 3) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 157) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 288) - (i32.const 256) - (i32.const 0) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/array/Array#get:length|inlined.10 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 288) - (i32.const 256) - (i32.const 1) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.11 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 1) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 161) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 896) - (i32.const 432) - (i32.const 1) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.12 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 1) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 163) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 288) - (i32.const 256) - (i32.const 4) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.13 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 3) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 165) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 288) - (i32.const 256) - (i32.const -1) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.14 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 3) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 167) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/string/sa - (call $~lib/string/String#split - (i32.const 896) - (i32.const 432) - (i32.const -1) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (if (result i32) - (tee_local $2 - (i32.eq - (block $~lib/array/Array#get:length|inlined.15 (result i32) - (set_local $2 - (get_global $std/string/sa) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 3) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 0) - ) - (i32.const 280) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 1) - ) - (i32.const 648) - ) - (get_local $2) - ) - ) - (call $~lib/string/String.__eq - (call $~lib/array/Array#__get - (get_global $std/string/sa) - (i32.const 2) - ) - (i32.const 920) - ) - (get_local $2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 169) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 0) - ) - (i32.const 480) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 171) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 1) - ) - (i32.const 488) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 172) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 8) - ) - (i32.const 1528) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 173) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 123) - ) - (i32.const 320) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 174) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const -1000) - ) - (i32.const 1536) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 175) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 1234) - ) - (i32.const 1552) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 176) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 12345) - ) - (i32.const 1568) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 177) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 123456) - ) - (i32.const 1584) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 178) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 1111111) - ) - (i32.const 1600) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 179) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 1234567) - ) - (i32.const 1624) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 180) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 2147483646) - ) - (i32.const 1648) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 181) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const 2147483647) - ) - (i32.const 1672) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 182) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const -2147483648) - ) - (i32.const 1696) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 183) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa32 - (i32.const -1) - ) - (i32.const 1728) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 184) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa32 - (i32.const 0) - ) - (i32.const 480) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 186) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa32 - (i32.const 1000) - ) - (i32.const 1736) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 187) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa32 - (i32.const 2147483647) - ) - (i32.const 1672) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 188) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa32 - (i32.const -2147483648) - ) - (i32.const 1752) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 189) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa32 - (get_global $~lib/builtins/u32.MAX_VALUE) - ) - (i32.const 1776) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 190) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 0) - ) - (i32.const 480) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 192) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 1234) - ) - (i32.const 1552) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 193) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 99999999) - ) - (i32.const 2320) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 194) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 100000000) - ) - (i32.const 2344) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 195) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 4294967295) - ) - (i32.const 1776) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 196) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 68719476735) - ) - (i32.const 2368) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 197) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 868719476735) - ) - (i32.const 2400) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 198) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 999868719476735) - ) - (i32.const 2432) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 199) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 9999868719476735) - ) - (i32.const 2472) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 200) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (i64.const 19999868719476735) - ) - (i32.const 2512) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 201) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/utoa64 - (get_global $~lib/builtins/u64.MAX_VALUE) - ) - (i32.const 2552) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 202) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const 0) - ) - (i32.const 480) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 204) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -1234) - ) - (i32.const 2600) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 205) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const 4294967295) - ) - (i32.const 1776) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 206) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -4294967295) - ) - (i32.const 2616) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 207) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const 68719476735) - ) - (i32.const 2368) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 208) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -68719476735) - ) - (i32.const 2648) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 209) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -868719476735) - ) - (i32.const 2680) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 210) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -999868719476735) - ) - (i32.const 2712) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 211) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (i64.const -19999868719476735) - ) - (i32.const 2752) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 212) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (get_global $~lib/builtins/i64.MAX_VALUE) - ) - (i32.const 2792) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 213) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/itoa64 - (get_global $~lib/builtins/i64.MIN_VALUE) - ) - (i32.const 2840) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 214) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0) - ) - (i32.const 2888) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 217) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -0) - ) - (i32.const 2888) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 218) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const nan:0x8000000000000) - ) - (i32.const 2904) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 219) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const inf) - ) - (i32.const 2944) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 220) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.neg - (f64.const inf) - ) - ) - (i32.const 2920) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 221) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (get_global $~lib/builtins/f64.EPSILON) - ) - (i32.const 4336) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 222) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.neg - (get_global $~lib/builtins/f64.EPSILON) - ) - ) - (i32.const 4384) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 223) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (get_global $~lib/builtins/f64.MAX_VALUE) - ) - (i32.const 4432) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 224) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.neg - (get_global $~lib/builtins/f64.MAX_VALUE) - ) - ) - (i32.const 4488) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 225) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 4185580496821356722454785e274) - ) - (i32.const 4544) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 226) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 2.2250738585072014e-308) - ) - (i32.const 4592) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 227) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 2.9802322387695312e-08) - ) - (i32.const 4648) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 228) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -21098088986959632) - ) - (i32.const 4696) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 229) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 4.940656e-318) - ) - (i32.const 4744) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 230) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 9060801153433600) - ) - (i32.const 4776) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 231) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 4708356024711512064) - ) - (i32.const 4816) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 232) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 9409340012568248320) - ) - (i32.const 4864) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 233) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 5e-324) - ) - (i32.const 4912) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 234) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1) - ) - (i32.const 4928) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 240) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0.1) - ) - (i32.const 592) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 241) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1) - ) - (i32.const 4944) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 242) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -0.1) - ) - (i32.const 4960) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 243) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e6) - ) - (i32.const 4976) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 245) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e-06) - ) - (i32.const 5000) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 246) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1e6) - ) - (i32.const 5024) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 247) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1e-06) - ) - (i32.const 5048) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 248) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e7) - ) - (i32.const 5072) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 249) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e-07) - ) - (i32.const 5096) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 250) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1.e+308) - ) - (i32.const 5112) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 252) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1.e+308) - ) - (i32.const 5128) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 253) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const inf) - ) - (i32.const 2944) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 254) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -inf) - ) - (i32.const 2920) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 255) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e-308) - ) - (i32.const 5152) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 256) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1e-308) - ) - (i32.const 5168) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 257) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1e-323) - ) - (i32.const 5192) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 258) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1e-323) - ) - (i32.const 5208) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 259) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0) - ) - (i32.const 2888) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 260) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 4294967272) - ) - (i32.const 5232) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 262) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1.2312145673456234e-08) - ) - (i32.const 5264) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 263) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const -1.0471975511965976e-06) - ) - (i32.const 5312) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 264) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 555555555.5555556) - ) - (i32.const 5368) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 265) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0.9999999999999999) - ) - (i32.const 5408) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 266) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1) - ) - (i32.const 4928) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 267) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 12.34) - ) - (i32.const 5448) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 268) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.add - (f64.const 0.1) - (f64.const 0.2) - ) - ) - (i32.const 5464) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 269) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.div - (f64.const 1) - (f64.const 3) - ) - ) - (i32.const 5512) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 270) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1234e17) - ) - (i32.const 5552) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 271) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1234e18) - ) - (i32.const 5608) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 272) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 2.71828) - ) - (i32.const 5632) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 273) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0.0271828) - ) - (i32.const 5656) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 274) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 271.828) - ) - (i32.const 5680) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 275) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1.1e+128) - ) - (i32.const 5704) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 276) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 1.1e-64) - ) - (i32.const 5728) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 277) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.const 0.000035689) - ) - (i32.const 5752) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 278) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.promote/f32 - (get_global $~lib/builtins/f32.MAX_VALUE) - ) - ) - (i32.const 5784) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 280) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/number/dtoa - (f64.promote/f32 - (get_global $~lib/builtins/f32.EPSILON) - ) - ) - (i32.const 5832) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 281) - (i32.const 0) - ) - (unreachable) - ) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + get_global $std/string/str + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.load + i32.const 16 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 19 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 0 + call $~lib/string/String#charCodeAt + i32.const 104 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 20 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/string/String.fromCharCode + i32.const 168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 54 + call $~lib/string/String.fromCharCode + i32.const 176 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 65536 + i32.const 54 + i32.add + call $~lib/string/String.fromCharCode + i32.const 176 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/string/String.fromCodePoint + i32.const 168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 54 + call $~lib/string/String.fromCodePoint + i32.const 176 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 119558 + call $~lib/string/String.fromCodePoint + i32.eqz + if + i32.const 184 + i32.const 48 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 192 + i32.const 0 + call $~lib/string/String#startsWith + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 30 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 216 + i32.const 0 + call $~lib/string/String#endsWith|trampoline + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + block $~lib/string/String#includes|inlined.0 (result i32) + get_global $std/string/str + set_local $0 + i32.const 232 + set_local $1 + i32.const 0 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne + end + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 32 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 0 + i32.const 0 + call $~lib/string/String#padStart|trampoline + end + get_global $std/string/str + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 34 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 15 + i32.const 0 + call $~lib/string/String#padStart|trampoline + end + get_global $std/string/str + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 35 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 3 + i32.const 0 + call $~lib/string/String#padStart|trampoline + end + i32.const 264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 36 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 10 + i32.const 256 + call $~lib/string/String#padStart + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 37 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 100 + i32.const 256 + call $~lib/string/String#padStart + i32.const 280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 38 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 288 + i32.const 5 + i32.const 0 + call $~lib/string/String#padStart|trampoline + end + i32.const 304 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 6 + i32.const 320 + call $~lib/string/String#padStart + i32.const 336 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 8 + i32.const 320 + call $~lib/string/String#padStart + i32.const 352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 41 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 0 + i32.const 0 + call $~lib/string/String#padEnd|trampoline + end + get_global $std/string/str + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 43 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 15 + i32.const 0 + call $~lib/string/String#padEnd|trampoline + end + get_global $std/string/str + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 44 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 3 + i32.const 0 + call $~lib/string/String#padEnd|trampoline + end + i32.const 264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 45 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 10 + i32.const 256 + call $~lib/string/String#padEnd + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 46 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 100 + i32.const 256 + call $~lib/string/String#padEnd + i32.const 280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 47 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 288 + i32.const 5 + i32.const 0 + call $~lib/string/String#padEnd|trampoline + end + i32.const 376 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 48 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 6 + i32.const 288 + call $~lib/string/String#padEnd + i32.const 392 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 49 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 8 + i32.const 288 + call $~lib/string/String#padEnd + i32.const 408 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 50 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + i32.const 0 + call $~lib/string/String#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 52 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 192 + i32.const 0 + call $~lib/string/String#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 53 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 280 + i32.const 0 + call $~lib/string/String#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 54 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + get_global $std/string/str + i32.const 0 + call $~lib/string/String#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 55 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 256 + i32.const 0 + call $~lib/string/String#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 56 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 432 + i32.const 0 + call $~lib/string/String#indexOf + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 57 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 440 + i32.const 0 + call $~lib/string/String#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 58 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 432 + i32.const 2 + call $~lib/string/String#indexOf + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 59 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 432 + i32.const 3 + call $~lib/string/String#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 60 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 448 + i32.const -1 + call $~lib/string/String#indexOf + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 61 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 256 + i32.const 0 + call $~lib/string/String#lastIndexOf|trampoline + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 63 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 192 + i32.const 0 + call $~lib/string/String#lastIndexOf|trampoline + end + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 64 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 256 + i32.const 0 + call $~lib/string/String#lastIndexOf|trampoline + end + get_global $std/string/str + i32.load + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 65 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 432 + i32.const 0 + call $~lib/string/String#lastIndexOf|trampoline + end + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 66 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 440 + i32.const 0 + call $~lib/string/String#lastIndexOf|trampoline + end + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 67 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 464 + i32.const 0 + call $~lib/string/String#lastIndexOf|trampoline + end + i32.const 15 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 68 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 432 + i32.const 2 + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 69 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 432 + i32.const 3 + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 70 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 448 + i32.const -1 + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 71 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 472 + i32.const 0 + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 72 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 192 + i32.const 0 + call $~lib/string/String#lastIndexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 73 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 480 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 79 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 488 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 80 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 496 + i32.const 0 + call $~lib/string/parseInt + f64.const 5 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 81 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 512 + i32.const 0 + call $~lib/string/parseInt + f64.const 455 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 82 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 528 + i32.const 0 + call $~lib/string/parseInt + f64.const 3855 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 83 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 544 + i32.const 0 + call $~lib/string/parseInt + f64.const 3855 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 84 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 560 + i32.const 0 + call $~lib/string/parseInt + f64.const 11 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 85 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 576 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 86 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 480 + call $~lib/string/parseFloat + f64.const 0 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 88 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 488 + call $~lib/string/parseFloat + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 89 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 592 + call $~lib/string/parseFloat + f64.const 0.1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 90 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 608 + call $~lib/string/parseFloat + f64.const 0.25 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 91 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 624 + call $~lib/string/parseFloat + f64.const 0.1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 92 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 648 + call $~lib/string/String.__concat + set_global $std/string/c + get_global $std/string/c + i32.const 656 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 95 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/c + i32.const 280 + call $~lib/string/String.__ne + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 96 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 97 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + get_global $std/string/nullStr + call $~lib/string/String.__ne + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 98 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 648 + i32.const 280 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 100 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 664 + i32.const 280 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 101 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 664 + i32.const 672 + call $~lib/string/String.__gte + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 102 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 664 + i32.const 656 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 103 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 664 + i32.const 656 + call $~lib/string/String.__lt + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 104 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 648 + get_global $std/string/nullStr + call $~lib/string/String.__lt + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 106 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/nullStr + i32.const 648 + call $~lib/string/String.__lt + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 107 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 109 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 288 + call $~lib/string/String.__lt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 110 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + call $~lib/string/String.__gte + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 111 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 288 + call $~lib/string/String.__lte + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 112 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + call $~lib/string/String.__lt + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 113 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 288 + call $~lib/string/String.__gt + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 114 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + call $~lib/string/String.__lt + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 115 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + call $~lib/string/String.__gt + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 116 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + call $~lib/string/String.__gte + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 117 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + call $~lib/string/String.__lte + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 118 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 65377 + call $~lib/string/String.fromCodePoint + set_global $std/string/a + i32.const 55296 + call $~lib/string/String.fromCodePoint + i32.const 56322 + call $~lib/string/String.fromCodePoint + call $~lib/string/String.__concat + set_global $std/string/b + get_global $std/string/a + get_global $std/string/b + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 122 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 320 + i32.load + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 124 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 100 + call $~lib/string/String#repeat + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 126 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 0 + call $~lib/string/String#repeat + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 127 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 1 + call $~lib/string/String#repeat + i32.const 280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 128 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 2 + call $~lib/string/String#repeat + i32.const 672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 129 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 3 + call $~lib/string/String#repeat + i32.const 680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 130 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 656 + i32.const 4 + call $~lib/string/String#repeat + i32.const 696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 131 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 5 + call $~lib/string/String#repeat + i32.const 720 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 132 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 6 + call $~lib/string/String#repeat + i32.const 736 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 133 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 7 + call $~lib/string/String#repeat + i32.const 752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 134 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + set_global $~argc + i32.const 256 + i32.const 0 + i32.const 0 + call $~lib/string/String#split|trampoline + end + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.0 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 1 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 256 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 139 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 256 + i32.const 0 + call $~lib/string/String#split|trampoline + end + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.1 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 141 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 432 + i32.const 0 + call $~lib/string/String#split|trampoline + end + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.2 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 1 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 256 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 896 + i32.const 912 + i32.const 0 + call $~lib/string/String#split|trampoline + end + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.3 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 1 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 896 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 145 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 896 + i32.const 432 + i32.const 0 + call $~lib/string/String#split|trampoline + end + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.4 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 3 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 147 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 928 + i32.const 952 + i32.const 0 + call $~lib/string/String#split|trampoline + end + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.5 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 3 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 149 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 960 + i32.const 432 + i32.const 0 + call $~lib/string/String#split|trampoline + end + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.6 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 4 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 256 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 3 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 151 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 976 + i32.const 432 + i32.const 0 + call $~lib/string/String#split|trampoline + end + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.7 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 4 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 256 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 3 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 153 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 992 + i32.const 432 + i32.const 0 + call $~lib/string/String#split|trampoline + end + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.8 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 4 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 3 + call $~lib/array/Array#__get + i32.const 256 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + i32.const 288 + i32.const 256 + i32.const 0 + call $~lib/string/String#split|trampoline + end + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.9 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 3 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 157 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + i32.const 0 + call $~lib/string/String#split + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.10 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + i32.const 1 + call $~lib/string/String#split + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.11 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 1 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 161 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 896 + i32.const 432 + i32.const 1 + call $~lib/string/String#split + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.12 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 1 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 163 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + i32.const 4 + call $~lib/string/String#split + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.13 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 3 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 165 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 288 + i32.const 256 + i32.const -1 + call $~lib/string/String#split + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.14 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 3 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 167 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 896 + i32.const 432 + i32.const -1 + call $~lib/string/String#split + set_global $std/string/sa + block $~lib/array/Array#get:length|inlined.15 (result i32) + get_global $std/string/sa + set_local $2 + get_local $2 + i32.load offset=4 + end + i32.const 3 + i32.eq + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 0 + call $~lib/array/Array#__get + i32.const 280 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 1 + call $~lib/array/Array#__get + i32.const 648 + call $~lib/string/String.__eq + else + get_local $2 + end + tee_local $2 + if (result i32) + get_global $std/string/sa + i32.const 2 + call $~lib/array/Array#__get + i32.const 920 + call $~lib/string/String.__eq + else + get_local $2 + end + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 169 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/internal/number/itoa32 + i32.const 480 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 171 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $~lib/internal/number/itoa32 + i32.const 488 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 172 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + call $~lib/internal/number/itoa32 + i32.const 1528 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 173 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 123 + call $~lib/internal/number/itoa32 + i32.const 320 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 174 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1000 + call $~lib/internal/number/itoa32 + i32.const 1536 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 175 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1234 + call $~lib/internal/number/itoa32 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 176 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 12345 + call $~lib/internal/number/itoa32 + i32.const 1568 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 177 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 123456 + call $~lib/internal/number/itoa32 + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 178 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1111111 + call $~lib/internal/number/itoa32 + i32.const 1600 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 179 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1234567 + call $~lib/internal/number/itoa32 + i32.const 1624 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 180 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2147483646 + call $~lib/internal/number/itoa32 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 181 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2147483647 + call $~lib/internal/number/itoa32 + i32.const 1672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 182 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -2147483648 + call $~lib/internal/number/itoa32 + i32.const 1696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 183 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -1 + call $~lib/internal/number/itoa32 + i32.const 1728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 184 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $~lib/internal/number/utoa32 + i32.const 480 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 186 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1000 + call $~lib/internal/number/utoa32 + i32.const 1736 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 187 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2147483647 + call $~lib/internal/number/utoa32 + i32.const 1672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 188 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const -2147483648 + call $~lib/internal/number/utoa32 + i32.const 1752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 189 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u32.MAX_VALUE + call $~lib/internal/number/utoa32 + i32.const 1776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 190 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + call $~lib/internal/number/utoa64 + i32.const 480 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 192 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 1234 + call $~lib/internal/number/utoa64 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 193 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 99999999 + call $~lib/internal/number/utoa64 + i32.const 2320 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 194 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 100000000 + call $~lib/internal/number/utoa64 + i32.const 2344 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 195 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 4294967295 + call $~lib/internal/number/utoa64 + i32.const 1776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 196 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 68719476735 + call $~lib/internal/number/utoa64 + i32.const 2368 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 197 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 868719476735 + call $~lib/internal/number/utoa64 + i32.const 2400 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 198 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 999868719476735 + call $~lib/internal/number/utoa64 + i32.const 2432 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 199 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 9999868719476735 + call $~lib/internal/number/utoa64 + i32.const 2472 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 200 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 19999868719476735 + call $~lib/internal/number/utoa64 + i32.const 2512 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 201 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u64.MAX_VALUE + call $~lib/internal/number/utoa64 + i32.const 2552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 202 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 0 + call $~lib/internal/number/itoa64 + i32.const 480 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 204 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1234 + call $~lib/internal/number/itoa64 + i32.const 2600 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 205 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 4294967295 + call $~lib/internal/number/itoa64 + i32.const 1776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 206 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -4294967295 + call $~lib/internal/number/itoa64 + i32.const 2616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 207 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 68719476735 + call $~lib/internal/number/itoa64 + i32.const 2368 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 208 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -68719476735 + call $~lib/internal/number/itoa64 + i32.const 2648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 209 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -868719476735 + call $~lib/internal/number/itoa64 + i32.const 2680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 210 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -999868719476735 + call $~lib/internal/number/itoa64 + i32.const 2712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 211 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -19999868719476735 + call $~lib/internal/number/itoa64 + i32.const 2752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 212 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/i64.MAX_VALUE + call $~lib/internal/number/itoa64 + i32.const 2792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 213 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/i64.MIN_VALUE + call $~lib/internal/number/itoa64 + i32.const 2840 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 214 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + call $~lib/internal/number/dtoa + i32.const 2888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 217 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0 + call $~lib/internal/number/dtoa + i32.const 2888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 218 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const nan:0x8000000000000 + call $~lib/internal/number/dtoa + i32.const 2904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 219 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + call $~lib/internal/number/dtoa + i32.const 2944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 220 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + call $~lib/internal/number/dtoa + i32.const 2920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 221 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f64.EPSILON + call $~lib/internal/number/dtoa + i32.const 4336 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 222 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f64.EPSILON + f64.neg + call $~lib/internal/number/dtoa + i32.const 4384 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 223 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f64.MAX_VALUE + call $~lib/internal/number/dtoa + i32.const 4432 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 224 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f64.MAX_VALUE + f64.neg + call $~lib/internal/number/dtoa + i32.const 4488 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 225 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4185580496821356722454785e274 + call $~lib/internal/number/dtoa + i32.const 4544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 226 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072014e-308 + call $~lib/internal/number/dtoa + i32.const 4592 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 227 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.9802322387695312e-08 + call $~lib/internal/number/dtoa + i32.const 4648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 228 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -21098088986959632 + call $~lib/internal/number/dtoa + i32.const 4696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 229 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.940656e-318 + call $~lib/internal/number/dtoa + i32.const 4744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 230 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9060801153433600 + call $~lib/internal/number/dtoa + i32.const 4776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 231 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4708356024711512064 + call $~lib/internal/number/dtoa + i32.const 4816 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 232 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9409340012568248320 + call $~lib/internal/number/dtoa + i32.const 4864 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 233 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + call $~lib/internal/number/dtoa + i32.const 4912 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 234 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + call $~lib/internal/number/dtoa + i32.const 4928 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 240 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.1 + call $~lib/internal/number/dtoa + i32.const 592 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 241 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1 + call $~lib/internal/number/dtoa + i32.const 4944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 242 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -0.1 + call $~lib/internal/number/dtoa + i32.const 4960 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 243 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e6 + call $~lib/internal/number/dtoa + i32.const 4976 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 245 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-06 + call $~lib/internal/number/dtoa + i32.const 5000 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 246 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1e6 + call $~lib/internal/number/dtoa + i32.const 5024 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 247 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1e-06 + call $~lib/internal/number/dtoa + i32.const 5048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 248 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e7 + call $~lib/internal/number/dtoa + i32.const 5072 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-07 + call $~lib/internal/number/dtoa + i32.const 5096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 250 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.e+308 + call $~lib/internal/number/dtoa + i32.const 5112 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 252 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.e+308 + call $~lib/internal/number/dtoa + i32.const 5128 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 253 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + call $~lib/internal/number/dtoa + i32.const 2944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 254 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + call $~lib/internal/number/dtoa + i32.const 2920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 255 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-308 + call $~lib/internal/number/dtoa + i32.const 5152 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 256 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1e-308 + call $~lib/internal/number/dtoa + i32.const 5168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 257 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-323 + call $~lib/internal/number/dtoa + i32.const 5192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 258 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1e-323 + call $~lib/internal/number/dtoa + i32.const 5208 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 259 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0 + call $~lib/internal/number/dtoa + i32.const 2888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 260 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4294967272 + call $~lib/internal/number/dtoa + i32.const 5232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 262 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.2312145673456234e-08 + call $~lib/internal/number/dtoa + i32.const 5264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 263 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -1.0471975511965976e-06 + call $~lib/internal/number/dtoa + i32.const 5312 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 264 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 555555555.5555556 + call $~lib/internal/number/dtoa + i32.const 5368 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 265 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.9999999999999999 + call $~lib/internal/number/dtoa + i32.const 5408 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 266 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + call $~lib/internal/number/dtoa + i32.const 4928 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 267 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 12.34 + call $~lib/internal/number/dtoa + i32.const 5448 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 268 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.1 + f64.const 0.2 + f64.add + call $~lib/internal/number/dtoa + i32.const 5464 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 269 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + f64.const 3 + f64.div + call $~lib/internal/number/dtoa + i32.const 5512 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 270 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1234e17 + call $~lib/internal/number/dtoa + i32.const 5552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 271 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1234e18 + call $~lib/internal/number/dtoa + i32.const 5608 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 272 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.71828 + call $~lib/internal/number/dtoa + i32.const 5632 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 273 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.0271828 + call $~lib/internal/number/dtoa + i32.const 5656 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 274 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 271.828 + call $~lib/internal/number/dtoa + i32.const 5680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 275 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1e+128 + call $~lib/internal/number/dtoa + i32.const 5704 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 276 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1e-64 + call $~lib/internal/number/dtoa + i32.const 5728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 277 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.000035689 + call $~lib/internal/number/dtoa + i32.const 5752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 278 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f32.MAX_VALUE + f64.promote/f32 + call $~lib/internal/number/dtoa + i32.const 5784 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 280 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/f32.EPSILON + f64.promote/f32 + call $~lib/internal/number/dtoa + i32.const 5832 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 281 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 62 ;) (type $v) ) diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 7f376237..0aede3b3 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -11,14 +11,14 @@ (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\03\00\00\001\002\003") (data (i32.const 24) "\0d\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s") (data (i32.const 56) "\13\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") (data (i32.const 104) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $~lib/symbol/nextId (mut i32) (i32.const 12)) @@ -35,829 +35,606 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/symbol/Symbol (; 1 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/symbol/Symbol (; 1 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (set_global $~lib/symbol/nextId - (i32.add - (tee_local $0 - (get_global $~lib/symbol/nextId) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (unreachable) - ) - (get_local $0) + get_global $~lib/symbol/nextId + tee_local $0 + i32.const 1 + i32.add + set_global $~lib/symbol/nextId + get_local $0 + i32.eqz + if + unreachable + end + get_local $0 ) - (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/memory/memory.allocate (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (i32.const 24) - ) + (func $~lib/memory/memory.allocate (; 3 ;) (type $FUNCSIG$i) (result i32) + i32.const 24 + call $~lib/allocator/arena/__memory_allocate ) - (func $~lib/internal/arraybuffer/computeSize (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - ) - ) + (func $~lib/internal/arraybuffer/computeSize (; 4 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + get_local $0 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl ) - (func $~lib/internal/arraybuffer/allocateUnsafe (; 5 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/arraybuffer/allocateUnsafe (; 5 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 104) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 104 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/internal/memory/memset (; 6 ;) (; has Stack IR ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/internal/memory/memset (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - (if - (i32.eqz - (get_local $1) - ) - (return) - ) - (i32.store8 - (get_local $0) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 1) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (get_local $2) - (i32.const 3) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $1 - (i32.and - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 8) - ) - (i32.const 0) - ) - (if - (i32.le_u - (get_local $1) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (tee_local $2 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (i32.const 28) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 24) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 20) - ) - (i32.const 0) - ) - (i32.store - (i32.sub - (get_local $2) - (i32.const 16) - ) - (i32.const 0) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $2 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $2) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $1) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (i64.const 0) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (i64.const 0) - ) - (set_local $1 - (i32.sub - (get_local $1) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $1 + i32.eqz + if + return + end + get_local $0 + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + get_local $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + get_local $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + get_local $0 + get_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $2 + i32.add + tee_local $0 + i32.const 0 + i32.store + get_local $0 + get_local $1 + get_local $2 + i32.sub + i32.const -4 + i32.and + tee_local $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 8 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 12 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 8 + i32.sub + i32.const 0 + i32.store + get_local $1 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 16 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 20 + i32.add + i32.const 0 + i32.store + get_local $0 + i32.const 24 + i32.add + i32.const 0 + i32.store + get_local $0 + get_local $1 + i32.add + tee_local $2 + i32.const 28 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 24 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 20 + i32.sub + i32.const 0 + i32.store + get_local $2 + i32.const 16 + i32.sub + i32.const 0 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $2 + i32.add + set_local $0 + get_local $1 + get_local $2 + i32.sub + set_local $1 + loop $continue|0 + get_local $1 + i32.const 32 + i32.ge_u + if + get_local $0 + i64.const 0 + i64.store + get_local $0 + i32.const 8 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 16 + i32.add + i64.const 0 + i64.store + get_local $0 + i32.const 24 + i32.add + i64.const 0 + i64.store + get_local $1 + i32.const 32 + i32.sub + set_local $1 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 56) - (i32.const 16) - (i32.const 40) - ) - (unreachable) - ) - ) - (set_local $2 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $1) - (i32.const 1) - ) - ) - (call $~lib/internal/memory/memset - (i32.add - (get_local $2) - (i32.const 8) - ) - (get_local $0) - ) - ) - (get_local $2) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 56 + i32.const 16 + i32.const 40 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $2 + get_local $1 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + i32.const 8 + i32.add + get_local $0 + call $~lib/internal/memory/memset + end + get_local $2 ) - (func $~lib/map/Map#clear (; 8 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~lib/map/Map#clear (; 8 ;) (type $iv) (param $0 i32) (local $1 i32) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 3) - ) - (set_local $1 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (get_local $1) - ) - (i32.store offset=12 - (get_local $0) - (i32.const 4) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $1 + get_local $0 + get_local $1 + i32.store + get_local $0 + i32.const 3 + i32.store offset=4 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $1 + get_local $0 + get_local $1 + i32.store offset=8 + get_local $0 + i32.const 4 + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 9 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 9 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (i32.store - (tee_local $0 - (call $~lib/memory/memory.allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) - (call $~lib/map/Map#clear - (get_local $0) - ) - (get_local $0) + call $~lib/memory/memory.allocate + tee_local $0 + i32.const 0 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + i32.const 0 + i32.store offset=8 + get_local $0 + i32.const 0 + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 + get_local $0 + call $~lib/map/Map#clear + get_local $0 ) - (func $~lib/internal/hash/hashStr (; 10 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/hash/hashStr (; 10 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $2 - (i32.const -2128831035) - ) - (block $break|0 - (set_local $3 - (i32.shl - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_u - (get_local $1) - (get_local $3) - ) - ) - (set_local $2 - (i32.mul - (i32.xor - (get_local $2) - (i32.load8_u offset=4 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (i32.const 16777619) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $2) + i32.const -2128831035 + set_local $2 + block $break|0 + get_local $0 + i32.load + i32.const 1 + i32.shl + set_local $3 + loop $repeat|0 + get_local $1 + get_local $3 + i32.ge_u + br_if $break|0 + get_local $2 + get_local $0 + get_local $1 + i32.add + i32.load8_u offset=4 + i32.xor + i32.const 16777619 + i32.mul + set_local $2 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $repeat|0 + unreachable + end + unreachable + end + get_local $2 ) - (func $~lib/internal/string/compareUnsafe (; 11 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/string/compareUnsafe (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (get_local $0) - ) - (loop $continue|0 - (if - (tee_local $0 - (if (result i32) - (get_local $2) - (i32.eqz - (tee_local $4 - (i32.sub - (i32.load16_u offset=4 - (get_local $3) - ) - (i32.load16_u offset=4 - (get_local $1) - ) - ) - ) - ) - (get_local $2) - ) - ) - (block - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 1) - ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (get_local $4) + get_local $0 + set_local $3 + loop $continue|0 + get_local $2 + if (result i32) + get_local $3 + i32.load16_u offset=4 + get_local $1 + i32.load16_u offset=4 + i32.sub + tee_local $4 + i32.eqz + else + get_local $2 + end + tee_local $0 + if + get_local $2 + i32.const 1 + i32.sub + set_local $2 + get_local $3 + i32.const 1 + i32.add + set_local $3 + get_local $1 + i32.const 1 + i32.add + set_local $1 + br $continue|0 + end + end + get_local $4 ) - (func $~lib/string/String.__eq (; 12 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (i32.eqz - (tee_local $2 - (i32.eqz - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.eqz - (get_local $1) - ) - ) - ) - (if - (get_local $2) - (return - (i32.const 0) - ) - ) - (if - (i32.ne - (tee_local $2 - (i32.load - (get_local $0) - ) - ) - (i32.load - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.eqz + tee_local $2 + i32.eqz + if + get_local $1 + i32.eqz + set_local $2 + end + get_local $2 + if + i32.const 0 + return + end + get_local $0 + i32.load + tee_local $2 + get_local $1 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + get_local $1 + get_local $2 + call $~lib/internal/string/compareUnsafe + i32.eqz ) - (func $~lib/map/Map#find (; 13 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (call $~lib/string/String.__eq - (i32.load - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/map/Map#find (; 13 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + i32.load + get_local $1 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=8 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/map/Map#has (; 14 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hashStr - (get_local $1) - ) - ) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hashStr + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#get (; 15 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 15 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hashStr - (get_local $1) - ) - ) - (tee_local $0 - (if (result i32) - (tee_local $0 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (unreachable) - ) - ) + get_local $1 + call $~lib/internal/hash/hashStr + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + tee_local $0 + if (result i32) + get_local $0 + i32.load offset=4 + else + unreachable + end + tee_local $0 ) - (func $~lib/map/Map#rehash (; 16 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 16 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -865,407 +642,276 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.mul - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 12) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $3 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (i32.const 12) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $3) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.const 1) - ) - ) - (block - (i32.store - (get_local $2) - (i32.load - (get_local $3) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=4 - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hashStr - (i32.load - (get_local $3) - ) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 12) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 12) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 12 + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $3 + get_local $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $2 + loop $continue|0 + get_local $3 + get_local $8 + i32.ne + if + get_local $3 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + get_local $3 + i32.load + i32.store + get_local $2 + get_local $3 + i32.load offset=4 + i32.store offset=4 + get_local $3 + i32.load + call $~lib/internal/hash/hashStr + set_local $4 + get_local $2 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $2 + i32.store offset=8 + get_local $2 + i32.const 12 + i32.add + set_local $2 + end + get_local $3 + i32.const 12 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/map/Map#set (; 17 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 17 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $5 - (call $~lib/internal/hash/hashStr - (get_local $1) - ) - ) - (if - (tee_local $3 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (tee_local $3 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $4 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store - (tee_local $3 - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (i32.mul - (get_local $4) - (i32.const 12) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hashStr + set_local $5 + get_local $0 + get_local $1 + get_local $5 + call $~lib/map/Map#find + tee_local $3 + if + get_local $3 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $3 + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $4 + i32.const 1 + i32.add + i32.store offset=16 + get_local $3 + i32.const 8 + i32.add + get_local $4 + i32.const 12 + i32.mul + i32.add + tee_local $3 + get_local $1 + i32.store + get_local $3 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $3 + get_local $0 + i32.load + get_local $5 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $3 + i32.store offset=8 + end ) - (func $~lib/internal/hash/hash32 (; 18 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.mul - (i32.xor - (i32.and - (get_local $0) - (i32.const 255) - ) - (i32.const -2128831035) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (i32.const 16777619) - ) - (i32.shr_u - (get_local $0) - (i32.const 24) - ) - ) - (i32.const 16777619) - ) + (func $~lib/internal/hash/hash32 (; 18 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 255 + i32.and + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + i32.const 16777619 + i32.mul + get_local $0 + i32.const 24 + i32.shr_u + i32.xor + i32.const 16777619 + i32.mul ) - (func $~lib/map/Map#find (; 19 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (set_local $2 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $continue|0 - (if - (get_local $2) - (block - (if - (tee_local $0 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const 1) - ) - ) - ) - (set_local $0 - (i32.eq - (i32.load - (get_local $2) - ) - (get_local $1) - ) - ) - ) - (if - (get_local $0) - (return - (get_local $2) - ) - ) - (set_local $2 - (i32.and - (i32.load offset=8 - (get_local $2) - ) - (i32.const -2) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) + (func $~lib/map/Map#find (; 19 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + set_local $2 + loop $continue|0 + get_local $2 + if + get_local $2 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + tee_local $0 + if + get_local $2 + i32.load + get_local $1 + i32.eq + set_local $0 + end + get_local $0 + if + get_local $2 + return + end + get_local $2 + i32.load offset=8 + i32.const -2 + i32.and + set_local $2 + br $continue|0 + end + end + i32.const 0 ) - (func $~lib/map/Map#rehash (; 20 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 20 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1273,544 +919,383 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.shl - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 2) - ) - (i32.const 0) - ) - ) - (set_local $6 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.mul - (tee_local $7 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (f64.const 2.6666666666666665) - ) - ) - ) - (i32.const 12) - ) - (i32.const 1) - ) - ) - (set_local $8 - (i32.add - (tee_local $3 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (i32.const 8) - ) - ) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (i32.const 12) - ) - ) - ) - (set_local $2 - (i32.add - (get_local $6) - (i32.const 8) - ) - ) - (loop $continue|0 - (if - (i32.ne - (get_local $3) - (get_local $8) - ) - (block - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.const 1) - ) - ) - (block - (i32.store - (get_local $2) - (i32.load - (get_local $3) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load offset=4 - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/hash/hash32 - (i32.load - (get_local $3) - ) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load offset=8 - (tee_local $4 - (i32.add - (get_local $5) - (i32.shl - (i32.and - (get_local $4) - (get_local $1) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 12) - ) - ) - ) - ) - (set_local $3 - (i32.add - (get_local $3) - (i32.const 12) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $5) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $6) - ) - (i32.store offset=12 - (get_local $0) - (get_local $7) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + tee_local $2 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $2 + f64.convert_s/i32 + f64.const 2.6666666666666665 + f64.mul + i32.trunc_s/f64 + tee_local $7 + i32.const 12 + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $6 + get_local $0 + i32.load offset=8 + i32.const 8 + i32.add + tee_local $3 + get_local $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + set_local $8 + get_local $6 + i32.const 8 + i32.add + set_local $2 + loop $continue|0 + get_local $3 + get_local $8 + i32.ne + if + get_local $3 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + get_local $2 + get_local $3 + i32.load + i32.store + get_local $2 + get_local $3 + i32.load offset=4 + i32.store offset=4 + get_local $3 + i32.load + call $~lib/internal/hash/hash32 + set_local $4 + get_local $2 + get_local $5 + get_local $4 + get_local $1 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $2 + i32.store offset=8 + get_local $2 + i32.const 12 + i32.add + set_local $2 + end + get_local $3 + i32.const 12 + i32.add + set_local $3 + br $continue|0 + end + end + get_local $0 + get_local $5 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $6 + i32.store offset=8 + get_local $0 + get_local $7 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) - (func $~lib/map/Map#set (; 21 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 21 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $5 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - (if - (tee_local $3 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (tee_local $3 - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (f64.const 0.75) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $3 - (i32.load offset=8 - (get_local $0) - ) - ) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $4 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store - (tee_local $3 - (i32.add - (i32.add - (get_local $3) - (i32.const 8) - ) - (i32.mul - (get_local $4) - (i32.const 12) - ) - ) - ) - (get_local $1) - ) - (i32.store offset=4 - (get_local $3) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $3) - (i32.load offset=8 - (tee_local $4 - (i32.add - (i32.load - (get_local $0) - ) - (i32.shl - (i32.and - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - ) - ) + get_local $1 + call $~lib/internal/hash/hash32 + set_local $5 + get_local $0 + get_local $1 + get_local $5 + call $~lib/map/Map#find + tee_local $3 + if + get_local $3 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + f64.const 0.75 + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + tee_local $3 + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $3 + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $4 + i32.const 1 + i32.add + i32.store offset=16 + get_local $3 + i32.const 8 + i32.add + get_local $4 + i32.const 12 + i32.mul + i32.add + tee_local $3 + get_local $1 + i32.store + get_local $3 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $3 + get_local $0 + i32.load + get_local $5 + get_local $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + tee_local $4 + i32.load offset=8 + i32.store offset=8 + get_local $4 + get_local $3 + i32.store offset=8 + end ) - (func $~lib/symbol/Symbol.for (; 22 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $~lib/symbol/Symbol.for (; 22 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) - (if - (get_global $~lib/symbol/stringToId) - (if - (call $~lib/map/Map#has - (get_global $~lib/symbol/stringToId) - (i32.const 8) - ) - (return - (call $~lib/map/Map#get - (get_global $~lib/symbol/stringToId) - (i32.const 8) - ) - ) - ) - (block - (set_global $~lib/symbol/stringToId - (call $~lib/map/Map#constructor) - ) - (set_global $~lib/symbol/idToString - (call $~lib/map/Map#constructor) - ) - ) - ) - (set_global $~lib/symbol/nextId - (i32.add - (tee_local $0 - (get_global $~lib/symbol/nextId) - ) - (i32.const 1) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (unreachable) - ) - (call $~lib/map/Map#set - (get_global $~lib/symbol/stringToId) - (i32.const 8) - (get_local $0) - ) - (call $~lib/map/Map#set - (get_global $~lib/symbol/idToString) - (get_local $0) - (i32.const 8) - ) - (get_local $0) + get_global $~lib/symbol/stringToId + if + get_global $~lib/symbol/stringToId + i32.const 8 + call $~lib/map/Map#has + if + get_global $~lib/symbol/stringToId + i32.const 8 + call $~lib/map/Map#get + return + end + else + call $~lib/map/Map#constructor + set_global $~lib/symbol/stringToId + call $~lib/map/Map#constructor + set_global $~lib/symbol/idToString + end + get_global $~lib/symbol/nextId + tee_local $0 + i32.const 1 + i32.add + set_global $~lib/symbol/nextId + get_local $0 + i32.eqz + if + unreachable + end + get_global $~lib/symbol/stringToId + i32.const 8 + get_local $0 + call $~lib/map/Map#set + get_global $~lib/symbol/idToString + get_local $0 + i32.const 8 + call $~lib/map/Map#set + get_local $0 ) - (func $~lib/map/Map#has (; 23 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 23 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - (i32.const 0) - ) + get_local $1 + call $~lib/internal/hash/hash32 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + i32.const 0 + i32.ne ) - (func $~lib/map/Map#get (; 24 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 24 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - (tee_local $0 - (if (result i32) - (tee_local $0 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $2) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (unreachable) - ) - ) + get_local $1 + call $~lib/internal/hash/hash32 + set_local $2 + get_local $0 + get_local $1 + get_local $2 + call $~lib/map/Map#find + tee_local $0 + if (result i32) + get_local $0 + i32.load offset=4 + else + unreachable + end + tee_local $0 ) - (func $~lib/symbol/Symbol.keyFor (; 25 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/symbol/Symbol.keyFor (; 25 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (tee_local $1 - (i32.ne - (get_global $~lib/symbol/idToString) - (i32.const 0) - ) - ) - (set_local $1 - (call $~lib/map/Map#has - (get_global $~lib/symbol/idToString) - (get_local $0) - ) - ) - ) - (tee_local $0 - (if (result i32) - (get_local $1) - (call $~lib/map/Map#get - (get_global $~lib/symbol/idToString) - (get_local $0) - ) - (i32.const 0) - ) - ) + get_global $~lib/symbol/idToString + i32.const 0 + i32.ne + tee_local $1 + if + get_global $~lib/symbol/idToString + get_local $0 + call $~lib/map/Map#has + set_local $1 + end + get_local $1 + if (result i32) + get_global $~lib/symbol/idToString + get_local $0 + call $~lib/map/Map#get + else + i32.const 0 + end + tee_local $0 ) - (func $start (; 26 ;) (; has Stack IR ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.const 168) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/symbol/sym1 - (call $~lib/symbol/Symbol) - ) - (set_global $std/symbol/sym2 - (call $~lib/symbol/Symbol) - ) - (if - (i32.eq - (get_global $std/symbol/sym1) - (get_global $std/symbol/sym2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/symbol/sym3 - (call $~lib/symbol/Symbol.for) - ) - (set_global $std/symbol/sym4 - (call $~lib/symbol/Symbol.for) - ) - (if - (i32.ne - (get_global $std/symbol/sym3) - (get_global $std/symbol/sym4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/symbol/key1 - (call $~lib/symbol/Symbol.keyFor - (get_global $std/symbol/sym1) - ) - ) - (set_global $std/symbol/key2 - (call $~lib/symbol/Symbol.keyFor - (get_global $std/symbol/sym2) - ) - ) - (if - (get_global $std/symbol/key1) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (get_global $std/symbol/key2) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/symbol/key3 - (call $~lib/symbol/Symbol.keyFor - (get_global $std/symbol/sym3) - ) - ) - (set_global $std/symbol/key4 - (call $~lib/symbol/Symbol.keyFor - (get_global $std/symbol/sym4) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (get_global $std/symbol/key3) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (get_global $std/symbol/key3) - (get_global $std/symbol/key4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 26 ;) (type $v) + i32.const 168 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + call $~lib/symbol/Symbol + set_global $std/symbol/sym1 + call $~lib/symbol/Symbol + set_global $std/symbol/sym2 + get_global $std/symbol/sym1 + get_global $std/symbol/sym2 + i32.eq + if + i32.const 0 + i32.const 24 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $~lib/symbol/Symbol.for + set_global $std/symbol/sym3 + call $~lib/symbol/Symbol.for + set_global $std/symbol/sym4 + get_global $std/symbol/sym3 + get_global $std/symbol/sym4 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/symbol/sym1 + call $~lib/symbol/Symbol.keyFor + set_global $std/symbol/key1 + get_global $std/symbol/sym2 + call $~lib/symbol/Symbol.keyFor + set_global $std/symbol/key2 + get_global $std/symbol/key1 + if + i32.const 0 + i32.const 24 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/symbol/key2 + if + i32.const 0 + i32.const 24 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/symbol/sym3 + call $~lib/symbol/Symbol.keyFor + set_global $std/symbol/key3 + get_global $std/symbol/sym4 + call $~lib/symbol/Symbol.keyFor + set_global $std/symbol/key4 + get_global $std/symbol/key3 + i32.const 8 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/symbol/key3 + get_global $std/symbol/key4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 27 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 27 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index 042d4079..65b4aa93 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -8,14 +8,14 @@ (type $iiiiii (func (param i32 i32 i32 i32 i32) (result i32))) (type $iiv (func (param i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\03\00\00\001\002\003\00") (data (i32.const 24) "\0d\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s\00") (data (i32.const 56) "\13\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 104) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) (global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8)) (global $~lib/internal/allocator/AL_MASK i32 (i32.const 7)) @@ -52,26 +52,21 @@ (func $~lib/symbol/Symbol (; 1 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (set_local $2 - (block (result i32) - (set_global $~lib/symbol/nextId - (i32.add - (tee_local $1 - (get_global $~lib/symbol/nextId) - ) - (i32.const 1) - ) - ) - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (unreachable) - ) - (get_local $2) + block (result i32) + get_global $~lib/symbol/nextId + tee_local $1 + i32.const 1 + i32.add + set_global $~lib/symbol/nextId + get_local $1 + end + set_local $2 + get_local $2 + i32.eqz + if + unreachable + end + get_local $2 ) (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -80,1033 +75,762 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/memory/memory.allocate (; 3 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $~lib/internal/arraybuffer/computeSize (; 4 ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.sub - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 5 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 104) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $2 - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 104 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_local $0 + call $~lib/internal/arraybuffer/computeSize + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/internal/memory/memset (; 6 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 56) - (i32.const 16) - (i32.const 40) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $1) - ) - ) - (if - (i32.eqz - (i32.and - (get_local $2) - (i32.const 1) - ) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $1) - ) - ) - ) - (get_local $3) + get_local $1 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.gt_u + if + i32.const 0 + i32.const 56 + i32.const 16 + i32.const 40 + call $~lib/env/abort + unreachable + end + get_local $1 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + get_local $2 + i32.const 1 + i32.and + i32.eqz + if + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $1 + call $~lib/internal/memory/memset + end + get_local $3 ) (func $~lib/map/Map#clear (; 8 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 9 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/map/Map#clear (; 10 ;) (type $iv) (param $0 i32) - (i32.store - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 16) - (i32.const 0) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.sub - (get_global $~lib/map/INITIAL_CAPACITY) - (i32.const 1) - ) - ) - (i32.store offset=8 - (get_local $0) - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.const 48) - (i32.const 1) - ) - ) - (i32.store offset=12 - (get_local $0) - (get_global $~lib/map/INITIAL_CAPACITY) - ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) + get_local $0 + i32.const 0 + i32.const 16 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.const 1 + i32.sub + i32.store offset=4 + get_local $0 + i32.const 0 + i32.const 48 + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + i32.store offset=8 + get_local $0 + get_global $~lib/map/INITIAL_CAPACITY + i32.store offset=12 + get_local $0 + i32.const 0 + i32.store offset=16 + get_local $0 + i32.const 0 + i32.store offset=20 ) (func $~lib/map/Map#constructor (; 11 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (call $~lib/map/Map#clear - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $1 - (call $~lib/memory/memory.allocate - (i32.const 24) - ) - ) - (i32.store - (get_local $1) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=12 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=16 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=20 - (get_local $1) - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - ) - (get_local $0) + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 24 + call $~lib/memory/memory.allocate + set_local $1 + get_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + i32.const 0 + i32.store offset=12 + get_local $1 + i32.const 0 + i32.store offset=16 + get_local $1 + i32.const 0 + i32.store offset=20 + get_local $1 + end + tee_local $0 + end + tee_local $0 + call $~lib/map/Map#clear + get_local $0 ) (func $~lib/internal/hash/hashStr (; 12 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $1 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (block $break|0 - (block - (set_local $2 - (i32.const 0) - ) - (set_local $3 - (i32.shl - (i32.load - (get_local $0) - ) - (i32.const 1) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.load8_u offset=4 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $1) + get_global $~lib/internal/hash/FNV_OFFSET + set_local $1 + block $break|0 + block + i32.const 0 + set_local $2 + get_local $0 + i32.load + i32.const 1 + i32.shl + set_local $3 + end + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_u + i32.eqz + br_if $break|0 + get_local $1 + get_local $0 + get_local $2 + i32.add + i32.load8_u offset=4 + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $1 ) (func $~lib/internal/string/compareUnsafe (; 13 ;) (type $iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $5 - (i32.const 0) - ) - (set_local $6 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (if (result i32) - (get_local $4) - (i32.eqz - (tee_local $5 - (i32.sub - (i32.load16_u offset=4 - (get_local $6) - ) - (i32.load16_u offset=4 - (get_local $7) - ) - ) - ) - ) - (get_local $4) - ) - (block - (block - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (get_local $5) + i32.const 0 + set_local $5 + get_local $0 + get_local $1 + i32.const 1 + i32.shl + i32.add + set_local $6 + get_local $2 + get_local $3 + i32.const 1 + i32.shl + i32.add + set_local $7 + block $break|0 + loop $continue|0 + get_local $4 + if (result i32) + get_local $6 + i32.load16_u offset=4 + get_local $7 + i32.load16_u offset=4 + i32.sub + tee_local $5 + i32.eqz + else + get_local $4 + end + if + block + get_local $4 + i32.const 1 + i32.sub + set_local $4 + get_local $6 + i32.const 1 + i32.add + set_local $6 + get_local $7 + i32.const 1 + i32.add + set_local $7 + end + br $continue|0 + end + end + end + get_local $5 ) (func $~lib/string/String.__eq (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.eq - (get_local $0) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (if - (if (result i32) - (tee_local $2 - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - (get_local $2) - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.ne - (get_local $3) - (i32.load - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.eqz - (call $~lib/internal/string/compareUnsafe - (get_local $0) - (i32.const 0) - (get_local $1) - (i32.const 0) - (get_local $3) - ) - ) + get_local $0 + get_local $1 + i32.eq + if + i32.const 1 + return + end + get_local $0 + i32.const 0 + i32.eq + tee_local $2 + if (result i32) + get_local $2 + else + get_local $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $3 + get_local $1 + i32.load + i32.ne + if + i32.const 0 + return + end + get_local $0 + i32.const 0 + get_local $1 + i32.const 0 + get_local $3 + call $~lib/internal/string/compareUnsafe + i32.eqz ) (func $~lib/map/Map#find (; 15 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (call $~lib/string/String.__eq - (i32.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load + get_local $1 + call $~lib/string/String.__eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#has (; 16 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hashStr - (get_local $1) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + call $~lib/internal/hash/hashStr + br $~lib/internal/hash/hash|inlined.0 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#get (; 17 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hashStr - (get_local $1) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=4 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $1 + call $~lib/internal/hash/hashStr + br $~lib/internal/hash/hash|inlined.1 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=4 + else + unreachable + end ) (func $~lib/map/Map#rehash (; 18 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -1120,469 +844,330 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 12) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 12) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store - (get_local $10) - (i32.load - (get_local $9) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=4 - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (set_local $11 - (i32.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hashStr - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 12) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 12) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load + i32.store + get_local $10 + get_local $9 + i32.load offset=4 + i32.store offset=4 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $9 + i32.load + set_local $11 + get_local $11 + call $~lib/internal/hash/hashStr + br $~lib/internal/hash/hash|inlined.3 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=8 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 19 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hashStr - (get_local $1) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 12) - ) - ) - ) - ) - (i32.store - (get_local $4) - (get_local $1) - ) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $1 + call $~lib/internal/hash/hashStr + br $~lib/internal/hash/hash|inlined.2 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + i32.store + get_local $4 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=8 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/internal/hash/hash32 (; 20 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (set_local $1 - (get_global $~lib/internal/hash/FNV_OFFSET) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (get_local $0) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.and - (i32.shr_u - (get_local $0) - (i32.const 16) - ) - (i32.const 255) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (set_local $1 - (i32.mul - (i32.xor - (get_local $1) - (i32.shr_u - (get_local $0) - (i32.const 24) - ) - ) - (get_global $~lib/internal/hash/FNV_PRIME) - ) - ) - (get_local $1) + get_global $~lib/internal/hash/FNV_OFFSET + set_local $1 + get_local $1 + get_local $0 + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 8 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 16 + i32.shr_u + i32.const 255 + i32.and + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 + get_local $0 + i32.const 24 + i32.shr_u + i32.xor + get_global $~lib/internal/hash/FNV_PRIME + i32.mul + set_local $1 + get_local $1 ) (func $~lib/map/Map#find (; 21 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $3 - (i32.load offset=8 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $2) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (get_local $3) - (block - (block - (if - (if (result i32) - (tee_local $4 - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (get_global $~lib/map/EMPTY) - ) - ) - ) - (i32.eq - (i32.load - (get_local $3) - ) - (get_local $1) - ) - (get_local $4) - ) - (return - (get_local $3) - ) - ) - (set_local $3 - (i32.and - (i32.load offset=8 - (get_local $3) - ) - (i32.xor - (get_global $~lib/map/EMPTY) - (i32.const -1) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) + get_local $0 + i32.load + get_local $2 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + i32.load offset=8 + set_local $3 + block $break|0 + loop $continue|0 + get_local $3 + if + block + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + tee_local $4 + if (result i32) + get_local $3 + i32.load + get_local $1 + i32.eq + else + get_local $4 + end + if + get_local $3 + return + end + get_local $3 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.const -1 + i32.xor + i32.and + set_local $3 + end + br $continue|0 + end + end + end + i32.const 0 ) (func $~lib/map/Map#rehash (; 22 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) @@ -1596,628 +1181,448 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (set_local $2 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $2) - (get_global $~lib/map/BUCKET_SIZE) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (get_local $2) - ) - (get_global $~lib/map/FILL_FACTOR) - ) - ) - ) - (set_local $5 - (call $~lib/arraybuffer/ArrayBuffer#constructor - (i32.const 0) - (i32.mul - (get_local $4) - (block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - (i32.const 12) - ) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load offset=8 - (get_local $0) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $7 - (i32.add - (get_local $6) - (i32.mul - (i32.load offset=16 - (get_local $0) - ) - (block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - (i32.const 12) - ) - ) - ) - ) - (set_local $8 - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ne - (get_local $6) - (get_local $7) - ) - (block - (block - (set_local $9 - (get_local $6) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=8 - (get_local $9) - ) - (get_global $~lib/map/EMPTY) - ) - ) - (block - (set_local $10 - (get_local $8) - ) - (i32.store - (get_local $10) - (i32.load - (get_local $9) - ) - ) - (i32.store offset=4 - (get_local $10) - (i32.load offset=4 - (get_local $9) - ) - ) - (set_local $11 - (i32.and - (block $~lib/internal/hash/hash|inlined.1 (result i32) - (set_local $11 - (i32.load - (get_local $9) - ) - ) - (br $~lib/internal/hash/hash|inlined.1 - (call $~lib/internal/hash/hash32 - (get_local $11) - ) - ) - ) - (get_local $1) - ) - ) - (set_local $12 - (i32.add - (get_local $3) - (i32.mul - (get_local $11) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $10) - (i32.load offset=8 - (get_local $12) - ) - ) - (i32.store offset=8 - (get_local $12) - (get_local $8) - ) - (set_local $8 - (i32.add - (get_local $8) - (block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - (i32.const 12) - ) - ) - ) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - (i32.const 12) - ) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (get_local $1) - ) - (i32.store offset=8 - (get_local $0) - (get_local $5) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (i32.store offset=16 - (get_local $0) - (i32.load offset=20 - (get_local $0) - ) - ) + get_local $1 + i32.const 1 + i32.add + set_local $2 + i32.const 0 + get_local $2 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $3 + get_local $2 + f64.convert_s/i32 + get_global $~lib/map/FILL_FACTOR + f64.mul + i32.trunc_s/f64 + set_local $4 + i32.const 0 + get_local $4 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.mul + i32.const 1 + call $~lib/arraybuffer/ArrayBuffer#constructor + set_local $5 + get_local $0 + i32.load offset=8 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $6 + get_local $6 + get_local $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $7 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $8 + block $break|0 + loop $continue|0 + get_local $6 + get_local $7 + i32.ne + if + block + get_local $6 + set_local $9 + get_local $9 + i32.load offset=8 + get_global $~lib/map/EMPTY + i32.and + i32.eqz + if + get_local $8 + set_local $10 + get_local $10 + get_local $9 + i32.load + i32.store + get_local $10 + get_local $9 + i32.load offset=4 + i32.store offset=4 + block $~lib/internal/hash/hash|inlined.1 (result i32) + get_local $9 + i32.load + set_local $11 + get_local $11 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.1 + end + get_local $1 + i32.and + set_local $11 + get_local $3 + get_local $11 + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $12 + get_local $10 + get_local $12 + i32.load offset=8 + i32.store offset=8 + get_local $12 + get_local $8 + i32.store offset=8 + get_local $8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + end + i32.add + set_local $8 + end + get_local $6 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + end + i32.add + set_local $6 + end + br $continue|0 + end + end + end + get_local $0 + get_local $3 + i32.store + get_local $0 + get_local $1 + i32.store offset=4 + get_local $0 + get_local $5 + i32.store offset=8 + get_local $0 + get_local $4 + i32.store offset=12 + get_local $0 + get_local $0 + i32.load offset=20 + i32.store offset=16 ) (func $~lib/map/Map#set (; 23 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (set_local $3 - (block $~lib/internal/hash/hash|inlined.0 (result i32) - (br $~lib/internal/hash/hash|inlined.0 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - (set_local $4 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (get_local $3) - ) - ) - (if - (get_local $4) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (block - (if - (i32.eq - (i32.load offset=16 - (get_local $0) - ) - (i32.load offset=12 - (get_local $0) - ) - ) - (call $~lib/map/Map#rehash - (get_local $0) - (if (result i32) - (i32.lt_s - (i32.load offset=20 - (get_local $0) - ) - (i32.trunc_s/f64 - (f64.mul - (f64.convert_s/i32 - (i32.load offset=12 - (get_local $0) - ) - ) - (get_global $~lib/map/FREE_FACTOR) - ) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - (i32.or - (i32.shl - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $5 - (i32.load offset=8 - (get_local $0) - ) - ) - (set_local $4 - (i32.add - (i32.add - (get_local $5) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.mul - (block (result i32) - (i32.store offset=16 - (get_local $0) - (i32.add - (tee_local $6 - (i32.load offset=16 - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (get_local $6) - ) - (block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - (i32.const 12) - ) - ) - ) - ) - (i32.store - (get_local $4) - (get_local $1) - ) - (i32.store offset=4 - (get_local $4) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.add - (i32.load offset=20 - (get_local $0) - ) - (i32.const 1) - ) - ) - (set_local $6 - (i32.add - (i32.load - (get_local $0) - ) - (i32.mul - (i32.and - (get_local $3) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_global $~lib/map/BUCKET_SIZE) - ) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.load offset=8 - (get_local $6) - ) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - ) - ) + block $~lib/internal/hash/hash|inlined.0 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.0 + end + set_local $3 + get_local $0 + get_local $1 + get_local $3 + call $~lib/map/Map#find + set_local $4 + get_local $4 + if + get_local $4 + get_local $2 + i32.store offset=4 + else + get_local $0 + i32.load offset=16 + get_local $0 + i32.load offset=12 + i32.eq + if + get_local $0 + get_local $0 + i32.load offset=20 + get_local $0 + i32.load offset=12 + f64.convert_s/i32 + get_global $~lib/map/FREE_FACTOR + f64.mul + i32.trunc_s/f64 + i32.lt_s + if (result i32) + get_local $0 + i32.load offset=4 + else + get_local $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map#rehash + end + get_local $0 + i32.load offset=8 + set_local $5 + get_local $5 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + block (result i32) + get_local $0 + get_local $0 + i32.load offset=16 + tee_local $6 + i32.const 1 + i32.add + i32.store offset=16 + get_local $6 + end + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + end + i32.mul + i32.add + set_local $4 + get_local $4 + get_local $1 + i32.store + get_local $4 + get_local $2 + i32.store offset=4 + get_local $0 + get_local $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + get_local $0 + i32.load + get_local $3 + get_local $0 + i32.load offset=4 + i32.and + get_global $~lib/map/BUCKET_SIZE + i32.mul + i32.add + set_local $6 + get_local $4 + get_local $6 + i32.load offset=8 + i32.store offset=8 + get_local $6 + get_local $4 + i32.store offset=8 + end ) (func $~lib/symbol/Symbol.for (; 24 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (get_global $~lib/symbol/stringToId) - ) - (block - (set_global $~lib/symbol/stringToId - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - (set_global $~lib/symbol/idToString - (call $~lib/map/Map#constructor - (i32.const 0) - ) - ) - ) - (if - (call $~lib/map/Map#has - (get_global $~lib/symbol/stringToId) - (get_local $0) - ) - (return - (call $~lib/map/Map#get - (get_global $~lib/symbol/stringToId) - (get_local $0) - ) - ) - ) - ) - (set_local $2 - (block (result i32) - (set_global $~lib/symbol/nextId - (i32.add - (tee_local $1 - (get_global $~lib/symbol/nextId) - ) - (i32.const 1) - ) - ) - (get_local $1) - ) - ) - (if - (i32.eqz - (get_local $2) - ) - (unreachable) - ) - (call $~lib/map/Map#set - (get_global $~lib/symbol/stringToId) - (get_local $0) - (get_local $2) - ) - (call $~lib/map/Map#set - (get_global $~lib/symbol/idToString) - (get_local $2) - (get_local $0) - ) - (get_local $2) + get_global $~lib/symbol/stringToId + i32.eqz + if + i32.const 0 + call $~lib/map/Map#constructor + set_global $~lib/symbol/stringToId + i32.const 0 + call $~lib/map/Map#constructor + set_global $~lib/symbol/idToString + else + get_global $~lib/symbol/stringToId + get_local $0 + call $~lib/map/Map#has + if + get_global $~lib/symbol/stringToId + get_local $0 + call $~lib/map/Map#get + return + end + end + block (result i32) + get_global $~lib/symbol/nextId + tee_local $1 + i32.const 1 + i32.add + set_global $~lib/symbol/nextId + get_local $1 + end + set_local $2 + get_local $2 + i32.eqz + if + unreachable + end + get_global $~lib/symbol/stringToId + get_local $0 + get_local $2 + call $~lib/map/Map#set + get_global $~lib/symbol/idToString + get_local $2 + get_local $0 + call $~lib/map/Map#set + get_local $2 ) (func $~lib/map/Map#has (; 25 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (i32.ne - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.2 (result i32) - (br $~lib/internal/hash/hash|inlined.2 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - (i32.const 0) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.2 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.2 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne ) (func $~lib/map/Map#get (; 26 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (call $~lib/map/Map#find - (get_local $0) - (get_local $1) - (block $~lib/internal/hash/hash|inlined.3 (result i32) - (br $~lib/internal/hash/hash|inlined.3 - (call $~lib/internal/hash/hash32 - (get_local $1) - ) - ) - ) - ) - ) - (if (result i32) - (get_local $2) - (i32.load offset=4 - (get_local $2) - ) - (unreachable) - ) + get_local $0 + get_local $1 + block $~lib/internal/hash/hash|inlined.3 (result i32) + get_local $1 + call $~lib/internal/hash/hash32 + br $~lib/internal/hash/hash|inlined.3 + end + call $~lib/map/Map#find + set_local $2 + get_local $2 + if (result i32) + get_local $2 + i32.load offset=4 + else + unreachable + end ) (func $~lib/symbol/Symbol.keyFor (; 27 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if (result i32) - (if (result i32) - (tee_local $1 - (i32.ne - (get_global $~lib/symbol/idToString) - (i32.const 0) - ) - ) - (call $~lib/map/Map#has - (get_global $~lib/symbol/idToString) - (get_local $0) - ) - (get_local $1) - ) - (call $~lib/map/Map#get - (get_global $~lib/symbol/idToString) - (get_local $0) - ) - (i32.const 0) - ) + get_global $~lib/symbol/idToString + i32.const 0 + i32.ne + tee_local $1 + if (result i32) + get_global $~lib/symbol/idToString + get_local $0 + call $~lib/map/Map#has + else + get_local $1 + end + if (result i32) + get_global $~lib/symbol/idToString + get_local $0 + call $~lib/map/Map#get + else + i32.const 0 + end ) (func $start (; 28 ;) (type $v) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (set_global $std/symbol/sym1 - (call $~lib/symbol/Symbol - (i32.const 8) - ) - ) - (set_global $std/symbol/sym2 - (call $~lib/symbol/Symbol - (i32.const 8) - ) - ) - (if - (i32.eqz - (i32.ne - (get_global $std/symbol/sym1) - (get_global $std/symbol/sym2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/symbol/sym3 - (call $~lib/symbol/Symbol.for - (i32.const 8) - ) - ) - (set_global $std/symbol/sym4 - (call $~lib/symbol/Symbol.for - (i32.const 8) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/symbol/sym3) - (get_global $std/symbol/sym4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/symbol/key1 - (call $~lib/symbol/Symbol.keyFor - (get_global $std/symbol/sym1) - ) - ) - (set_global $std/symbol/key2 - (call $~lib/symbol/Symbol.keyFor - (get_global $std/symbol/sym2) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/symbol/key1) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 16) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $std/symbol/key2) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 17) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/symbol/key3 - (call $~lib/symbol/Symbol.keyFor - (get_global $std/symbol/sym3) - ) - ) - (set_global $std/symbol/key4 - (call $~lib/symbol/Symbol.keyFor - (get_global $std/symbol/sym4) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (get_global $std/symbol/key3) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 22) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (get_global $std/symbol/key3) - (get_global $std/symbol/key4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 24) - (i32.const 23) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (get_global $~lib/symbol/Symbol.hasInstance) - ) - (drop - (get_global $~lib/symbol/Symbol.concatSpreadable) - ) + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 8 + call $~lib/symbol/Symbol + set_global $std/symbol/sym1 + i32.const 8 + call $~lib/symbol/Symbol + set_global $std/symbol/sym2 + get_global $std/symbol/sym1 + get_global $std/symbol/sym2 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + call $~lib/symbol/Symbol.for + set_global $std/symbol/sym3 + i32.const 8 + call $~lib/symbol/Symbol.for + set_global $std/symbol/sym4 + get_global $std/symbol/sym3 + get_global $std/symbol/sym4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/symbol/sym1 + call $~lib/symbol/Symbol.keyFor + set_global $std/symbol/key1 + get_global $std/symbol/sym2 + call $~lib/symbol/Symbol.keyFor + set_global $std/symbol/key2 + get_global $std/symbol/key1 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 16 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/symbol/key2 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 17 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/symbol/sym3 + call $~lib/symbol/Symbol.keyFor + set_global $std/symbol/key3 + get_global $std/symbol/sym4 + call $~lib/symbol/Symbol.keyFor + set_global $std/symbol/key4 + get_global $std/symbol/key3 + i32.const 8 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 22 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/symbol/key3 + get_global $std/symbol/key4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 23 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/symbol/Symbol.hasInstance + drop + get_global $~lib/symbol/Symbol.concatSpreadable + drop ) (func $null (; 29 ;) (type $v) ) diff --git a/tests/compiler/std/trace.optimized.wat b/tests/compiler/std/trace.optimized.wat index 1466f6c7..894843dd 100644 --- a/tests/compiler/std/trace.optimized.wat +++ b/tests/compiler/std/trace.optimized.wat @@ -1,6 +1,7 @@ (module (type $iiFFFFFv (func (param i32 i32 f64 f64 f64 f64 f64))) (type $v (func)) + (import "env" "trace" (func $~lib/env/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00z\00e\00r\00o\00_\00i\00m\00p\00l\00i\00c\00i\00t") (data (i32.const 40) "\0d\00\00\00z\00e\00r\00o\00_\00e\00x\00p\00l\00i\00c\00i\00t") @@ -10,101 +11,88 @@ (data (i32.const 144) "\08\00\00\00f\00o\00u\00r\00_\00i\00n\00t") (data (i32.const 168) "\08\00\00\00f\00i\00v\00e\00_\00i\00n\00t") (data (i32.const 192) "\08\00\00\00f\00i\00v\00e\00_\00d\00b\00l") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "trace" (func $~lib/env/trace (param i32 i32 f64 f64 f64 f64 f64))) (global $~started (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (export "main" (func $std/trace/main)) - (func $std/trace/main (; 1 ;) (; has Stack IR ;) (type $v) - (if - (i32.eqz - (get_global $~started) - ) - (block - (call $start) - (set_global $~started - (i32.const 1) - ) - ) - ) + (func $std/trace/main (; 1 ;) (type $v) + get_global $~started + i32.eqz + if + call $start + i32.const 1 + set_global $~started + end ) - (func $start (; 2 ;) (; has Stack IR ;) (type $v) - (call $~lib/env/trace - (i32.const 8) - (i32.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 40) - (i32.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 72) - (i32.const 1) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 96) - (i32.const 2) - (f64.const 1) - (f64.const 2) - (f64.const 0) - (f64.const 0) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 120) - (i32.const 3) - (f64.const 1) - (f64.const 2) - (f64.const 3) - (f64.const 0) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 144) - (i32.const 4) - (f64.const 1) - (f64.const 2) - (f64.const 3) - (f64.const 4) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 168) - (i32.const 5) - (f64.const 1) - (f64.const 2) - (f64.const 3) - (f64.const 4) - (f64.const 5) - ) - (call $~lib/env/trace - (i32.const 192) - (i32.const 5) - (f64.const 1.1) - (f64.const 2.2) - (f64.const 3.3) - (f64.const 4.4) - (f64.const 5.5) - ) + (func $start (; 2 ;) (type $v) + i32.const 8 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + i32.const 40 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + i32.const 72 + i32.const 1 + f64.const 1 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + i32.const 96 + i32.const 2 + f64.const 1 + f64.const 2 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + i32.const 120 + i32.const 3 + f64.const 1 + f64.const 2 + f64.const 3 + f64.const 0 + f64.const 0 + call $~lib/env/trace + i32.const 144 + i32.const 4 + f64.const 1 + f64.const 2 + f64.const 3 + f64.const 4 + f64.const 0 + call $~lib/env/trace + i32.const 168 + i32.const 5 + f64.const 1 + f64.const 2 + f64.const 3 + f64.const 4 + f64.const 5 + call $~lib/env/trace + i32.const 192 + i32.const 5 + f64.const 1.1 + f64.const 2.2 + f64.const 3.3 + f64.const 4.4 + f64.const 5.5 + call $~lib/env/trace ) - (func $null (; 3 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 3 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/trace.untouched.wat b/tests/compiler/std/trace.untouched.wat index 8ca02a2f..ecb288fa 100644 --- a/tests/compiler/std/trace.untouched.wat +++ b/tests/compiler/std/trace.untouched.wat @@ -1,6 +1,7 @@ (module (type $iiFFFFFv (func (param i32 i32 f64 f64 f64 f64 f64))) (type $v (func)) + (import "env" "trace" (func $~lib/env/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00z\00e\00r\00o\00_\00i\00m\00p\00l\00i\00c\00i\00t\00") (data (i32.const 40) "\0d\00\00\00z\00e\00r\00o\00_\00e\00x\00p\00l\00i\00c\00i\00t\00") @@ -10,100 +11,87 @@ (data (i32.const 144) "\08\00\00\00f\00o\00u\00r\00_\00i\00n\00t\00") (data (i32.const 168) "\08\00\00\00f\00i\00v\00e\00_\00i\00n\00t\00") (data (i32.const 192) "\08\00\00\00f\00i\00v\00e\00_\00d\00b\00l\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "trace" (func $~lib/env/trace (param i32 i32 f64 f64 f64 f64 f64))) (global $~started (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 212)) (export "memory" (memory $0)) (export "table" (table $0)) (export "main" (func $std/trace/main)) (func $std/trace/main (; 1 ;) (type $v) - (if - (i32.eqz - (get_global $~started) - ) - (block - (call $start) - (set_global $~started - (i32.const 1) - ) - ) - ) + get_global $~started + i32.eqz + if + call $start + i32.const 1 + set_global $~started + end ) (func $start (; 2 ;) (type $v) - (call $~lib/env/trace - (i32.const 8) - (i32.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 40) - (i32.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 72) - (i32.const 1) - (f64.const 1) - (f64.const 0) - (f64.const 0) - (f64.const 0) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 96) - (i32.const 2) - (f64.const 1) - (f64.const 2) - (f64.const 0) - (f64.const 0) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 120) - (i32.const 3) - (f64.const 1) - (f64.const 2) - (f64.const 3) - (f64.const 0) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 144) - (i32.const 4) - (f64.const 1) - (f64.const 2) - (f64.const 3) - (f64.const 4) - (f64.const 0) - ) - (call $~lib/env/trace - (i32.const 168) - (i32.const 5) - (f64.const 1) - (f64.const 2) - (f64.const 3) - (f64.const 4) - (f64.const 5) - ) - (call $~lib/env/trace - (i32.const 192) - (i32.const 5) - (f64.const 1.1) - (f64.const 2.2) - (f64.const 3.3) - (f64.const 4.4) - (f64.const 5.5) - ) + i32.const 8 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + i32.const 40 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + i32.const 72 + i32.const 1 + f64.const 1 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + i32.const 96 + i32.const 2 + f64.const 1 + f64.const 2 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/env/trace + i32.const 120 + i32.const 3 + f64.const 1 + f64.const 2 + f64.const 3 + f64.const 0 + f64.const 0 + call $~lib/env/trace + i32.const 144 + i32.const 4 + f64.const 1 + f64.const 2 + f64.const 3 + f64.const 4 + f64.const 0 + call $~lib/env/trace + i32.const 168 + i32.const 5 + f64.const 1 + f64.const 2 + f64.const 3 + f64.const 4 + f64.const 5 + call $~lib/env/trace + i32.const 192 + i32.const 5 + f64.const 1.1 + f64.const 2.2 + f64.const 3.3 + f64.const 4.4 + f64.const 5.5 + call $~lib/env/trace ) (func $null (; 3 ;) (type $v) ) diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index ae3241b1..5427b9e5 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -14,6 +14,7 @@ (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$v (func)) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\11\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 48) "\1b\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") @@ -47,9 +48,8 @@ (data (i32.const 584) "\14\00\00\00\00\00\00\00\01") (data (i32.const 608) "\02") (data (i32.const 616) "H\02\00\00\05") - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $~lib/internal/typedarray/TypedArray#sort|trampoline~anonymous|1) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/typedarray/arr (mut i32) (i32.const 0)) @@ -63,4122 +63,2930 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/internal/arraybuffer/computeSize (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - ) - ) + (func $~lib/internal/arraybuffer/computeSize (; 1 ;) (type $ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + get_local $0 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl ) - (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741824) - ) - (unreachable) - ) - (if - (i32.gt_u - (tee_local $2 - (i32.and - (i32.add - (i32.add - (tee_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (select - (get_local $0) - (i32.const 1) - (i32.gt_u - (get_local $0) - (i32.const 1) - ) - ) - ) - (i32.const 7) - ) - (i32.const -8) - ) - ) - (i32.shl - (tee_local $3 - (current_memory) - ) - (i32.const 16) - ) - ) - (if - (i32.lt_s - (grow_memory - (select - (get_local $3) - (tee_local $0 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $2) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.const -65536) - ) - (i32.const 16) - ) - ) - (i32.gt_s - (get_local $3) - (get_local $0) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $0) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $2) - ) - (get_local $1) + get_local $0 + i32.const 1073741824 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + tee_local $1 + get_local $0 + i32.const 1 + get_local $0 + i32.const 1 + i32.gt_u + select + i32.add + i32.const 7 + i32.add + i32.const -8 + i32.and + tee_local $2 + current_memory + tee_local $3 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $3 + get_local $2 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + tee_local $0 + get_local $3 + get_local $0 + i32.gt_s + select + grow_memory + i32.const 0 + i32.lt_s + if + get_local $0 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $2 + set_global $~lib/allocator/arena/offset + get_local $1 ) - (func $~lib/internal/arraybuffer/allocateUnsafe (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/arraybuffer/allocateUnsafe (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 112) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - ) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 112 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/computeSize + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.store + get_local $1 ) - (func $~lib/internal/memory/memset (; 4 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/memory/memset (; 4 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (tee_local $3 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (get_local $3) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $2 - (i32.sub - (get_local $2) - (tee_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - ) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (tee_local $1 - (i32.mul - (i32.and - (get_local $1) - (i32.const 255) - ) - (i32.const 16843009) - ) - ) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (tee_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (tee_local $3 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 12) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $3) - (i32.const 8) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $1) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (tee_local $3 - (i32.add - (get_local $0) - (get_local $2) - ) - ) - (i32.const 28) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $3) - (i32.const 24) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $3) - (i32.const 20) - ) - (get_local $1) - ) - (i32.store - (i32.sub - (get_local $3) - (i32.const 16) - ) - (get_local $1) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $3 - (i32.add - (i32.and - (get_local $0) - (i32.const 4) - ) - (i32.const 24) - ) - ) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $4 - (i64.or - (tee_local $4 - (i64.extend_u/i32 - (get_local $1) - ) - ) - (i64.shl - (get_local $4) - (i64.const 32) - ) - ) - ) - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (i64.store - (get_local $0) - (get_local $4) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - (br $continue|0) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + tee_local $3 + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $3 + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $2 + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + tee_local $3 + i32.sub + set_local $2 + get_local $0 + get_local $3 + i32.add + tee_local $0 + get_local $1 + i32.const 255 + i32.and + i32.const 16843009 + i32.mul + tee_local $1 + i32.store + get_local $0 + get_local $2 + i32.const -4 + i32.and + tee_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $1 + i32.store + get_local $0 + get_local $2 + i32.add + tee_local $3 + i32.const 12 + i32.sub + get_local $1 + i32.store + get_local $3 + i32.const 8 + i32.sub + get_local $1 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $1 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $1 + i32.store + get_local $0 + get_local $2 + i32.add + tee_local $3 + i32.const 28 + i32.sub + get_local $1 + i32.store + get_local $3 + i32.const 24 + i32.sub + get_local $1 + i32.store + get_local $3 + i32.const 20 + i32.sub + get_local $1 + i32.store + get_local $3 + i32.const 16 + i32.sub + get_local $1 + i32.store + get_local $0 + get_local $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + tee_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $1 + i64.extend_u/i32 + tee_local $4 + get_local $4 + i64.const 32 + i64.shl + i64.or + set_local $4 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + get_local $0 + get_local $4 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + br $continue|0 + end + end ) - (func $~lib/memory/memory.allocate (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (call $~lib/allocator/arena/__memory_allocate - (i32.const 12) - ) + (func $~lib/memory/memory.allocate (; 5 ;) (type $FUNCSIG$i) (result i32) + i32.const 12 + call $~lib/allocator/arena/__memory_allocate ) - (func $~lib/internal/typedarray/TypedArray#constructor (; 6 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#constructor (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (call $~lib/internal/memory/memset - (i32.add - (tee_local $2 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $0) - ) - ) - (i32.const 8) - ) - (i32.const 0) - (get_local $0) - ) - (i32.store - (tee_local $1 - (call $~lib/memory/memory.allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store - (get_local $1) - (get_local $2) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/arraybuffer/allocateUnsafe + tee_local $2 + i32.const 8 + i32.add + i32.const 0 + get_local $0 + call $~lib/internal/memory/memset + call $~lib/memory/memory.allocate + tee_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + get_local $2 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + get_local $0 + i32.store offset=8 + get_local $1 ) - (func $~lib/internal/typedarray/TypedArray#constructor (; 7 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 536870908) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (call $~lib/internal/memory/memset - (i32.add - (tee_local $2 - (call $~lib/internal/arraybuffer/allocateUnsafe - (tee_local $0 - (i32.shl - (get_local $0) - (i32.const 1) - ) - ) - ) - ) - (i32.const 8) - ) - (i32.const 0) - (get_local $0) - ) - (i32.store - (tee_local $1 - (call $~lib/memory/memory.allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store - (get_local $1) - (get_local $2) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 536870908 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 1 + i32.shl + tee_local $0 + call $~lib/internal/arraybuffer/allocateUnsafe + tee_local $2 + i32.const 8 + i32.add + i32.const 0 + get_local $0 + call $~lib/internal/memory/memset + call $~lib/memory/memory.allocate + tee_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + get_local $2 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + get_local $0 + i32.store offset=8 + get_local $1 ) - (func $~lib/internal/typedarray/TypedArray#constructor (; 8 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (call $~lib/internal/memory/memset - (i32.add - (tee_local $2 - (call $~lib/internal/arraybuffer/allocateUnsafe - (tee_local $0 - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - ) - ) - (i32.const 8) - ) - (i32.const 0) - (get_local $0) - ) - (i32.store - (tee_local $1 - (call $~lib/memory/memory.allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store - (get_local $1) - (get_local $2) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 2 + i32.shl + tee_local $0 + call $~lib/internal/arraybuffer/allocateUnsafe + tee_local $2 + i32.const 8 + i32.add + i32.const 0 + get_local $0 + call $~lib/internal/memory/memset + call $~lib/memory/memory.allocate + tee_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + get_local $2 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + get_local $0 + i32.store offset=8 + get_local $1 ) - (func $~lib/internal/typedarray/TypedArray#constructor (; 9 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#constructor (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.gt_u - (get_local $0) - (i32.const 134217727) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (call $~lib/internal/memory/memset - (i32.add - (tee_local $2 - (call $~lib/internal/arraybuffer/allocateUnsafe - (tee_local $0 - (i32.shl - (get_local $0) - (i32.const 3) - ) - ) - ) - ) - (i32.const 8) - ) - (i32.const 0) - (get_local $0) - ) - (i32.store - (tee_local $1 - (call $~lib/memory/memory.allocate) - ) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (i32.const 0) - ) - (i32.store - (get_local $1) - (get_local $2) - ) - (i32.store offset=4 - (get_local $1) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + i32.const 134217727 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.const 3 + i32.shl + tee_local $0 + call $~lib/internal/arraybuffer/allocateUnsafe + tee_local $2 + i32.const 8 + i32.add + i32.const 0 + get_local $0 + call $~lib/internal/memory/memset + call $~lib/memory/memory.allocate + tee_local $1 + i32.const 0 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + i32.const 0 + i32.store offset=8 + get_local $1 + get_local $2 + i32.store + get_local $1 + i32.const 0 + i32.store offset=4 + get_local $1 + get_local $0 + i32.store offset=8 + get_local $1 ) - (func $std/typedarray/testInstantiate (; 10 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $std/typedarray/testInstantiate (; 10 ;) (type $iv) (param $0 i32) (local $1 i32) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 35) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 36) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 40) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 41) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 45) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 47) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 50) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (i32.shl - (get_local $0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 51) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 1) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 52) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 55) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (i32.shl - (get_local $0) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 56) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 1) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 57) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 60) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 61) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 2) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 62) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 65) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 66) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 2) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 67) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 70) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (i32.shl - (get_local $0) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 71) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 3) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 72) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 75) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (i32.shl - (get_local $0) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 76) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 3) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 77) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 80) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (i32.shl - (get_local $0) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 81) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 2) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 82) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (tee_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (get_local $0) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 85) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_local $1) - ) - (i32.shl - (get_local $0) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 86) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 3) - ) - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 87) - (i32.const 2) - ) - (unreachable) - ) - ) + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 35 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 36 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 40 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 41 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 45 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 47 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 50 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.const 1 + i32.shl + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 51 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + i32.const 1 + i32.shr_s + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 52 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 55 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.const 1 + i32.shl + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 56 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + i32.const 1 + i32.shr_s + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 57 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 60 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.const 2 + i32.shl + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 61 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 62 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 65 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.const 2 + i32.shl + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 66 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 67 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 70 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.const 3 + i32.shl + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 71 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 72 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 75 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.const 3 + i32.shl + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 76 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 77 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 80 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.const 2 + i32.shl + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 81 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 82 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + tee_local $1 + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 85 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + i32.const 3 + i32.shl + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 86 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + get_local $0 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 87 + i32.const 2 + call $~lib/env/abort + unreachable + end ) - (func $~lib/internal/typedarray/TypedArray#__set (; 11 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/typedarray/TypedArray#__set (; 11 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.ge_u - (get_local $1) - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (tee_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 55) - (i32.const 42) - ) - (unreachable) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (i32.load - (get_local $0) - ) - (get_local $3) - ) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) + get_local $1 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + tee_local $3 + i32.sub + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 55 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + get_local $3 + i32.add + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 ) - (func $~lib/internal/typedarray/TypedArray#__get (; 12 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#__get (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.ge_u - (get_local $1) - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 42) - (i32.const 42) - ) - (unreachable) - ) - ) - (i32.load offset=8 - (i32.add - (i32.add - (i32.load - (get_local $0) - ) - (get_local $2) - ) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) + get_local $1 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + tee_local $2 + i32.sub + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 42 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + get_local $2 + i32.add + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 ) - (func $~lib/typedarray/Int32Array#subarray (; 13 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#subarray (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (set_local $3 - (select - (i32.const 1) - (tee_local $2 - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (i32.lt_s - (i32.const 1) - (get_local $2) - ) - ) - ) - (set_local $1 - (if (result i32) - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (select - (tee_local $2 - (i32.add - (get_local $2) - (get_local $1) - ) - ) - (get_local $3) - (i32.gt_s - (get_local $2) - (get_local $3) - ) - ) - (select - (tee_local $2 - (select - (get_local $1) - (get_local $2) - (i32.lt_s - (get_local $1) - (get_local $2) - ) - ) - ) - (get_local $3) - (i32.gt_s - (get_local $2) - (get_local $3) - ) - ) - ) - ) - (i32.store - (tee_local $2 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 12) - ) - ) - (i32.load - (get_local $0) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.shl - (get_local $3) - (i32.const 2) - ) - ) - (i32.store offset=8 - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) + i32.const 1 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + tee_local $2 + i32.const 1 + get_local $2 + i32.lt_s + select + set_local $3 + get_local $1 + i32.const 0 + i32.lt_s + if (result i32) + get_local $2 + get_local $1 + i32.add + tee_local $2 + get_local $3 + get_local $2 + get_local $3 + i32.gt_s + select + else + get_local $1 + get_local $2 + get_local $1 + get_local $2 + i32.lt_s + select + tee_local $2 + get_local $3 + get_local $2 + get_local $3 + i32.gt_s + select + end + set_local $1 + i32.const 12 + call $~lib/allocator/arena/__memory_allocate + tee_local $2 + get_local $0 + i32.load + i32.store + get_local $2 + get_local $3 + i32.const 2 + i32.shl + i32.store offset=4 + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.store offset=8 + get_local $2 ) - (func $~lib/internal/typedarray/TypedArray#__set (; 14 ;) (; has Stack IR ;) (type $iiFv) (param $0 i32) (param $1 i32) (param $2 f64) + (func $~lib/internal/typedarray/TypedArray#__set (; 14 ;) (type $iiFv) (param $0 i32) (param $1 i32) (param $2 f64) (local $3 i32) - (if - (i32.ge_u - (get_local $1) - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (tee_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 55) - (i32.const 42) - ) - (unreachable) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (i32.load - (get_local $0) - ) - (get_local $3) - ) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - (get_local $2) - ) + get_local $1 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + tee_local $3 + i32.sub + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 55 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + get_local $3 + i32.add + get_local $1 + i32.const 3 + i32.shl + i32.add + get_local $2 + f64.store offset=8 ) - (func $~lib/typedarray/Float64Array#subarray (; 15 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#subarray (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $2 - (select - (i32.const 2) - (tee_local $1 - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (i32.lt_s - (i32.const 2) - (get_local $1) - ) - ) - ) - (set_local $3 - (select - (tee_local $1 - (select - (i32.const 6) - (get_local $1) - (i32.lt_s - (i32.const 6) - (get_local $1) - ) - ) - ) - (get_local $2) - (i32.gt_s - (get_local $1) - (get_local $2) - ) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 12) - ) - ) - (i32.load - (get_local $0) - ) - ) - (i32.store offset=4 - (get_local $1) - (i32.shl - (get_local $2) - (i32.const 3) - ) - ) - (i32.store offset=8 - (get_local $1) - (i32.shl - (get_local $3) - (i32.const 3) - ) - ) - (get_local $1) + i32.const 2 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + tee_local $1 + i32.const 2 + get_local $1 + i32.lt_s + select + set_local $2 + i32.const 6 + get_local $1 + i32.const 6 + get_local $1 + i32.lt_s + select + tee_local $1 + get_local $2 + get_local $1 + get_local $2 + i32.gt_s + select + set_local $3 + i32.const 12 + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.load + i32.store + get_local $1 + get_local $2 + i32.const 3 + i32.shl + i32.store offset=4 + get_local $1 + get_local $3 + i32.const 3 + i32.shl + i32.store offset=8 + get_local $1 ) - (func $~lib/internal/array/insertionSort (; 16 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/insertionSort (; 16 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 f64) (local $7 f64) (local $8 i32) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $4) - (get_local $2) - ) - ) - (set_local $6 - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - ) - ) - (set_local $5 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - (block - (set_local $7 - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $5) - (i32.const 3) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (br_if $break|1 - (i32.ge_s - (call_indirect (type $FFi) - (get_local $6) - (get_local $7) - (get_local $3) - ) - (i32.const 0) - ) - ) - (set_local $5 - (i32.sub - (tee_local $8 - (get_local $5) - ) - (i32.const 1) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (i32.add - (get_local $8) - (i32.const 1) - ) - (i32.const 3) - ) - ) - (get_local $7) - ) - (br $continue|1) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (i32.add - (get_local $5) - (i32.const 1) - ) - (i32.const 3) - ) - ) - (get_local $6) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + loop $repeat|0 + get_local $4 + get_local $2 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + set_local $6 + get_local $4 + i32.const 1 + i32.sub + set_local $5 + block $break|1 + loop $continue|1 + get_local $5 + i32.const 0 + i32.ge_s + if + get_local $0 + get_local $1 + i32.add + get_local $5 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + set_local $7 + i32.const 2 + set_global $~argc + get_local $6 + get_local $7 + get_local $3 + call_indirect (type $FFi) + i32.const 0 + i32.ge_s + br_if $break|1 + get_local $5 + tee_local $8 + i32.const 1 + i32.sub + set_local $5 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + get_local $7 + f64.store offset=8 + br $continue|1 + end + end + end + get_local $0 + get_local $1 + i32.add + get_local $5 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + get_local $6 + f64.store offset=8 + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) - (func $~lib/allocator/arena/__memory_free (; 17 ;) (; has Stack IR ;) (type $FUNCSIG$v) - (nop) + (func $~lib/allocator/arena/__memory_free (; 17 ;) (type $FUNCSIG$v) + nop ) - (func $~lib/internal/array/weakHeapSort (; 18 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/weakHeapSort (; 18 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 f64) (local $8 i32) (local $9 f64) - (call $~lib/internal/memory/memset - (tee_local $8 - (call $~lib/allocator/arena/__memory_allocate - (tee_local $6 - (i32.shl - (i32.shr_s - (i32.add - (get_local $2) - (i32.const 31) - ) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - ) - (i32.const 0) - (get_local $6) - ) - (block $break|0 - (set_local $4 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.le_s - (get_local $4) - (i32.const 0) - ) - ) - (set_local $6 - (get_local $4) - ) - (loop $continue|1 - (if - (i32.eq - (i32.and - (get_local $6) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 6) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (i32.shr_s - (get_local $6) - (i32.const 1) - ) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - (block - (set_local $6 - (i32.shr_s - (get_local $6) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - (set_local $9 - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (tee_local $5 - (i32.shr_s - (get_local $6) - (i32.const 1) - ) - ) - (i32.const 3) - ) - ) - ) - ) - (set_local $7 - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $FFi) - (get_local $9) - (get_local $7) - (get_local $3) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $6 - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $4) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.xor - (i32.load - (get_local $6) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $4) - (i32.const 31) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - (get_local $9) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $5) - (i32.const 3) - ) - ) - (get_local $7) - ) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|2 - (set_local $4 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.lt_s - (get_local $4) - (i32.const 2) - ) - ) - (set_local $7 - (f64.load offset=8 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (f64.store offset=8 - (i32.add - (get_local $0) - (get_local $1) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - (get_local $7) - ) - (set_local $5 - (i32.const 1) - ) - (loop $continue|3 - (if - (i32.lt_s - (tee_local $6 - (i32.add - (i32.shl - (get_local $5) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $5) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (get_local $5) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - ) - (get_local $4) - ) - (block - (set_local $5 - (get_local $6) - ) - (br $continue|3) - ) - ) - ) - (loop $continue|4 - (if - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (block - (set_local $7 - (f64.load offset=8 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $9 - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $5) - (i32.const 3) - ) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $FFi) - (get_local $7) - (get_local $9) - (get_local $3) - ) - (i32.const 0) - ) - (block - (i32.store - (tee_local $2 - (i32.add - (get_local $8) - (i32.shl - (i32.shr_s - (get_local $5) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.xor - (i32.load - (get_local $2) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $5) - (i32.const 31) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $5) - (i32.const 3) - ) - ) - (get_local $7) - ) - (f64.store offset=8 - (i32.add - (get_local $0) - (get_local $1) - ) - (get_local $9) - ) - ) - ) - (set_local $5 - (i32.shr_s - (get_local $5) - (i32.const 1) - ) - ) - (br $continue|4) - ) - ) - ) - (set_local $4 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (call $~lib/allocator/arena/__memory_free) - (set_local $7 - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 8) - ) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 8) - ) - (f64.load offset=8 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - ) - (f64.store offset=8 - (i32.add - (get_local $0) - (get_local $1) - ) - (get_local $7) - ) + get_local $2 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + tee_local $6 + call $~lib/allocator/arena/__memory_allocate + tee_local $8 + i32.const 0 + get_local $6 + call $~lib/internal/memory/memset + block $break|0 + get_local $2 + i32.const 1 + i32.sub + set_local $4 + loop $repeat|0 + get_local $4 + i32.const 0 + i32.le_s + br_if $break|0 + get_local $4 + set_local $6 + loop $continue|1 + get_local $6 + i32.const 1 + i32.and + get_local $8 + get_local $6 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $6 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + get_local $6 + i32.const 1 + i32.shr_s + set_local $6 + br $continue|1 + end + end + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 1 + i32.shr_s + tee_local $5 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + set_local $9 + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + set_local $7 + i32.const 2 + set_global $~argc + get_local $9 + get_local $7 + get_local $3 + call_indirect (type $FFi) + i32.const 0 + i32.lt_s + if + get_local $8 + get_local $4 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + tee_local $6 + get_local $6 + i32.load + i32.const 1 + get_local $4 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 3 + i32.shl + i32.add + get_local $9 + f64.store offset=8 + get_local $0 + get_local $1 + i32.add + get_local $5 + i32.const 3 + i32.shl + i32.add + get_local $7 + f64.store offset=8 + end + get_local $4 + i32.const 1 + i32.sub + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end + block $break|2 + get_local $2 + i32.const 1 + i32.sub + set_local $4 + loop $repeat|2 + get_local $4 + i32.const 2 + i32.lt_s + br_if $break|2 + get_local $0 + get_local $1 + i32.add + f64.load offset=8 + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + f64.store offset=8 + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 3 + i32.shl + i32.add + get_local $7 + f64.store offset=8 + i32.const 1 + set_local $5 + loop $continue|3 + get_local $5 + i32.const 1 + i32.shl + get_local $8 + get_local $5 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $5 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + tee_local $6 + get_local $4 + i32.lt_s + if + get_local $6 + set_local $5 + br $continue|3 + end + end + loop $continue|4 + get_local $5 + i32.const 0 + i32.gt_s + if + get_local $0 + get_local $1 + i32.add + f64.load offset=8 + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $5 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + set_local $9 + i32.const 2 + set_global $~argc + get_local $7 + get_local $9 + get_local $3 + call_indirect (type $FFi) + i32.const 0 + i32.lt_s + if + get_local $8 + get_local $5 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + tee_local $2 + get_local $2 + i32.load + i32.const 1 + get_local $5 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + get_local $0 + get_local $1 + i32.add + get_local $5 + i32.const 3 + i32.shl + i32.add + get_local $7 + f64.store offset=8 + get_local $0 + get_local $1 + i32.add + get_local $9 + f64.store offset=8 + end + get_local $5 + i32.const 1 + i32.shr_s + set_local $5 + br $continue|4 + end + end + get_local $4 + i32.const 1 + i32.sub + set_local $4 + br $repeat|2 + unreachable + end + unreachable + end + call $~lib/allocator/arena/__memory_free + get_local $0 + get_local $1 + i32.add + i32.const 8 + i32.add + f64.load offset=8 + set_local $7 + get_local $0 + get_local $1 + i32.add + i32.const 8 + i32.add + get_local $0 + get_local $1 + i32.add + f64.load offset=8 + f64.store offset=8 + get_local $0 + get_local $1 + i32.add + get_local $7 + f64.store offset=8 ) - (func $~lib/internal/typedarray/TypedArray#sort (; 19 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#sort (; 19 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) (local $6 f64) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (i32.le_s - (tee_local $4 - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $3 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 2) - ) - (block - (set_local $5 - (f64.load offset=8 - (i32.add - (i32.add - (get_local $3) - (get_local $2) - ) - (i32.const 8) - ) - ) - ) - (set_local $6 - (f64.load offset=8 - (i32.add - (get_local $3) - (get_local $2) - ) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (if - (i32.lt_s - (call_indirect (type $FFi) - (get_local $5) - (get_local $6) - (get_local $1) - ) - (i32.const 0) - ) - (block - (f64.store offset=8 - (i32.add - (i32.add - (get_local $3) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $6) - ) - (f64.store offset=8 - (i32.add - (get_local $3) - (get_local $2) - ) - (get_local $5) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.lt_s - (get_local $4) - (i32.const 256) - ) - (call $~lib/internal/array/insertionSort - (get_local $3) - (get_local $2) - (get_local $4) - (get_local $1) - ) - (call $~lib/internal/array/weakHeapSort - (get_local $3) - (get_local $2) - (get_local $4) - (get_local $1) - ) - ) - (get_local $0) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + tee_local $4 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $3 + get_local $4 + i32.const 2 + i32.eq + if + get_local $3 + get_local $2 + i32.add + i32.const 8 + i32.add + f64.load offset=8 + set_local $5 + get_local $3 + get_local $2 + i32.add + f64.load offset=8 + set_local $6 + i32.const 2 + set_global $~argc + get_local $5 + get_local $6 + get_local $1 + call_indirect (type $FFi) + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $2 + i32.add + i32.const 8 + i32.add + get_local $6 + f64.store offset=8 + get_local $3 + get_local $2 + i32.add + get_local $5 + f64.store offset=8 + end + get_local $0 + return + end + get_local $4 + i32.const 256 + i32.lt_s + if + get_local $3 + get_local $2 + get_local $4 + get_local $1 + call $~lib/internal/array/insertionSort + else + get_local $3 + get_local $2 + get_local $4 + get_local $1 + call $~lib/internal/array/weakHeapSort + end + get_local $0 ) - (func $~lib/internal/typedarray/TypedArray#sort|trampoline~anonymous|1 (; 20 ;) (; has Stack IR ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/internal/typedarray/TypedArray#sort|trampoline~anonymous|1 (; 20 ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) - (i32.sub - (i64.gt_s - (tee_local $2 - (i64.xor - (tee_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (i64.shr_u - (i64.shr_s - (get_local $2) - (i64.const 63) - ) - (i64.const 1) - ) - ) - ) - (tee_local $3 - (i64.xor - (tee_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (i64.shr_u - (i64.shr_s - (get_local $3) - (i64.const 63) - ) - (i64.const 1) - ) - ) - ) - ) - (i64.lt_s - (get_local $2) - (get_local $3) - ) - ) + get_local $0 + i64.reinterpret/f64 + tee_local $2 + get_local $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + tee_local $2 + get_local $1 + i64.reinterpret/f64 + tee_local $3 + get_local $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + tee_local $3 + i64.gt_s + get_local $2 + get_local $3 + i64.lt_s + i32.sub ) - (func $~lib/internal/typedarray/TypedArray#sort|trampoline (; 21 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#sort|trampoline (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (i32.const 1) - ) - ) - (call $~lib/internal/typedarray/TypedArray#sort - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 1 + set_local $1 + end + get_local $0 + get_local $1 + call $~lib/internal/typedarray/TypedArray#sort ) - (func $~lib/internal/typedarray/TypedArray#__get (; 22 ;) (; has Stack IR ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/internal/typedarray/TypedArray#__get (; 22 ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) (local $2 i32) - (if - (i32.ge_u - (get_local $1) - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 42) - (i32.const 42) - ) - (unreachable) - ) - ) - (f64.load offset=8 - (i32.add - (i32.add - (i32.load - (get_local $0) - ) - (get_local $2) - ) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - ) + get_local $1 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + tee_local $2 + i32.sub + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 42 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + get_local $2 + i32.add + get_local $1 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 ) - (func $~lib/internal/typedarray/TypedArray#__set (; 23 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/typedarray/TypedArray#__set (; 23 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (if - (i32.ge_u - (get_local $1) - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (tee_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 55) - (i32.const 42) - ) - (unreachable) - ) - ) - (i32.store8 offset=8 - (i32.add - (i32.add - (i32.load - (get_local $0) - ) - (get_local $3) - ) - (get_local $1) - ) - (get_local $2) - ) + get_local $1 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + tee_local $3 + i32.sub + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 55 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + get_local $3 + i32.add + get_local $1 + i32.add + get_local $2 + i32.store8 offset=8 ) - (func $~lib/typedarray/Uint8ClampedArray#__set (; 24 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#__set (; 24 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (call $~lib/internal/typedarray/TypedArray#__set - (get_local $0) - (get_local $1) - (select - (tee_local $3 - (select - (get_local $2) - (i32.const 255) - (i32.lt_s - (get_local $2) - (i32.const 255) - ) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - ) - ) + get_local $0 + get_local $1 + get_local $2 + i32.const 255 + get_local $2 + i32.const 255 + i32.lt_s + select + tee_local $3 + i32.const 0 + get_local $3 + i32.const 0 + i32.gt_s + select + call $~lib/internal/typedarray/TypedArray#__set ) - (func $~lib/internal/typedarray/TypedArray#__get (; 25 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#__get (; 25 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.ge_u - (get_local $1) - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 42) - (i32.const 42) - ) - (unreachable) - ) - ) - (i32.load8_u offset=8 - (i32.add - (i32.add - (i32.load - (get_local $0) - ) - (get_local $2) - ) - (get_local $1) - ) - ) + get_local $1 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + tee_local $2 + i32.sub + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 42 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + get_local $2 + i32.add + get_local $1 + i32.add + i32.load8_u offset=8 ) - (func $~lib/internal/typedarray/TypedArray#fill (; 26 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#fill (; 26 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $6 - (i32.load - (get_local $0) - ) - ) - (set_local $7 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $4 - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (if - (i32.lt_s - (tee_local $2 - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (select - (tee_local $5 - (i32.add - (get_local $4) - (get_local $2) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - ) - (select - (tee_local $5 - (get_local $2) - ) - (get_local $4) - (i32.lt_s - (get_local $2) - (get_local $4) - ) - ) - ) - ) - (tee_local $3 - (if (result i32) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (select - (tee_local $5 - (i32.add - (get_local $4) - (get_local $3) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - ) - (select - (tee_local $5 - (get_local $3) - ) - (get_local $4) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - ) - (call $~lib/internal/memory/memset - (i32.add - (i32.add - (i32.add - (get_local $6) - (get_local $2) - ) - (get_local $7) - ) - (i32.const 8) - ) - (get_local $1) - (i32.sub - (get_local $3) - (get_local $2) - ) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $6 + get_local $0 + i32.load offset=4 + set_local $7 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + set_local $4 + get_local $2 + i32.const 0 + i32.lt_s + if (result i32) + get_local $4 + get_local $2 + i32.add + tee_local $5 + i32.const 0 + get_local $5 + i32.const 0 + i32.gt_s + select + else + get_local $2 + tee_local $5 + get_local $4 + get_local $2 + get_local $4 + i32.lt_s + select + end + tee_local $2 + get_local $3 + i32.const 0 + i32.lt_s + if (result i32) + get_local $4 + get_local $3 + i32.add + tee_local $5 + i32.const 0 + get_local $5 + i32.const 0 + i32.gt_s + select + else + get_local $3 + tee_local $5 + get_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + end + tee_local $3 + i32.lt_s + if + get_local $6 + get_local $2 + i32.add + get_local $7 + i32.add + i32.const 8 + i32.add + get_local $1 + get_local $3 + get_local $2 + i32.sub + call $~lib/internal/memory/memset + end + get_local $0 ) - (func $~lib/internal/typedarray/TypedArray#__get (; 27 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#__get (; 27 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (if - (i32.ge_u - (get_local $1) - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (tee_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 42) - (i32.const 42) - ) - (unreachable) - ) - ) - (i32.load8_s offset=8 - (i32.add - (i32.add - (i32.load - (get_local $0) - ) - (get_local $2) - ) - (get_local $1) - ) - ) + get_local $1 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + tee_local $2 + i32.sub + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 42 + i32.const 42 + call $~lib/env/abort + unreachable + end + get_local $0 + i32.load + get_local $2 + i32.add + get_local $1 + i32.add + i32.load8_s offset=8 ) - (func $~lib/array/Array#__get (; 28 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (tee_local $0 - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.load - (tee_local $0 - (i32.load - (get_local $0) - ) - ) - ) - ) - (i32.load8_s offset=8 - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (unreachable) - ) - ) + (func $~lib/array/Array#__get (; 28 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $1 + get_local $0 + i32.load + tee_local $0 + i32.load + i32.lt_u + if (result i32) + get_local $0 + get_local $1 + i32.add + i32.load8_s offset=8 + else + unreachable + end + tee_local $0 ) - (func $std/typedarray/isInt8ArrayEqual (; 29 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt8ArrayEqual (; 29 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.ne - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (block $break|0 - (set_local $3 - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (set_local $4 - (i32.shr_s - (i32.shl - (call $~lib/internal/typedarray/TypedArray#__get - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (set_local $5 - (i32.shr_s - (i32.shl - (call $~lib/array/Array#__get - (get_local $1) - (get_local $2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (if - (i32.ne - (get_local $4) - (get_local $5) - ) - (return - (i32.const 0) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (i32.const 1) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + get_local $1 + i32.load offset=4 + i32.ne + if + i32.const 0 + return + end + block $break|0 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + set_local $3 + loop $repeat|0 + get_local $2 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $2 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_local $4 + get_local $1 + get_local $2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + set_local $5 + get_local $4 + get_local $5 + i32.ne + if + i32.const 0 + return + else + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + i32.const 1 ) - (func $~lib/internal/typedarray/TypedArray#fill|trampoline (; 30 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#fill|trampoline (; 30 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 0) - ) - ) - (set_local $3 - (i32.const 2147483647) - ) - ) - (call $~lib/internal/typedarray/TypedArray#fill - (get_local $0) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $2 + end + i32.const 2147483647 + set_local $3 + end + get_local $0 + get_local $1 + get_local $2 + get_local $3 + call $~lib/internal/typedarray/TypedArray#fill ) - (func $~lib/typedarray/Int8Array#subarray (; 31 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#subarray (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (set_local $2 - (select - (i32.const 1) - (tee_local $1 - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - ) - (i32.lt_s - (i32.const 1) - (get_local $1) - ) - ) - ) - (set_local $3 - (select - (tee_local $1 - (select - (i32.const 4) - (get_local $1) - (i32.lt_s - (i32.const 4) - (get_local $1) - ) - ) - ) - (get_local $2) - (i32.gt_s - (get_local $1) - (get_local $2) - ) - ) - ) - (i32.store - (tee_local $1 - (call $~lib/allocator/arena/__memory_allocate - (i32.const 12) - ) - ) - (i32.load - (get_local $0) - ) - ) - (i32.store offset=4 - (get_local $1) - (get_local $2) - ) - (i32.store offset=8 - (get_local $1) - (get_local $3) - ) - (get_local $1) + i32.const 1 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + tee_local $1 + i32.const 1 + get_local $1 + i32.lt_s + select + set_local $2 + i32.const 4 + get_local $1 + i32.const 4 + get_local $1 + i32.lt_s + select + tee_local $1 + get_local $2 + get_local $1 + get_local $2 + i32.gt_s + select + set_local $3 + i32.const 12 + call $~lib/allocator/arena/__memory_allocate + tee_local $1 + get_local $0 + i32.load + i32.store + get_local $1 + get_local $2 + i32.store offset=4 + get_local $1 + get_local $3 + i32.store offset=8 + get_local $1 ) - (func $~lib/internal/typedarray/TypedArray#fill (; 32 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#fill (; 32 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $6 - (i32.load - (get_local $0) - ) - ) - (set_local $7 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (set_local $2 - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (select - (tee_local $5 - (i32.add - (get_local $4) - (get_local $2) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - ) - (select - (tee_local $5 - (get_local $2) - ) - (get_local $4) - (i32.lt_s - (get_local $2) - (get_local $4) - ) - ) - ) - ) - (set_local $3 - (if (result i32) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (select - (tee_local $5 - (i32.add - (get_local $4) - (get_local $3) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - ) - (select - (tee_local $5 - (get_local $3) - ) - (get_local $4) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $6) - (get_local $7) - ) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (get_local $1) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $6 + get_local $0 + i32.load offset=4 + set_local $7 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + set_local $4 + get_local $2 + i32.const 0 + i32.lt_s + if (result i32) + get_local $4 + get_local $2 + i32.add + tee_local $5 + i32.const 0 + get_local $5 + i32.const 0 + i32.gt_s + select + else + get_local $2 + tee_local $5 + get_local $4 + get_local $2 + get_local $4 + i32.lt_s + select + end + set_local $2 + get_local $3 + i32.const 0 + i32.lt_s + if (result i32) + get_local $4 + get_local $3 + i32.add + tee_local $5 + i32.const 0 + get_local $5 + i32.const 0 + i32.gt_s + select + else + get_local $3 + tee_local $5 + get_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + end + set_local $3 + block $break|0 + loop $repeat|0 + get_local $2 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $6 + get_local $7 + i32.add + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store offset=8 + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 ) - (func $~lib/array/Array#__get (; 33 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (tee_local $0 - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (tee_local $0 - (i32.load - (get_local $0) - ) - ) - ) - (i32.const 2) - ) - ) - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - (unreachable) - ) - ) + (func $~lib/array/Array#__get (; 33 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + get_local $1 + get_local $0 + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 ) - (func $std/typedarray/isInt32ArrayEqual (; 34 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt32ArrayEqual (; 34 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (return - (i32.const 0) - ) - ) - (block $break|0 - (set_local $3 - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (set_local $4 - (call $~lib/internal/typedarray/TypedArray#__get - (get_local $0) - (get_local $2) - ) - ) - (set_local $5 - (call $~lib/array/Array#__get - (get_local $1) - (get_local $2) - ) - ) - (if - (i32.ne - (get_local $4) - (get_local $5) - ) - (return - (i32.const 0) - ) - (block - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - ) - ) - (i32.const 1) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + get_local $1 + i32.load offset=4 + i32.ne + if + i32.const 0 + return + end + block $break|0 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + set_local $3 + loop $repeat|0 + get_local $2 + get_local $3 + i32.ge_s + br_if $break|0 + get_local $0 + get_local $2 + call $~lib/internal/typedarray/TypedArray#__get + set_local $4 + get_local $1 + get_local $2 + call $~lib/array/Array#__get + set_local $5 + get_local $4 + get_local $5 + i32.ne + if + i32.const 0 + return + else + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + end + unreachable + unreachable + end + unreachable + end + i32.const 1 ) - (func $~lib/internal/typedarray/TypedArray#fill|trampoline (; 35 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/typedarray/TypedArray#fill|trampoline (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 0) - ) - ) - (set_local $3 - (i32.const 2147483647) - ) - ) - (call $~lib/internal/typedarray/TypedArray#fill - (get_local $0) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $2 + end + i32.const 2147483647 + set_local $3 + end + get_local $0 + get_local $1 + get_local $2 + get_local $3 + call $~lib/internal/typedarray/TypedArray#fill ) - (func $start (; 36 ;) (; has Stack IR ;) (type $v) + (func $start (; 36 ;) (type $v) (local $0 i32) - (set_global $~lib/allocator/arena/startOffset - (i32.const 624) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (call $std/typedarray/testInstantiate - (i32.const 0) - ) - (call $std/typedarray/testInstantiate - (i32.const 5) - ) - (set_global $std/typedarray/arr - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 3) - ) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr) - (i32.const 0) - (i32.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr) - (i32.const 1) - (i32.const 2) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr) - (i32.const 2) - (i32.const 3) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (tee_local $0 - (get_global $std/typedarray/arr) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 97) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.load offset=4 - (get_global $std/typedarray/arr) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 98) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_global $std/typedarray/arr) - ) - (i32.const 12) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 99) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/arr) - (i32.const 0) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 100) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/arr) - (i32.const 1) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/arr) - (i32.const 2) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/arr - (call $~lib/typedarray/Int32Array#subarray - (get_global $std/typedarray/arr) - (i32.const 2) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (tee_local $0 - (get_global $std/typedarray/arr) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 105) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=4 - (get_global $std/typedarray/arr) - ) - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.load offset=8 - (get_global $std/typedarray/arr) - ) - (i32.const 8) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/arr) - (i32.const 0) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 108) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/af64 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 8) - ) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 0) - (f64.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 1) - (f64.const 2) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 2) - (f64.const 7) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 3) - (f64.const 6) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 4) - (f64.const 5) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 5) - (f64.const 4) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 6) - (f64.const 3) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 7) - (f64.const 8) - ) - (set_global $std/typedarray/af64 - (call $~lib/typedarray/Float64Array#subarray - (get_global $std/typedarray/af64) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (tee_local $0 - (get_global $std/typedarray/af64) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 122) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 0) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#sort|trampoline - (get_global $std/typedarray/af64) - ) - ) - (if - (tee_local $0 - (f64.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/af64) - (i32.const 0) - ) - (f64.const 4) - ) - ) - (set_local $0 - (f64.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/af64) - (i32.const 1) - ) - (f64.const 5) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (f64.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/af64) - (i32.const 2) - ) - (f64.const 6) - ) - ) - ) - (if - (get_local $0) - (set_local $0 - (f64.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/af64) - (i32.const 3) - ) - (f64.const 7) - ) - ) - ) - (if - (i32.eqz - (get_local $0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 124) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/clampedArr - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 3) - ) - ) - (call $~lib/typedarray/Uint8ClampedArray#__set - (get_global $std/typedarray/clampedArr) - (i32.const 0) - (i32.const -32) - ) - (call $~lib/typedarray/Uint8ClampedArray#__set - (get_global $std/typedarray/clampedArr) - (i32.const 1) - (i32.const 2) - ) - (call $~lib/typedarray/Uint8ClampedArray#__set - (get_global $std/typedarray/clampedArr) - (i32.const 2) - (i32.const 256) - ) - (if - (i32.and - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/clampedArr) - (i32.const 0) - ) - (i32.const 255) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.and - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/clampedArr) - (i32.const 1) - ) - (i32.const 255) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (i32.and - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/clampedArr) - (i32.const 2) - ) - (i32.const 255) - ) - (i32.const 255) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/arr8 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 5) - ) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr8) - (i32.const 0) - (i32.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr8) - (i32.const 1) - (i32.const 2) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr8) - (i32.const 2) - (i32.const 3) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr8) - (i32.const 3) - (i32.const 4) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr8) - (i32.const 4) - (i32.const 5) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr8) - (i32.const 1) - (i32.const 1) - (i32.const 3) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 192) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 143) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/arr8) - (i32.const 0) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 216) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 146) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr8) - (i32.const 1) - (i32.const 0) - (i32.const -3) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 240) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 149) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/arr8) - (i32.const 2) - (i32.const -2) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 264) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 152) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr8) - (i32.const 0) - (i32.const 1) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 288) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/sub8 - (call $~lib/typedarray/Int8Array#subarray - (get_global $std/typedarray/arr8) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/sub8) - (i32.const 0) - (i32.const 0) - ) - ) - (if - (i32.ne - (i32.sub - (i32.load offset=8 - (tee_local $0 - (get_global $std/typedarray/sub8) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/sub8) - (i32.const 312) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 160) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 336) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 161) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/arr32 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 5) - ) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr32) - (i32.const 0) - (i32.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr32) - (i32.const 1) - (i32.const 2) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr32) - (i32.const 2) - (i32.const 3) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr32) - (i32.const 3) - (i32.const 4) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr32) - (i32.const 4) - (i32.const 5) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr32) - (i32.const 1) - (i32.const 1) - (i32.const 3) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 376) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 171) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/arr32) - (i32.const 0) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 416) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 174) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr32) - (i32.const 1) - (i32.const 0) - (i32.const -3) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 456) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 177) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~argc - (i32.const 2) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/arr32) - (i32.const 2) - (i32.const -2) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 496) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 180) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr32) - (i32.const 0) - (i32.const 1) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 536) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 183) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/sub32 - (call $~lib/typedarray/Int32Array#subarray - (get_global $std/typedarray/arr32) - (i32.const 4) - ) - ) - (set_global $~argc - (i32.const 1) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/sub32) - (i32.const 0) - (i32.const 0) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.sub - (i32.load offset=8 - (tee_local $0 - (get_global $std/typedarray/sub32) - ) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - (i32.const 3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 187) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/sub32) - (i32.const 576) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 188) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 616) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 189) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 134217727) - ) - ) + i32.const 624 + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + i32.const 3 + call $~lib/internal/typedarray/TypedArray#constructor + set_global $std/typedarray/arr + get_global $std/typedarray/arr + i32.const 0 + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr + i32.const 1 + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr + i32.const 2 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr + tee_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 97 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.load offset=4 + if + i32.const 0 + i32.const 8 + i32.const 98 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 99 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.const 0 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 100 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 101 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 102 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + set_global $std/typedarray/arr + get_global $std/typedarray/arr + tee_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 105 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.load offset=4 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 106 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.load offset=8 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 107 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.const 0 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 108 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 8 + call $~lib/internal/typedarray/TypedArray#constructor + set_global $std/typedarray/af64 + get_global $std/typedarray/af64 + i32.const 0 + f64.const 1 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 1 + f64.const 2 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 2 + f64.const 7 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 3 + f64.const 6 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 4 + f64.const 5 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 5 + f64.const 4 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 6 + f64.const 3 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 7 + f64.const 8 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + call $~lib/typedarray/Float64Array#subarray + set_global $std/typedarray/af64 + get_global $std/typedarray/af64 + tee_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 122 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + set_global $~argc + get_global $std/typedarray/af64 + call $~lib/internal/typedarray/TypedArray#sort|trampoline + drop + get_global $std/typedarray/af64 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#__get + f64.const 4 + f64.eq + tee_local $0 + if + get_global $std/typedarray/af64 + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__get + f64.const 5 + f64.eq + set_local $0 + end + get_local $0 + if + get_global $std/typedarray/af64 + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__get + f64.const 6 + f64.eq + set_local $0 + end + get_local $0 + if + get_global $std/typedarray/af64 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#__get + f64.const 7 + f64.eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 124 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + call $~lib/internal/typedarray/TypedArray#constructor + set_global $std/typedarray/clampedArr + get_global $std/typedarray/clampedArr + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + get_global $std/typedarray/clampedArr + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + get_global $std/typedarray/clampedArr + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + get_global $std/typedarray/clampedArr + i32.const 0 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 255 + i32.and + if + i32.const 0 + i32.const 8 + i32.const 131 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/clampedArr + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 255 + i32.and + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 132 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/clampedArr + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 255 + i32.and + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 133 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 5 + call $~lib/internal/typedarray/TypedArray#constructor + set_global $std/typedarray/arr8 + get_global $std/typedarray/arr8 + i32.const 0 + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr8 + i32.const 1 + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr8 + i32.const 2 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr8 + i32.const 3 + i32.const 4 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr8 + i32.const 4 + i32.const 5 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr8 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr8 + i32.const 192 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/typedarray/arr8 + i32.const 0 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + drop + get_global $std/typedarray/arr8 + i32.const 216 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 146 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr8 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr8 + i32.const 240 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 149 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + set_global $~argc + get_global $std/typedarray/arr8 + i32.const 2 + i32.const -2 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + drop + get_global $std/typedarray/arr8 + i32.const 264 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 152 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr8 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr8 + i32.const 288 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr8 + call $~lib/typedarray/Int8Array#subarray + set_global $std/typedarray/sub8 + i32.const 1 + set_global $~argc + get_global $std/typedarray/sub8 + i32.const 0 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + drop + get_global $std/typedarray/sub8 + tee_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/sub8 + i32.const 312 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 160 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr8 + i32.const 336 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 161 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 5 + call $~lib/internal/typedarray/TypedArray#constructor + set_global $std/typedarray/arr32 + get_global $std/typedarray/arr32 + i32.const 0 + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr32 + i32.const 1 + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr32 + i32.const 2 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr32 + i32.const 3 + i32.const 4 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr32 + i32.const 4 + i32.const 5 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr32 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr32 + i32.const 376 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 171 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/typedarray/arr32 + i32.const 0 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + drop + get_global $std/typedarray/arr32 + i32.const 416 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 174 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr32 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr32 + i32.const 456 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 177 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + set_global $~argc + get_global $std/typedarray/arr32 + i32.const 2 + i32.const -2 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + drop + get_global $std/typedarray/arr32 + i32.const 496 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 180 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr32 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr32 + i32.const 536 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 183 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr32 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + set_global $std/typedarray/sub32 + i32.const 1 + set_global $~argc + get_global $std/typedarray/sub32 + i32.const 0 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + drop + get_global $std/typedarray/sub32 + tee_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 187 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/sub32 + i32.const 576 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 188 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr32 + i32.const 616 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 189 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 134217727 + call $~lib/internal/typedarray/TypedArray#constructor + drop ) - (func $null (; 37 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 37 ;) (type $v) + nop ) ) diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index da123da9..1011d100 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -10,6 +10,7 @@ (type $iiF (func (param i32 i32) (result f64))) (type $iiiii (func (param i32 i32 i32 i32) (result i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\11\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 48) "\1b\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") @@ -42,9 +43,8 @@ (data (i32.const 576) " \02\00\00\03\00\00\00") (data (i32.const 584) "\14\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00") (data (i32.const 616) "H\02\00\00\05\00\00\00") - (table 2 anyfunc) + (table $0 2 anyfunc) (elem (i32.const 0) $null $~lib/internal/typedarray/TypedArray#sort|trampoline~anonymous|1) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) (global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) (global $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT i32 (i32.const 1)) @@ -79,21 +79,16 @@ (export "table" (table $0)) (start $start) (func $~lib/internal/arraybuffer/computeSize (; 1 ;) (type $ii) (param $0 i32) (result i32) - (i32.shl - (i32.const 1) - (i32.sub - (i32.const 32) - (i32.clz - (i32.sub - (i32.add - (get_local $0) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - (i32.const 1) - ) - ) - ) - ) + i32.const 1 + i32.const 32 + get_local $0 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl ) (func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) @@ -102,1388 +97,1035 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (get_local $0) - (get_global $~lib/internal/allocator/MAX_SIZE_32) - ) - (unreachable) - ) - (set_local $1 - (get_global $~lib/allocator/arena/offset) - ) - (set_local $4 - (i32.and - (i32.add - (i32.add - (get_local $1) - (select - (tee_local $2 - (get_local $0) - ) - (tee_local $3 - (i32.const 1) - ) - (i32.gt_u - (get_local $2) - (get_local $3) - ) - ) - ) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_local $5 - (current_memory) - ) - (if - (i32.gt_u - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 16) - ) - ) - (block - (set_local $2 - (i32.shr_u - (i32.and - (i32.add - (i32.sub - (get_local $4) - (get_local $1) - ) - (i32.const 65535) - ) - (i32.xor - (i32.const 65535) - (i32.const -1) - ) - ) - (i32.const 16) - ) - ) - (set_local $3 - (select - (tee_local $3 - (get_local $5) - ) - (tee_local $6 - (get_local $2) - ) - (i32.gt_s - (get_local $3) - (get_local $6) - ) - ) - ) - (if - (i32.lt_s - (grow_memory - (get_local $3) - ) - (i32.const 0) - ) - (if - (i32.lt_s - (grow_memory - (get_local $2) - ) - (i32.const 0) - ) - (unreachable) - ) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_local $4) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/allocator/MAX_SIZE_32 + i32.gt_u + if + unreachable + end + get_global $~lib/allocator/arena/offset + set_local $1 + get_local $1 + get_local $0 + tee_local $2 + i32.const 1 + tee_local $3 + get_local $2 + get_local $3 + i32.gt_u + select + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_local $4 + current_memory + set_local $5 + get_local $4 + get_local $5 + i32.const 16 + i32.shl + i32.gt_u + if + get_local $4 + get_local $1 + i32.sub + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + set_local $2 + get_local $5 + tee_local $3 + get_local $2 + tee_local $6 + get_local $3 + get_local $6 + i32.gt_s + select + set_local $3 + get_local $3 + grow_memory + i32.const 0 + i32.lt_s + if + get_local $2 + grow_memory + i32.const 0 + i32.lt_s + if + unreachable + end + end + end + get_local $4 + set_global $~lib/allocator/arena/offset + get_local $1 ) (func $~lib/internal/arraybuffer/allocateUnsafe (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (if - (i32.eqz - (i32.le_u - (get_local $0) - (get_global $~lib/internal/arraybuffer/MAX_BLENGTH) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 112) - (i32.const 23) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $1 - (block $~lib/memory/memory.allocate|inlined.0 (result i32) - (set_local $2 - (call $~lib/internal/arraybuffer/computeSize - (get_local $0) - ) - ) - (br $~lib/memory/memory.allocate|inlined.0 - (call $~lib/allocator/arena/__memory_allocate - (get_local $2) - ) - ) - ) - ) - (i32.store - (get_local $1) - (get_local $0) - ) - (get_local $1) + get_local $0 + get_global $~lib/internal/arraybuffer/MAX_BLENGTH + i32.le_u + i32.eqz + if + i32.const 0 + i32.const 112 + i32.const 23 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/memory/memory.allocate|inlined.0 (result i32) + get_local $0 + call $~lib/internal/arraybuffer/computeSize + set_local $2 + get_local $2 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.0 + end + set_local $1 + get_local $1 + get_local $0 + i32.store + get_local $1 ) (func $~lib/internal/memory/memset (; 4 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) - (if - (i32.eqz - (get_local $2) - ) - (return) - ) - (i32.store8 - (get_local $0) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 1) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 2) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 1) - ) - (get_local $1) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 2) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 3) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 6) - ) - (return) - ) - (i32.store8 - (i32.add - (get_local $0) - (i32.const 3) - ) - (get_local $1) - ) - (i32.store8 - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $1) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (set_local $3 - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 3) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $2 - (i32.and - (get_local $2) - (i32.const -4) - ) - ) - (set_local $4 - (i32.mul - (i32.div_u - (i32.const -1) - (i32.const 255) - ) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - ) - (i32.store - (get_local $0) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 4) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 8) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 4) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 8) - ) - (get_local $4) - ) - (if - (i32.le_u - (get_local $2) - (i32.const 24) - ) - (return) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 12) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 28) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 20) - ) - (get_local $4) - ) - (i32.store - (i32.sub - (i32.add - (get_local $0) - (get_local $2) - ) - (i32.const 16) - ) - (get_local $4) - ) - (set_local $3 - (i32.add - (i32.const 24) - (i32.and - (get_local $0) - (i32.const 4) - ) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (get_local $3) - ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (set_local $5 - (i64.or - (i64.extend_u/i32 - (get_local $4) - ) - (i64.shl - (i64.extend_u/i32 - (get_local $4) - ) - (i64.const 32) - ) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.ge_u - (get_local $2) - (i32.const 32) - ) - (block - (block - (i64.store - (get_local $0) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 8) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 16) - ) - (get_local $5) - ) - (i64.store - (i32.add - (get_local $0) - (i32.const 24) - ) - (get_local $5) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 32) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (i32.const 32) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) + get_local $2 + i32.eqz + if + return + end + get_local $0 + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 1 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 2 + i32.le_u + if + return + end + get_local $0 + i32.const 1 + i32.add + get_local $1 + i32.store8 + get_local $0 + i32.const 2 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 2 + i32.sub + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 3 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 6 + i32.le_u + if + return + end + get_local $0 + i32.const 3 + i32.add + get_local $1 + i32.store8 + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $1 + i32.store8 + get_local $2 + i32.const 8 + i32.le_u + if + return + end + i32.const 0 + get_local $0 + i32.sub + i32.const 3 + i32.and + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $2 + i32.const -4 + i32.and + set_local $2 + i32.const -1 + i32.const 255 + i32.div_u + get_local $1 + i32.const 255 + i32.and + i32.mul + set_local $4 + get_local $0 + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 4 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 8 + i32.le_u + if + return + end + get_local $0 + i32.const 4 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 8 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 12 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 8 + i32.sub + get_local $4 + i32.store + get_local $2 + i32.const 24 + i32.le_u + if + return + end + get_local $0 + i32.const 12 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 16 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 20 + i32.add + get_local $4 + i32.store + get_local $0 + i32.const 24 + i32.add + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 28 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 24 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 20 + i32.sub + get_local $4 + i32.store + get_local $0 + get_local $2 + i32.add + i32.const 16 + i32.sub + get_local $4 + i32.store + i32.const 24 + get_local $0 + i32.const 4 + i32.and + i32.add + set_local $3 + get_local $0 + get_local $3 + i32.add + set_local $0 + get_local $2 + get_local $3 + i32.sub + set_local $2 + get_local $4 + i64.extend_u/i32 + get_local $4 + i64.extend_u/i32 + i64.const 32 + i64.shl + i64.or + set_local $5 + block $break|0 + loop $continue|0 + get_local $2 + i32.const 32 + i32.ge_u + if + block + get_local $0 + get_local $5 + i64.store + get_local $0 + i32.const 8 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 16 + i32.add + get_local $5 + i64.store + get_local $0 + i32.const 24 + i32.add + get_local $5 + i64.store + get_local $2 + i32.const 32 + i32.sub + set_local $2 + get_local $0 + i32.const 32 + i32.add + set_local $0 + end + br $continue|0 + end + end + end ) (func $~lib/memory/memory.allocate (; 5 ;) (type $ii) (param $0 i32) (result i32) - (return - (call $~lib/allocator/arena/__memory_allocate - (get_local $0) - ) - ) + get_local $0 + call $~lib/allocator/arena/__memory_allocate + return ) (func $~lib/internal/typedarray/TypedArray#constructor (; 6 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.0 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $5 - (call $~lib/memory/memory.allocate - (i32.const 12) - ) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $5) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $5) - (i32.const 0) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $2) - ) - (get_local $0) + get_local $1 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + block $~lib/memory/memory.fill|inlined.0 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 12 + call $~lib/memory/memory.allocate + set_local $5 + get_local $5 + i32.const 0 + i32.store + get_local $5 + i32.const 0 + i32.store offset=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $2 + i32.store offset=8 + get_local $0 ) (func $~lib/internal/typedarray/TypedArray#constructor (; 7 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 1073741816) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.1 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $5 - (call $~lib/memory/memory.allocate - (i32.const 12) - ) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $5) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $5) - (i32.const 0) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $2) - ) - (get_local $0) + get_local $1 + i32.const 1073741816 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 0 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + block $~lib/memory/memory.fill|inlined.1 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 12 + call $~lib/memory/memory.allocate + set_local $5 + get_local $5 + i32.const 0 + i32.store + get_local $5 + i32.const 0 + i32.store offset=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $2 + i32.store offset=8 + get_local $0 ) (func $~lib/internal/typedarray/TypedArray#constructor (; 8 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 536870908) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.2 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $5 - (call $~lib/memory/memory.allocate - (i32.const 12) - ) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $5) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $5) - (i32.const 0) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $2) - ) - (get_local $0) + get_local $1 + i32.const 536870908 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + block $~lib/memory/memory.fill|inlined.2 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 12 + call $~lib/memory/memory.allocate + set_local $5 + get_local $5 + i32.const 0 + i32.store + get_local $5 + i32.const 0 + i32.store offset=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $2 + i32.store offset=8 + get_local $0 ) (func $~lib/internal/typedarray/TypedArray#constructor (; 9 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 536870908) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.3 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $5 - (call $~lib/memory/memory.allocate - (i32.const 12) - ) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $5) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $5) - (i32.const 0) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $2) - ) - (get_local $0) + get_local $1 + i32.const 536870908 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 1 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + block $~lib/memory/memory.fill|inlined.3 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 12 + call $~lib/memory/memory.allocate + set_local $5 + get_local $5 + i32.const 0 + i32.store + get_local $5 + i32.const 0 + i32.store offset=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $2 + i32.store offset=8 + get_local $0 ) (func $~lib/internal/typedarray/TypedArray#constructor (; 10 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.4 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $5 - (call $~lib/memory/memory.allocate - (i32.const 12) - ) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $5) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $5) - (i32.const 0) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $2) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + block $~lib/memory/memory.fill|inlined.4 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 12 + call $~lib/memory/memory.allocate + set_local $5 + get_local $5 + i32.const 0 + i32.store + get_local $5 + i32.const 0 + i32.store offset=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $2 + i32.store offset=8 + get_local $0 ) (func $~lib/internal/typedarray/TypedArray#constructor (; 11 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.5 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $5 - (call $~lib/memory/memory.allocate - (i32.const 12) - ) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $5) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $5) - (i32.const 0) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $2) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + block $~lib/memory/memory.fill|inlined.5 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 12 + call $~lib/memory/memory.allocate + set_local $5 + get_local $5 + i32.const 0 + i32.store + get_local $5 + i32.const 0 + i32.store offset=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $2 + i32.store offset=8 + get_local $0 ) (func $~lib/internal/typedarray/TypedArray#constructor (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 134217727) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.6 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $5 - (call $~lib/memory/memory.allocate - (i32.const 12) - ) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $5) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $5) - (i32.const 0) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $2) - ) - (get_local $0) + get_local $1 + i32.const 134217727 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 3 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + block $~lib/memory/memory.fill|inlined.6 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 12 + call $~lib/memory/memory.allocate + set_local $5 + get_local $5 + i32.const 0 + i32.store + get_local $5 + i32.const 0 + i32.store offset=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $2 + i32.store offset=8 + get_local $0 ) (func $~lib/internal/typedarray/TypedArray#constructor (; 13 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 134217727) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.7 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $5 - (call $~lib/memory/memory.allocate - (i32.const 12) - ) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $5) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $5) - (i32.const 0) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $2) - ) - (get_local $0) + get_local $1 + i32.const 134217727 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 3 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + block $~lib/memory/memory.fill|inlined.7 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 12 + call $~lib/memory/memory.allocate + set_local $5 + get_local $5 + i32.const 0 + i32.store + get_local $5 + i32.const 0 + i32.store offset=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $2 + i32.store offset=8 + get_local $0 ) (func $~lib/internal/typedarray/TypedArray#constructor (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 268435454) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.8 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $5 - (call $~lib/memory/memory.allocate - (i32.const 12) - ) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $5) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $5) - (i32.const 0) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $2) - ) - (get_local $0) + get_local $1 + i32.const 268435454 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 2 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + block $~lib/memory/memory.fill|inlined.8 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 12 + call $~lib/memory/memory.allocate + set_local $5 + get_local $5 + i32.const 0 + i32.store + get_local $5 + i32.const 0 + i32.store offset=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $2 + i32.store offset=8 + get_local $0 ) (func $~lib/internal/typedarray/TypedArray#constructor (; 15 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (if - (i32.gt_u - (get_local $1) - (i32.const 134217727) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 24) - (i32.const 34) - ) - (unreachable) - ) - ) - (set_local $2 - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - (set_local $3 - (call $~lib/internal/arraybuffer/allocateUnsafe - (get_local $2) - ) - ) - (block $~lib/memory/memory.fill|inlined.9 - (set_local $4 - (i32.add - (get_local $3) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $5 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $4) - (get_local $5) - (get_local $2) - ) - ) - (i32.store - (tee_local $0 - (if (result i32) - (get_local $0) - (get_local $0) - (tee_local $0 - (block (result i32) - (set_local $5 - (call $~lib/memory/memory.allocate - (i32.const 12) - ) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $5) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $5) - (i32.const 0) - ) - (get_local $5) - ) - ) - ) - ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $0) - (i32.const 0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $2) - ) - (get_local $0) + get_local $1 + i32.const 134217727 + i32.gt_u + if + i32.const 0 + i32.const 48 + i32.const 24 + i32.const 34 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.const 3 + i32.shl + set_local $2 + get_local $2 + call $~lib/internal/arraybuffer/allocateUnsafe + set_local $3 + block $~lib/memory/memory.fill|inlined.9 + get_local $3 + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $4 + i32.const 0 + set_local $5 + get_local $4 + get_local $5 + get_local $2 + call $~lib/internal/memory/memset + end + get_local $0 + if (result i32) + get_local $0 + else + block (result i32) + i32.const 12 + call $~lib/memory/memory.allocate + set_local $5 + get_local $5 + i32.const 0 + i32.store + get_local $5 + i32.const 0 + i32.store offset=4 + get_local $5 + i32.const 0 + i32.store offset=8 + get_local $5 + end + tee_local $0 + end + tee_local $0 + get_local $3 + i32.store + get_local $0 + i32.const 0 + i32.store offset=4 + get_local $0 + get_local $2 + i32.store offset=8 + get_local $0 ) (func $std/typedarray/testInstantiate (; 16 ;) (type $iv) (param $0 i32) (local $1 i32) @@ -1497,1289 +1139,891 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (set_local $1 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $1) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 35) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $1) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 36) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $1) - ) - (i32.load offset=4 - (get_local $1) - ) - ) - (i32.const 0) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 37) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $2 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $2) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 40) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $2) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 41) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $2) - ) - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 0) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 42) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $3 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $3) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 45) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $3) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 46) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.1 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $3) - ) - (i32.load offset=4 - (get_local $3) - ) - ) - (i32.const 0) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 47) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $4 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $4) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 50) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $4) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 51) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $4) - ) - (i32.load offset=4 - (get_local $4) - ) - ) - (i32.const 1) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 52) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $5 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $5) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 55) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $5) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 56) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $5) - ) - (i32.load offset=4 - (get_local $5) - ) - ) - (i32.const 1) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 57) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $6 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $6) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 60) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $6) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 61) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $6) - ) - (i32.load offset=4 - (get_local $6) - ) - ) - (i32.const 2) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 62) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $7 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $7) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 65) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $7) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 66) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $7) - ) - (i32.load offset=4 - (get_local $7) - ) - ) - (i32.const 2) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 67) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $8 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $8) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 70) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $8) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 71) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $8) - ) - (i32.load offset=4 - (get_local $8) - ) - ) - (i32.const 3) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 72) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $9 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $9) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 75) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $9) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 76) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $9) - ) - (i32.load offset=4 - (get_local $9) - ) - ) - (i32.const 3) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 77) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $10 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $10) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 80) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $10) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 81) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $10) - ) - (i32.load offset=4 - (get_local $10) - ) - ) - (i32.const 2) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 82) - (i32.const 2) - ) - (unreachable) - ) - ) - (set_local $11 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_local $0) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_local $11) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 85) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_local $11) - ) - (i32.mul - (get_local $0) - (get_global $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 86) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $11) - ) - (i32.load offset=4 - (get_local $11) - ) - ) - (i32.const 3) - ) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 87) - (i32.const 2) - ) - (unreachable) - ) - ) + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $1 + get_local $1 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 35 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $1 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 36 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) + get_local $1 + i32.load offset=8 + get_local $1 + i32.load offset=4 + i32.sub + i32.const 0 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 37 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $2 + get_local $2 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 40 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $2 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 41 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) + get_local $2 + i32.load offset=8 + get_local $2 + i32.load offset=4 + i32.sub + i32.const 0 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 42 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $3 + get_local $3 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 45 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $3 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 46 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.1 (result i32) + get_local $3 + i32.load offset=8 + get_local $3 + i32.load offset=4 + i32.sub + i32.const 0 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 47 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $4 + get_local $4 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 50 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $4 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 51 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) + get_local $4 + i32.load offset=8 + get_local $4 + i32.load offset=4 + i32.sub + i32.const 1 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 52 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $5 + get_local $5 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 55 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $5 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 56 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) + get_local $5 + i32.load offset=8 + get_local $5 + i32.load offset=4 + i32.sub + i32.const 1 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 57 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $6 + get_local $6 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 60 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $6 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 61 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) + get_local $6 + i32.load offset=8 + get_local $6 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 62 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $7 + get_local $7 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 65 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $7 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 66 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) + get_local $7 + i32.load offset=8 + get_local $7 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 67 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $8 + get_local $8 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 70 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $8 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 71 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) + get_local $8 + i32.load offset=8 + get_local $8 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 72 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $9 + get_local $9 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 75 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $9 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 76 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) + get_local $9 + i32.load offset=8 + get_local $9 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 77 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $10 + get_local $10 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 80 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $10 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 81 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) + get_local $10 + i32.load offset=8 + get_local $10 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 82 + i32.const 2 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_local $0 + call $~lib/internal/typedarray/TypedArray#constructor + set_local $11 + get_local $11 + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 85 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_local $11 + i32.load offset=8 + get_local $0 + get_global $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 86 + i32.const 2 + call $~lib/env/abort + unreachable + end + block $~lib/internal/typedarray/TypedArray#get:length|inlined.0 (result i32) + get_local $11 + i32.load offset=8 + get_local $11 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + end + get_local $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 87 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $~lib/internal/typedarray/TypedArray#__set (; 17 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (get_local $3) - ) - (i32.const 2) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 55) - (i32.const 42) - ) - (unreachable) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (i32.store offset=8 - (i32.add - (i32.add - (get_local $5) - (get_local $3) - ) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load offset=4 + set_local $3 + get_local $0 + i32.load offset=8 + get_local $3 + i32.sub + i32.const 2 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 55 + i32.const 42 + call $~lib/env/abort + unreachable + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 + get_local $0 + i32.load + set_local $5 + get_local $5 + get_local $3 + i32.add + get_local $1 + i32.const 2 + i32.shl + i32.add + get_local $2 + i32.store offset=8 + end ) (func $~lib/internal/typedarray/TypedArray#__get (; 18 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $3 - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (get_local $2) - ) - (i32.const 2) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 42) - (i32.const 42) - ) - (unreachable) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (i32.load offset=8 - (i32.add - (i32.add - (get_local $4) - (get_local $2) - ) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $0 + i32.load offset=8 + get_local $2 + i32.sub + i32.const 2 + i32.shr_u + set_local $3 + get_local $1 + get_local $3 + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 42 + i32.const 42 + call $~lib/env/abort + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) + get_local $0 + i32.load + set_local $4 + get_local $4 + get_local $2 + i32.add + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + end ) (func $~lib/typedarray/Int32Array#subarray (; 19 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $~lib/internal/typedarray/TypedArray#subarray|inlined.0 (result i32) - (set_local $3 - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.2 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $1) - ) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $1 - (select - (tee_local $4 - (get_local $1) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (set_local $2 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $2) - ) - ) - (tee_local $5 - (get_local $1) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $2 - (select - (tee_local $4 - (select - (tee_local $4 - (get_local $2) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (tee_local $5 - (get_local $1) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (set_local $4 - (block $~lib/memory/memory.allocate|inlined.1 (result i32) - (set_local $4 - (i32.const 12) - ) - (br $~lib/memory/memory.allocate|inlined.1 - (call $~lib/allocator/arena/__memory_allocate - (get_local $4) - ) - ) - ) - ) - (i32.store - (get_local $4) - (i32.load - (get_local $0) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (get_local $4) - ) + block $~lib/internal/typedarray/TypedArray#get:length|inlined.2 (result i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + end + set_local $3 + get_local $1 + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $1 + i32.add + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $1 + else + get_local $1 + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $1 + end + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $2 + i32.add + tee_local $4 + get_local $1 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $2 + else + get_local $2 + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + tee_local $4 + get_local $1 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $2 + end + block $~lib/memory/memory.allocate|inlined.1 (result i32) + i32.const 12 + set_local $4 + get_local $4 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.1 + end + set_local $4 + get_local $4 + get_local $0 + i32.load + i32.store + get_local $4 + get_local $1 + i32.const 2 + i32.shl + i32.store offset=4 + get_local $4 + get_local $2 + i32.const 2 + i32.shl + i32.store offset=8 + get_local $4 ) (func $~lib/internal/typedarray/TypedArray#__set (; 20 ;) (type $iiFv) (param $0 i32) (param $1 i32) (param $2 f64) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (get_local $3) - ) - (i32.const 3) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 55) - (i32.const 42) - ) - (unreachable) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $5) - (get_local $3) - ) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load offset=4 + set_local $3 + get_local $0 + i32.load offset=8 + get_local $3 + i32.sub + i32.const 3 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 55 + i32.const 42 + call $~lib/env/abort + unreachable + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 + get_local $0 + i32.load + set_local $5 + get_local $5 + get_local $3 + i32.add + get_local $1 + i32.const 3 + i32.shl + i32.add + get_local $2 + f64.store offset=8 + end ) (func $~lib/typedarray/Float64Array#subarray (; 21 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $~lib/internal/typedarray/TypedArray#subarray|inlined.0 (result i32) - (set_local $3 - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.1 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $1) - ) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $1 - (select - (tee_local $4 - (get_local $1) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (set_local $2 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $2) - ) - ) - (tee_local $5 - (get_local $1) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $2 - (select - (tee_local $4 - (select - (tee_local $4 - (get_local $2) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (tee_local $5 - (get_local $1) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (set_local $4 - (block $~lib/memory/memory.allocate|inlined.2 (result i32) - (set_local $4 - (i32.const 12) - ) - (br $~lib/memory/memory.allocate|inlined.2 - (call $~lib/allocator/arena/__memory_allocate - (get_local $4) - ) - ) - ) - ) - (i32.store - (get_local $4) - (i32.load - (get_local $0) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.shl - (get_local $2) - (i32.const 3) - ) - ) - (get_local $4) - ) + block $~lib/internal/typedarray/TypedArray#get:length|inlined.1 (result i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + end + set_local $3 + get_local $1 + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $1 + i32.add + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $1 + else + get_local $1 + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $1 + end + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $2 + i32.add + tee_local $4 + get_local $1 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $2 + else + get_local $2 + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + tee_local $4 + get_local $1 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $2 + end + block $~lib/memory/memory.allocate|inlined.2 (result i32) + i32.const 12 + set_local $4 + get_local $4 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.2 + end + set_local $4 + get_local $4 + get_local $0 + i32.load + i32.store + get_local $4 + get_local $1 + i32.const 3 + i32.shl + i32.store offset=4 + get_local $4 + get_local $2 + i32.const 3 + i32.shl + i32.store offset=8 + get_local $4 ) (func $~lib/internal/array/insertionSort (; 22 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -2787,154 +2031,116 @@ (local $6 i32) (local $7 f64) (local $8 i32) - (block $break|0 - (set_local $4 - (i32.const 0) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $4) - (get_local $2) - ) - ) - ) - (block - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.2 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $4) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $4) - (i32.const 1) - ) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.ge_s - (get_local $6) - (i32.const 0) - ) - (block - (block - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.3 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $FFi) - (get_local $5) - (get_local $7) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.3 - (set_local $8 - (i32.add - (block (result i32) - (set_local $6 - (i32.sub - (tee_local $8 - (get_local $6) - ) - (i32.const 1) - ) - ) - (get_local $8) - ) - (i32.const 1) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - (get_local $7) - ) - ) - (br $break|1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.4 - (set_local $8 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - (get_local $5) - ) - ) - ) - (set_local $4 - (i32.add - (get_local $4) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) + block $break|0 + i32.const 0 + set_local $4 + loop $repeat|0 + get_local $4 + get_local $2 + i32.lt_s + i32.eqz + br_if $break|0 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.2 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $4 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $5 + get_local $4 + i32.const 1 + i32.sub + set_local $6 + block $break|1 + loop $continue|1 + get_local $6 + i32.const 0 + i32.ge_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.3 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $5 + get_local $7 + get_local $3 + call_indirect (type $FFi) + end + i32.const 0 + i32.lt_s + if + block (result i32) + get_local $6 + tee_local $8 + i32.const 1 + i32.sub + set_local $6 + get_local $8 + end + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + get_local $7 + f64.store offset=8 + else + br $break|1 + end + end + br $continue|1 + end + end + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.4 + get_local $6 + i32.const 1 + i32.add + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + get_local $5 + f64.store offset=8 + end + end + get_local $4 + i32.const 1 + i32.add + set_local $4 + br $repeat|0 + unreachable + end + unreachable + end ) (func $~lib/allocator/arena/__memory_free (; 23 ;) (type $iv) (param $0 i32) - (nop) + nop ) (func $~lib/internal/array/weakHeapSort (; 24 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -2946,593 +2152,426 @@ (local $10 f64) (local $11 i32) (local $12 f64) - (set_local $4 - (i32.shl - (i32.shr_s - (i32.add - (get_local $2) - (i32.const 31) - ) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (set_local $5 - (block $~lib/memory/memory.allocate|inlined.3 (result i32) - (br $~lib/memory/memory.allocate|inlined.3 - (call $~lib/allocator/arena/__memory_allocate - (get_local $4) - ) - ) - ) - ) - (block $~lib/memory/memory.fill|inlined.10 - (set_local $6 - (i32.const 0) - ) - (call $~lib/internal/memory/memset - (get_local $5) - (get_local $6) - (get_local $4) - ) - ) - (block $break|0 - (set_local $6 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.gt_s - (get_local $6) - (i32.const 0) - ) - ) - ) - (block - (set_local $7 - (get_local $6) - ) - (block $break|1 - (loop $continue|1 - (if - (i32.eq - (i32.and - (get_local $7) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $7) - (i32.const 6) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - (block - (set_local $7 - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $7) - (i32.const 1) - ) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.4 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.5 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $FFi) - (get_local $9) - (get_local $10) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (i32.xor - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $6) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $6) - (i32.const 31) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.5 - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - (get_local $9) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.6 - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - (get_local $10) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (block $break|2 - (set_local $6 - (i32.sub - (get_local $2) - (i32.const 1) - ) - ) - (loop $repeat|2 - (br_if $break|2 - (i32.eqz - (i32.ge_s - (get_local $6) - (i32.const 2) - ) - ) - ) - (block - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.6 (result f64) - (set_local $8 - (i32.const 0) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.7 - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.7 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - (get_local $9) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.8 - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - (get_local $10) - ) - ) - (set_local $8 - (i32.const 1) - ) - (block $break|3 - (loop $continue|3 - (if - (i32.lt_s - (tee_local $7 - (i32.add - (i32.shl - (get_local $8) - (i32.const 1) - ) - (i32.and - (i32.shr_u - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.and - (get_local $8) - (i32.const 31) - ) - ) - (i32.const 1) - ) - ) - ) - (get_local $6) - ) - (block - (set_local $8 - (get_local $7) - ) - (br $continue|3) - ) - ) - ) - ) - (block $break|4 - (loop $continue|4 - (if - (i32.gt_s - (get_local $8) - (i32.const 0) - ) - (block - (block - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.8 (result f64) - (set_local $11 - (i32.const 0) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $11) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $9 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.9 (result f64) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $FFi) - (get_local $10) - (get_local $9) - (get_local $3) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - (i32.xor - (i32.load - (i32.add - (get_local $5) - (i32.shl - (i32.shr_s - (get_local $8) - (i32.const 5) - ) - (i32.const 2) - ) - ) - ) - (i32.shl - (i32.const 1) - (i32.and - (get_local $8) - (i32.const 31) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.9 - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $8) - (i32.const 3) - ) - ) - (get_local $10) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.10 - (set_local $11 - (i32.const 0) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $11) - (i32.const 3) - ) - ) - (get_local $9) - ) - ) - ) - ) - (set_local $8 - (i32.shr_s - (get_local $8) - (i32.const 1) - ) - ) - ) - (br $continue|4) - ) - ) - ) - ) - ) - (set_local $6 - (i32.sub - (get_local $6) - (i32.const 1) - ) - ) - (br $repeat|2) - ) - ) - (block $~lib/memory/memory.free|inlined.0 - (block - (call $~lib/allocator/arena/__memory_free - (get_local $5) - ) - (br $~lib/memory/memory.free|inlined.0) - ) - ) - (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.10 (result f64) - (set_local $6 - (i32.const 1) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.11 - (set_local $6 - (i32.const 1) - ) - (set_local $10 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.11 (result f64) - (set_local $7 - (i32.const 0) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $7) - (i32.const 3) - ) - ) - ) - ) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - (get_local $10) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.12 - (set_local $6 - (i32.const 0) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.shl - (get_local $6) - (i32.const 3) - ) - ) - (get_local $12) - ) - ) + get_local $2 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + set_local $4 + block $~lib/memory/memory.allocate|inlined.3 (result i32) + get_local $4 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.3 + end + set_local $5 + block $~lib/memory/memory.fill|inlined.10 + i32.const 0 + set_local $6 + get_local $5 + get_local $6 + get_local $4 + call $~lib/internal/memory/memset + end + block $break|0 + get_local $2 + i32.const 1 + i32.sub + set_local $6 + loop $repeat|0 + get_local $6 + i32.const 0 + i32.gt_s + i32.eqz + br_if $break|0 + block + get_local $6 + set_local $7 + block $break|1 + loop $continue|1 + get_local $7 + i32.const 1 + i32.and + get_local $5 + get_local $7 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $7 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + get_local $7 + i32.const 1 + i32.shr_s + set_local $7 + br $continue|1 + end + end + end + get_local $7 + i32.const 1 + i32.shr_s + set_local $8 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.4 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $9 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.5 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $10 + block (result i32) + i32.const 2 + set_global $~argc + get_local $9 + get_local $10 + get_local $3 + call_indirect (type $FFi) + end + i32.const 0 + i32.lt_s + if + get_local $5 + get_local $6 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + get_local $5 + get_local $6 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + get_local $6 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.5 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + get_local $9 + f64.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.6 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + get_local $10 + f64.store offset=8 + end + end + end + get_local $6 + i32.const 1 + i32.sub + set_local $6 + br $repeat|0 + unreachable + end + unreachable + end + block $break|2 + get_local $2 + i32.const 1 + i32.sub + set_local $6 + loop $repeat|2 + get_local $6 + i32.const 2 + i32.ge_s + i32.eqz + br_if $break|2 + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.6 (result f64) + i32.const 0 + set_local $8 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $10 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.7 + i32.const 0 + set_local $8 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.7 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $9 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + get_local $9 + f64.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.8 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + get_local $10 + f64.store offset=8 + end + i32.const 1 + set_local $8 + block $break|3 + loop $continue|3 + get_local $8 + i32.const 1 + i32.shl + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + get_local $8 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + tee_local $7 + get_local $6 + i32.lt_s + if + get_local $7 + set_local $8 + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + get_local $8 + i32.const 0 + i32.gt_s + if + block + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.8 (result f64) + i32.const 0 + set_local $11 + get_local $0 + get_local $1 + i32.add + get_local $11 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $10 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.9 (result f64) + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $9 + block (result i32) + i32.const 2 + set_global $~argc + get_local $10 + get_local $9 + get_local $3 + call_indirect (type $FFi) + end + i32.const 0 + i32.lt_s + if + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + get_local $5 + get_local $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + get_local $8 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.9 + get_local $0 + get_local $1 + i32.add + get_local $8 + i32.const 3 + i32.shl + i32.add + get_local $10 + f64.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.10 + i32.const 0 + set_local $11 + get_local $0 + get_local $1 + i32.add + get_local $11 + i32.const 3 + i32.shl + i32.add + get_local $9 + f64.store offset=8 + end + end + get_local $8 + i32.const 1 + i32.shr_s + set_local $8 + end + br $continue|4 + end + end + end + end + get_local $6 + i32.const 1 + i32.sub + set_local $6 + br $repeat|2 + unreachable + end + unreachable + end + block $~lib/memory/memory.free|inlined.0 + block + get_local $5 + call $~lib/allocator/arena/__memory_free + br $~lib/memory/memory.free|inlined.0 + unreachable + end + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.10 (result f64) + i32.const 1 + set_local $6 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $12 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.11 + i32.const 1 + set_local $6 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.11 (result f64) + i32.const 0 + set_local $7 + get_local $0 + get_local $1 + i32.add + get_local $7 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $10 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + get_local $10 + f64.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.12 + i32.const 0 + set_local $6 + get_local $0 + get_local $1 + i32.add + get_local $6 + i32.const 3 + i32.shl + i32.add + get_local $12 + f64.store offset=8 + end ) (func $~lib/internal/typedarray/TypedArray#sort (; 25 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3541,487 +2580,350 @@ (local $5 i32) (local $6 f64) (local $7 f64) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $3 - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.3 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - ) - (if - (i32.le_s - (get_local $3) - (i32.const 1) - ) - (return - (get_local $0) - ) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 2) - ) - (block - (set_local $6 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result f64) - (set_local $5 - (i32.const 1) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $4) - (get_local $2) - ) - (i32.shl - (get_local $5) - (i32.const 3) - ) - ) - ) - ) - ) - (set_local $7 - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result f64) - (set_local $5 - (i32.const 0) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $4) - (get_local $2) - ) - (i32.shl - (get_local $5) - (i32.const 3) - ) - ) - ) - ) - ) - (if - (i32.lt_s - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call_indirect (type $FFi) - (get_local $6) - (get_local $7) - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 - (set_local $5 - (i32.const 1) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $4) - (get_local $2) - ) - (i32.shl - (get_local $5) - (i32.const 3) - ) - ) - (get_local $7) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.2 - (set_local $5 - (i32.const 0) - ) - (f64.store offset=8 - (i32.add - (i32.add - (get_local $4) - (get_local $2) - ) - (i32.shl - (get_local $5) - (i32.const 3) - ) - ) - (get_local $6) - ) - ) - ) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.lt_s - (get_local $3) - (i32.const 256) - ) - (call $~lib/internal/array/insertionSort - (get_local $4) - (get_local $2) - (get_local $3) - (get_local $1) - ) - (call $~lib/internal/array/weakHeapSort - (get_local $4) - (get_local $2) - (get_local $3) - (get_local $1) - ) - ) - (return - (get_local $0) - ) + get_local $0 + i32.load offset=4 + set_local $2 + block $~lib/internal/typedarray/TypedArray#get:length|inlined.3 (result i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + end + set_local $3 + get_local $3 + i32.const 1 + i32.le_s + if + get_local $0 + return + end + get_local $0 + i32.load + set_local $4 + get_local $3 + i32.const 2 + i32.eq + if + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result f64) + i32.const 1 + set_local $5 + get_local $4 + get_local $2 + i32.add + get_local $5 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $6 + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.1 (result f64) + i32.const 0 + set_local $5 + get_local $4 + get_local $2 + i32.add + get_local $5 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end + set_local $7 + block (result i32) + i32.const 2 + set_global $~argc + get_local $6 + get_local $7 + get_local $1 + call_indirect (type $FFi) + end + i32.const 0 + i32.lt_s + if + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 + i32.const 1 + set_local $5 + get_local $4 + get_local $2 + i32.add + get_local $5 + i32.const 3 + i32.shl + i32.add + get_local $7 + f64.store offset=8 + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.2 + i32.const 0 + set_local $5 + get_local $4 + get_local $2 + i32.add + get_local $5 + i32.const 3 + i32.shl + i32.add + get_local $6 + f64.store offset=8 + end + end + get_local $0 + return + end + get_local $3 + i32.const 256 + i32.lt_s + if + get_local $4 + get_local $2 + get_local $3 + get_local $1 + call $~lib/internal/array/insertionSort + else + get_local $4 + get_local $2 + get_local $3 + get_local $1 + call $~lib/internal/array/weakHeapSort + end + get_local $0 + return ) (func $~lib/internal/typedarray/TypedArray#sort|trampoline~anonymous|1 (; 26 ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) - (set_local $2 - (i64.reinterpret/f64 - (get_local $0) - ) - ) - (set_local $3 - (i64.reinterpret/f64 - (get_local $1) - ) - ) - (set_local $2 - (i64.xor - (get_local $2) - (i64.shr_u - (i64.shr_s - (get_local $2) - (i64.const 63) - ) - (i64.const 1) - ) - ) - ) - (set_local $3 - (i64.xor - (get_local $3) - (i64.shr_u - (i64.shr_s - (get_local $3) - (i64.const 63) - ) - (i64.const 1) - ) - ) - ) - (i32.sub - (i64.gt_s - (get_local $2) - (get_local $3) - ) - (i64.lt_s - (get_local $2) - (get_local $3) - ) - ) + get_local $0 + i64.reinterpret/f64 + set_local $2 + get_local $1 + i64.reinterpret/f64 + set_local $3 + get_local $2 + get_local $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + set_local $2 + get_local $3 + get_local $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + set_local $3 + get_local $2 + get_local $3 + i64.gt_s + get_local $2 + get_local $3 + i64.lt_s + i32.sub ) (func $~lib/internal/typedarray/TypedArray#sort|trampoline (; 27 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - (block $1of1 - (block $0of1 - (block $outOfRange - (br_table $0of1 $1of1 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $1 - (block $~lib/internal/array/defaultComparator|inlined.0 (result i32) - (br $~lib/internal/array/defaultComparator|inlined.0 - (i32.const 1) - ) - ) - ) - ) - (call $~lib/internal/typedarray/TypedArray#sort - (get_local $0) - (get_local $1) - ) + block $1of1 + block $0of1 + block $outOfRange + get_global $~argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + block $~lib/internal/array/defaultComparator|inlined.0 (result i32) + i32.const 1 + br $~lib/internal/array/defaultComparator|inlined.0 + end + set_local $1 + end + get_local $0 + get_local $1 + call $~lib/internal/typedarray/TypedArray#sort ) (func $~lib/internal/typedarray/TypedArray#__get (; 28 ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $3 - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (get_local $2) - ) - (i32.const 3) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 42) - (i32.const 42) - ) - (unreachable) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.12 (result f64) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (f64.load offset=8 - (i32.add - (i32.add - (get_local $4) - (get_local $2) - ) - (i32.shl - (get_local $1) - (i32.const 3) - ) - ) - ) - ) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $0 + i32.load offset=8 + get_local $2 + i32.sub + i32.const 3 + i32.shr_u + set_local $3 + get_local $1 + get_local $3 + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 42 + i32.const 42 + call $~lib/env/abort + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.12 (result f64) + get_local $0 + i32.load + set_local $4 + get_local $4 + get_local $2 + i32.add + get_local $1 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + end ) (func $~lib/internal/typedarray/TypedArray#__set (; 29 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (get_local $3) - ) - (i32.const 0) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 55) - (i32.const 42) - ) - (unreachable) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (i32.store8 offset=8 - (i32.add - (i32.add - (get_local $5) - (get_local $3) - ) - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load offset=4 + set_local $3 + get_local $0 + i32.load offset=8 + get_local $3 + i32.sub + i32.const 0 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 55 + i32.const 42 + call $~lib/env/abort + unreachable + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 + get_local $0 + i32.load + set_local $5 + get_local $5 + get_local $3 + i32.add + get_local $1 + i32.const 0 + i32.shl + i32.add + get_local $2 + i32.store8 offset=8 + end ) (func $~lib/typedarray/Uint8ClampedArray#__set (; 30 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (call $~lib/internal/typedarray/TypedArray#__set - (get_local $0) - (get_local $1) - (select - (tee_local $3 - (select - (tee_local $3 - (get_local $2) - ) - (tee_local $4 - (i32.const 255) - ) - (i32.lt_s - (get_local $3) - (get_local $4) - ) - ) - ) - (tee_local $4 - (i32.const 0) - ) - (i32.gt_s - (get_local $3) - (get_local $4) - ) - ) - ) + get_local $0 + get_local $1 + get_local $2 + tee_local $3 + i32.const 255 + tee_local $4 + get_local $3 + get_local $4 + i32.lt_s + select + tee_local $3 + i32.const 0 + tee_local $4 + get_local $3 + get_local $4 + i32.gt_s + select + call $~lib/internal/typedarray/TypedArray#__set ) (func $~lib/internal/typedarray/TypedArray#__get (; 31 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $3 - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (get_local $2) - ) - (i32.const 0) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 42) - (i32.const 42) - ) - (unreachable) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (i32.load8_u offset=8 - (i32.add - (i32.add - (get_local $4) - (get_local $2) - ) - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - ) - ) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $0 + i32.load offset=8 + get_local $2 + i32.sub + i32.const 0 + i32.shr_u + set_local $3 + get_local $1 + get_local $3 + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 42 + i32.const 42 + call $~lib/env/abort + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) + get_local $0 + i32.load + set_local $4 + get_local $4 + get_local $2 + i32.add + get_local $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=8 + end ) (func $~lib/internal/typedarray/TypedArray#__set (; 32 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $4 - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (get_local $3) - ) - (i32.const 0) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 55) - (i32.const 42) - ) - (unreachable) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 - (set_local $5 - (i32.load - (get_local $0) - ) - ) - (i32.store8 offset=8 - (i32.add - (i32.add - (get_local $5) - (get_local $3) - ) - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - (get_local $2) - ) - ) + get_local $0 + i32.load offset=4 + set_local $3 + get_local $0 + i32.load offset=8 + get_local $3 + i32.sub + i32.const 0 + i32.shr_u + set_local $4 + get_local $1 + get_local $4 + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 55 + i32.const 42 + call $~lib/env/abort + unreachable + end + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.0 + get_local $0 + i32.load + set_local $5 + get_local $5 + get_local $3 + i32.add + get_local $1 + i32.const 0 + i32.shl + i32.add + get_local $2 + i32.store8 offset=8 + end ) (func $~lib/internal/typedarray/TypedArray#fill (; 33 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -4029,484 +2931,348 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $5 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $6 - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.1 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - ) - (set_local $2 - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (select - (tee_local $7 - (i32.add - (get_local $6) - (get_local $2) - ) - ) - (tee_local $8 - (i32.const 0) - ) - (i32.gt_s - (get_local $7) - (get_local $8) - ) - ) - (select - (tee_local $7 - (get_local $2) - ) - (tee_local $8 - (get_local $6) - ) - (i32.lt_s - (get_local $7) - (get_local $8) - ) - ) - ) - ) - (set_local $3 - (if (result i32) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (select - (tee_local $7 - (i32.add - (get_local $6) - (get_local $3) - ) - ) - (tee_local $8 - (i32.const 0) - ) - (i32.gt_s - (get_local $7) - (get_local $8) - ) - ) - (select - (tee_local $7 - (get_local $3) - ) - (tee_local $8 - (get_local $6) - ) - (i32.lt_s - (get_local $7) - (get_local $8) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (get_local $3) - ) - (block $~lib/memory/memory.fill|inlined.11 - (set_local $7 - (i32.add - (i32.add - (i32.add - (get_local $4) - (get_local $2) - ) - (get_local $5) - ) - (get_global $~lib/internal/arraybuffer/HEADER_SIZE) - ) - ) - (set_local $8 - (i32.sub - (get_local $3) - (get_local $2) - ) - ) - (call $~lib/internal/memory/memset - (get_local $7) - (get_local $1) - (get_local $8) - ) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $4 + get_local $0 + i32.load offset=4 + set_local $5 + block $~lib/internal/typedarray/TypedArray#get:length|inlined.1 (result i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 0 + i32.shr_s + end + set_local $6 + get_local $2 + i32.const 0 + i32.lt_s + if (result i32) + get_local $6 + get_local $2 + i32.add + tee_local $7 + i32.const 0 + tee_local $8 + get_local $7 + get_local $8 + i32.gt_s + select + else + get_local $2 + tee_local $7 + get_local $6 + tee_local $8 + get_local $7 + get_local $8 + i32.lt_s + select + end + set_local $2 + get_local $3 + i32.const 0 + i32.lt_s + if (result i32) + get_local $6 + get_local $3 + i32.add + tee_local $7 + i32.const 0 + tee_local $8 + get_local $7 + get_local $8 + i32.gt_s + select + else + get_local $3 + tee_local $7 + get_local $6 + tee_local $8 + get_local $7 + get_local $8 + i32.lt_s + select + end + set_local $3 + get_local $2 + get_local $3 + i32.lt_s + if + get_local $4 + get_local $2 + i32.add + get_local $5 + i32.add + get_global $~lib/internal/arraybuffer/HEADER_SIZE + i32.add + set_local $7 + get_local $3 + get_local $2 + i32.sub + set_local $8 + get_local $7 + get_local $1 + get_local $8 + call $~lib/internal/memory/memset + end + get_local $0 ) (func $~lib/internal/typedarray/TypedArray#__get (; 34 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (set_local $2 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $3 - (i32.shr_u - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (get_local $2) - ) - (i32.const 0) - ) - ) - (if - (i32.ge_u - (get_local $1) - (get_local $3) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 42) - (i32.const 42) - ) - (unreachable) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (i32.load8_s offset=8 - (i32.add - (i32.add - (get_local $4) - (get_local $2) - ) - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - ) - ) + get_local $0 + i32.load offset=4 + set_local $2 + get_local $0 + i32.load offset=8 + get_local $2 + i32.sub + i32.const 0 + i32.shr_u + set_local $3 + get_local $1 + get_local $3 + i32.ge_u + if + i32.const 0 + i32.const 48 + i32.const 42 + i32.const 42 + call $~lib/env/abort + unreachable + end + block $~lib/internal/arraybuffer/loadUnsafeWithOffset|inlined.0 (result i32) + get_local $0 + i32.load + set_local $4 + get_local $4 + get_local $2 + i32.add + get_local $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=8 + end ) (func $~lib/array/Array#__get (; 35 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 0) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load8_s offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 0 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=8 + else + unreachable + end ) (func $std/typedarray/isInt8ArrayEqual (; 36 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.ne - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.3 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - (block $~lib/array/Array#get:length|inlined.1 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (block $break|0 - (block - (set_local $2 - (i32.const 0) - ) - (set_local $3 - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.4 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (if - (i32.ne - (i32.shr_s - (i32.shl - (call $~lib/internal/typedarray/TypedArray#__get - (get_local $0) - (get_local $2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (call $~lib/array/Array#__get - (get_local $1) - (get_local $2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + block $~lib/internal/typedarray/TypedArray#get:length|inlined.3 (result i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 0 + i32.shr_s + end + block $~lib/array/Array#get:length|inlined.1 (result i32) + get_local $1 + i32.load offset=4 + end + i32.ne + if + i32.const 0 + return + end + block $break|0 + block + i32.const 0 + set_local $2 + block $~lib/internal/typedarray/TypedArray#get:length|inlined.4 (result i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 0 + i32.shr_s + end + set_local $3 + end + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + get_local $0 + get_local $2 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + get_local $1 + get_local $2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.ne + if + i32.const 0 + return + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $~lib/internal/typedarray/TypedArray#fill|trampoline (; 37 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 0) - ) - ) - (set_local $3 - (get_global $~lib/builtins/i32.MAX_VALUE) - ) - ) - (call $~lib/internal/typedarray/TypedArray#fill - (get_local $0) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $2 + end + get_global $~lib/builtins/i32.MAX_VALUE + set_local $3 + end + get_local $0 + get_local $1 + get_local $2 + get_local $3 + call $~lib/internal/typedarray/TypedArray#fill ) (func $~lib/typedarray/Int8Array#subarray (; 38 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (block $~lib/internal/typedarray/TypedArray#subarray|inlined.0 (result i32) - (set_local $3 - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.5 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - ) - (if - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - (set_local $1 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $1) - ) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $1 - (select - (tee_local $4 - (get_local $1) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (set_local $2 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $2) - ) - ) - (tee_local $5 - (get_local $1) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (set_local $2 - (select - (tee_local $4 - (select - (tee_local $4 - (get_local $2) - ) - (tee_local $5 - (get_local $3) - ) - (i32.lt_s - (get_local $4) - (get_local $5) - ) - ) - ) - (tee_local $5 - (get_local $1) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (set_local $4 - (block $~lib/memory/memory.allocate|inlined.4 (result i32) - (set_local $4 - (i32.const 12) - ) - (br $~lib/memory/memory.allocate|inlined.4 - (call $~lib/allocator/arena/__memory_allocate - (get_local $4) - ) - ) - ) - ) - (i32.store - (get_local $4) - (i32.load - (get_local $0) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 0) - ) - ) - (i32.store offset=8 - (get_local $4) - (i32.shl - (get_local $2) - (i32.const 0) - ) - ) - (get_local $4) - ) + block $~lib/internal/typedarray/TypedArray#get:length|inlined.5 (result i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 0 + i32.shr_s + end + set_local $3 + get_local $1 + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $1 + i32.add + tee_local $4 + i32.const 0 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $1 + else + get_local $1 + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + set_local $1 + end + get_local $2 + i32.const 0 + i32.lt_s + if + get_local $3 + get_local $2 + i32.add + tee_local $4 + get_local $1 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $2 + else + get_local $2 + tee_local $4 + get_local $3 + tee_local $5 + get_local $4 + get_local $5 + i32.lt_s + select + tee_local $4 + get_local $1 + tee_local $5 + get_local $4 + get_local $5 + i32.gt_s + select + set_local $2 + end + block $~lib/memory/memory.allocate|inlined.4 (result i32) + i32.const 12 + set_local $4 + get_local $4 + call $~lib/allocator/arena/__memory_allocate + br $~lib/memory/memory.allocate|inlined.4 + end + set_local $4 + get_local $4 + get_local $0 + i32.load + i32.store + get_local $4 + get_local $1 + i32.const 0 + i32.shl + i32.store offset=4 + get_local $4 + get_local $2 + i32.const 0 + i32.shl + i32.store offset=8 + get_local $4 ) (func $~lib/internal/typedarray/TypedArray#fill (; 39 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -4514,1500 +3280,1087 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (set_local $5 - (i32.load offset=4 - (get_local $0) - ) - ) - (set_local $6 - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.4 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - (set_local $2 - (if (result i32) - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (select - (tee_local $7 - (i32.add - (get_local $6) - (get_local $2) - ) - ) - (tee_local $8 - (i32.const 0) - ) - (i32.gt_s - (get_local $7) - (get_local $8) - ) - ) - (select - (tee_local $7 - (get_local $2) - ) - (tee_local $8 - (get_local $6) - ) - (i32.lt_s - (get_local $7) - (get_local $8) - ) - ) - ) - ) - (set_local $3 - (if (result i32) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - (select - (tee_local $7 - (i32.add - (get_local $6) - (get_local $3) - ) - ) - (tee_local $8 - (i32.const 0) - ) - (i32.gt_s - (get_local $7) - (get_local $8) - ) - ) - (select - (tee_local $7 - (get_local $3) - ) - (tee_local $8 - (get_local $6) - ) - (i32.lt_s - (get_local $7) - (get_local $8) - ) - ) - ) - ) - (block $break|0 - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 - (i32.store offset=8 - (i32.add - (i32.add - (get_local $4) - (get_local $5) - ) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - (get_local $1) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $0) + get_local $0 + i32.load + set_local $4 + get_local $0 + i32.load offset=4 + set_local $5 + block $~lib/internal/typedarray/TypedArray#get:length|inlined.4 (result i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + end + set_local $6 + get_local $2 + i32.const 0 + i32.lt_s + if (result i32) + get_local $6 + get_local $2 + i32.add + tee_local $7 + i32.const 0 + tee_local $8 + get_local $7 + get_local $8 + i32.gt_s + select + else + get_local $2 + tee_local $7 + get_local $6 + tee_local $8 + get_local $7 + get_local $8 + i32.lt_s + select + end + set_local $2 + get_local $3 + i32.const 0 + i32.lt_s + if (result i32) + get_local $6 + get_local $3 + i32.add + tee_local $7 + i32.const 0 + tee_local $8 + get_local $7 + get_local $8 + i32.gt_s + select + else + get_local $3 + tee_local $7 + get_local $6 + tee_local $8 + get_local $7 + get_local $8 + i32.lt_s + select + end + set_local $3 + block $break|0 + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + block $~lib/internal/arraybuffer/storeUnsafeWithOffset|inlined.1 + get_local $4 + get_local $5 + i32.add + get_local $2 + i32.const 2 + i32.shl + i32.add + get_local $1 + i32.store offset=8 + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + get_local $0 ) (func $~lib/array/Array#__get (; 40 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (set_local $2 - (i32.load - (get_local $0) - ) - ) - (if (result i32) - (i32.lt_u - (get_local $1) - (i32.shr_u - (i32.load - (get_local $2) - ) - (i32.const 2) - ) - ) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $2) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - ) - (unreachable) - ) + get_local $0 + i32.load + set_local $2 + get_local $1 + get_local $2 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $2 + get_local $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=8 + else + unreachable + end ) (func $std/typedarray/isInt32ArrayEqual (; 41 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (if - (i32.ne - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.6 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (block $~lib/array/Array#get:length|inlined.1 (result i32) - (i32.load offset=4 - (get_local $1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - (block $break|0 - (block - (set_local $2 - (i32.const 0) - ) - (set_local $3 - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.7 (result i32) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.lt_s - (get_local $2) - (get_local $3) - ) - ) - ) - (if - (i32.ne - (call $~lib/internal/typedarray/TypedArray#__get - (get_local $0) - (get_local $2) - ) - (call $~lib/array/Array#__get - (get_local $1) - (get_local $2) - ) - ) - (return - (i32.const 0) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (i32.const 1) + block $~lib/internal/typedarray/TypedArray#get:length|inlined.6 (result i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + end + block $~lib/array/Array#get:length|inlined.1 (result i32) + get_local $1 + i32.load offset=4 + end + i32.ne + if + i32.const 0 + return + end + block $break|0 + block + i32.const 0 + set_local $2 + block $~lib/internal/typedarray/TypedArray#get:length|inlined.7 (result i32) + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + end + set_local $3 + end + loop $repeat|0 + get_local $2 + get_local $3 + i32.lt_s + i32.eqz + br_if $break|0 + get_local $0 + get_local $2 + call $~lib/internal/typedarray/TypedArray#__get + get_local $1 + get_local $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + return + end + get_local $2 + i32.const 1 + i32.add + set_local $2 + br $repeat|0 + unreachable + end + unreachable + end + i32.const 1 ) (func $~lib/internal/typedarray/TypedArray#fill|trampoline (; 42 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (block $2of2 - (block $1of2 - (block $0of2 - (block $outOfRange - (br_table $0of2 $1of2 $2of2 $outOfRange - (i32.sub - (get_global $~argc) - (i32.const 1) - ) - ) - ) - (unreachable) - ) - (set_local $2 - (i32.const 0) - ) - ) - (set_local $3 - (get_global $~lib/builtins/i32.MAX_VALUE) - ) - ) - (call $~lib/internal/typedarray/TypedArray#fill - (get_local $0) - (get_local $1) - (get_local $2) - (get_local $3) - ) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + get_global $~argc + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + set_local $2 + end + get_global $~lib/builtins/i32.MAX_VALUE + set_local $3 + end + get_local $0 + get_local $1 + get_local $2 + get_local $3 + call $~lib/internal/typedarray/TypedArray#fill ) (func $start (; 43 ;) (type $v) (local $0 i32) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 1) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 2) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 3) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 4) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 5) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 6) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 7) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT) - (i32.const 8) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $~lib/allocator/arena/startOffset - (i32.and - (i32.add - (get_global $HEAP_BASE) - (get_global $~lib/internal/allocator/AL_MASK) - ) - (i32.xor - (get_global $~lib/internal/allocator/AL_MASK) - (i32.const -1) - ) - ) - ) - (set_global $~lib/allocator/arena/offset - (get_global $~lib/allocator/arena/startOffset) - ) - (call $std/typedarray/testInstantiate - (i32.const 0) - ) - (call $std/typedarray/testInstantiate - (i32.const 5) - ) - (set_global $std/typedarray/arr - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (i32.const 3) - ) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr) - (i32.const 0) - (i32.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr) - (i32.const 1) - (i32.const 2) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr) - (i32.const 2) - (i32.const 3) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.1 (result i32) - (set_local $0 - (get_global $std/typedarray/arr) - ) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 97) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_global $std/typedarray/arr) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 98) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_global $std/typedarray/arr) - ) - (i32.mul - (i32.const 3) - (i32.const 4) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 99) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/arr) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 100) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/arr) - (i32.const 1) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/arr) - (i32.const 2) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/arr - (call $~lib/typedarray/Int32Array#subarray - (get_global $std/typedarray/arr) - (i32.const 1) - (i32.const 2) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.3 (result i32) - (set_local $0 - (get_global $std/typedarray/arr) - ) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 105) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=4 - (get_global $std/typedarray/arr) - ) - (i32.mul - (i32.const 1) - (i32.const 4) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.load offset=8 - (get_global $std/typedarray/arr) - ) - (i32.mul - (i32.const 2) - (i32.const 4) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/arr) - (i32.const 0) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 108) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/af64 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (i32.const 8) - ) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 0) - (f64.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 1) - (f64.const 2) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 2) - (f64.const 7) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 3) - (f64.const 6) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 4) - (f64.const 5) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 5) - (f64.const 4) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 6) - (f64.const 3) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/af64) - (i32.const 7) - (f64.const 8) - ) - (set_global $std/typedarray/af64 - (call $~lib/typedarray/Float64Array#subarray - (get_global $std/typedarray/af64) - (i32.const 2) - (i32.const 6) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.2 (result i32) - (set_local $0 - (get_global $std/typedarray/af64) - ) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 3) - ) - ) - (i32.const 4) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 122) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 0) - ) - (call $~lib/internal/typedarray/TypedArray#sort|trampoline - (get_global $std/typedarray/af64) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (if (result i32) - (tee_local $0 - (if (result i32) - (tee_local $0 - (if (result i32) - (tee_local $0 - (f64.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/af64) - (i32.const 0) - ) - (f64.const 4) - ) - ) - (f64.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/af64) - (i32.const 1) - ) - (f64.const 5) - ) - (get_local $0) - ) - ) - (f64.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/af64) - (i32.const 2) - ) - (f64.const 6) - ) - (get_local $0) - ) - ) - (f64.eq - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/af64) - (i32.const 3) - ) - (f64.const 7) - ) - (get_local $0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 124) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/clampedArr - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (i32.const 3) - ) - ) - (call $~lib/typedarray/Uint8ClampedArray#__set - (get_global $std/typedarray/clampedArr) - (i32.const 0) - (i32.const -32) - ) - (call $~lib/typedarray/Uint8ClampedArray#__set - (get_global $std/typedarray/clampedArr) - (i32.const 1) - (i32.const 2) - ) - (call $~lib/typedarray/Uint8ClampedArray#__set - (get_global $std/typedarray/clampedArr) - (i32.const 2) - (i32.const 256) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/clampedArr) - (i32.const 0) - ) - (i32.const 255) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/clampedArr) - (i32.const 1) - ) - (i32.const 255) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 132) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (i32.and - (call $~lib/internal/typedarray/TypedArray#__get - (get_global $std/typedarray/clampedArr) - (i32.const 2) - ) - (i32.const 255) - ) - (i32.const 255) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/arr8 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (i32.const 5) - ) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr8) - (i32.const 0) - (i32.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr8) - (i32.const 1) - (i32.const 2) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr8) - (i32.const 2) - (i32.const 3) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr8) - (i32.const 3) - (i32.const 4) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr8) - (i32.const 4) - (i32.const 5) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr8) - (i32.const 1) - (i32.const 1) - (i32.const 3) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 192) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 143) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/arr8) - (i32.const 0) - (i32.const 0) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 216) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 146) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr8) - (i32.const 1) - (i32.const 0) - (i32.const -3) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 240) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 149) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/arr8) - (i32.const 2) - (i32.const -2) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 264) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 152) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr8) - (i32.const 0) - (i32.const 1) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 288) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 155) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/sub8 - (call $~lib/typedarray/Int8Array#subarray - (get_global $std/typedarray/arr8) - (i32.const 1) - (i32.const 4) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/sub8) - (i32.const 0) - (i32.const 0) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.6 (result i32) - (set_local $0 - (get_global $std/typedarray/sub8) - ) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 0) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 159) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/sub8) - (i32.const 312) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 160) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt8ArrayEqual - (get_global $std/typedarray/arr8) - (i32.const 336) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 161) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/arr32 - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (i32.const 5) - ) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr32) - (i32.const 0) - (i32.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr32) - (i32.const 1) - (i32.const 2) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr32) - (i32.const 2) - (i32.const 3) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr32) - (i32.const 3) - (i32.const 4) - ) - (call $~lib/internal/typedarray/TypedArray#__set - (get_global $std/typedarray/arr32) - (i32.const 4) - (i32.const 5) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr32) - (i32.const 1) - (i32.const 1) - (i32.const 3) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 376) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 171) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/arr32) - (i32.const 0) - (i32.const 0) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 416) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 174) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr32) - (i32.const 1) - (i32.const 0) - (i32.const -3) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 456) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 177) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 2) - ) - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/arr32) - (i32.const 2) - (i32.const -2) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 496) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 180) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#fill - (get_global $std/typedarray/arr32) - (i32.const 0) - (i32.const 1) - (i32.const 0) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 536) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 183) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $std/typedarray/sub32 - (call $~lib/typedarray/Int32Array#subarray - (get_global $std/typedarray/arr32) - (i32.const 1) - (i32.const 4) - ) - ) - (drop - (block (result i32) - (set_global $~argc - (i32.const 1) - ) - (call $~lib/internal/typedarray/TypedArray#fill|trampoline - (get_global $std/typedarray/sub32) - (i32.const 0) - (i32.const 0) - (i32.const 0) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (block $~lib/internal/typedarray/TypedArray#get:length|inlined.8 (result i32) - (set_local $0 - (get_global $std/typedarray/sub32) - ) - (i32.shr_s - (i32.sub - (i32.load offset=8 - (get_local $0) - ) - (i32.load offset=4 - (get_local $0) - ) - ) - (i32.const 2) - ) - ) - (i32.const 3) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 187) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/sub32) - (i32.const 576) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 188) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $std/typedarray/isInt32ArrayEqual - (get_global $std/typedarray/arr32) - (i32.const 616) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 189) - (i32.const 0) - ) - (unreachable) - ) - ) - (drop - (call $~lib/internal/typedarray/TypedArray#constructor - (i32.const 0) - (get_global $std/typedarray/MAX_F64LENGTH) - ) - ) + get_global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 1 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 2 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 3 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 4 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 5 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 6 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 7 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $HEAP_BASE + get_global $~lib/internal/allocator/AL_MASK + i32.add + get_global $~lib/internal/allocator/AL_MASK + i32.const -1 + i32.xor + i32.and + set_global $~lib/allocator/arena/startOffset + get_global $~lib/allocator/arena/startOffset + set_global $~lib/allocator/arena/offset + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + i32.const 0 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#constructor + set_global $std/typedarray/arr + get_global $std/typedarray/arr + i32.const 0 + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr + i32.const 1 + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr + i32.const 2 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#__set + block $~lib/internal/typedarray/TypedArray#get:length|inlined.1 (result i32) + get_global $std/typedarray/arr + set_local $0 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 97 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.load offset=4 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 98 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.load offset=8 + i32.const 3 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 99 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.const 0 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 100 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 101 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 102 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + set_global $std/typedarray/arr + block $~lib/internal/typedarray/TypedArray#get:length|inlined.3 (result i32) + get_global $std/typedarray/arr + set_local $0 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + end + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 105 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.load offset=4 + i32.const 1 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 106 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.load offset=8 + i32.const 2 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 107 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr + i32.const 0 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 108 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 8 + call $~lib/internal/typedarray/TypedArray#constructor + set_global $std/typedarray/af64 + get_global $std/typedarray/af64 + i32.const 0 + f64.const 1 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 1 + f64.const 2 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 2 + f64.const 7 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 3 + f64.const 6 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 4 + f64.const 5 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 5 + f64.const 4 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 6 + f64.const 3 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 7 + f64.const 8 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/af64 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + set_global $std/typedarray/af64 + block $~lib/internal/typedarray/TypedArray#get:length|inlined.2 (result i32) + get_global $std/typedarray/af64 + set_local $0 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 3 + i32.shr_s + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 122 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 0 + set_global $~argc + get_global $std/typedarray/af64 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#sort|trampoline + end + drop + get_global $std/typedarray/af64 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#__get + f64.const 4 + f64.eq + tee_local $0 + if (result i32) + get_global $std/typedarray/af64 + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__get + f64.const 5 + f64.eq + else + get_local $0 + end + tee_local $0 + if (result i32) + get_global $std/typedarray/af64 + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__get + f64.const 6 + f64.eq + else + get_local $0 + end + tee_local $0 + if (result i32) + get_global $std/typedarray/af64 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#__get + f64.const 7 + f64.eq + else + get_local $0 + end + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 124 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#constructor + set_global $std/typedarray/clampedArr + get_global $std/typedarray/clampedArr + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + get_global $std/typedarray/clampedArr + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + get_global $std/typedarray/clampedArr + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + get_global $std/typedarray/clampedArr + i32.const 0 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 255 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 131 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/clampedArr + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 255 + i32.and + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 132 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/clampedArr + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__get + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 133 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 5 + call $~lib/internal/typedarray/TypedArray#constructor + set_global $std/typedarray/arr8 + get_global $std/typedarray/arr8 + i32.const 0 + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr8 + i32.const 1 + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr8 + i32.const 2 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr8 + i32.const 3 + i32.const 4 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr8 + i32.const 4 + i32.const 5 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr8 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr8 + i32.const 192 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/typedarray/arr8 + i32.const 0 + i32.const 0 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + end + drop + get_global $std/typedarray/arr8 + i32.const 216 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 146 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr8 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr8 + i32.const 240 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 149 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 2 + set_global $~argc + get_global $std/typedarray/arr8 + i32.const 2 + i32.const -2 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + end + drop + get_global $std/typedarray/arr8 + i32.const 264 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 152 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr8 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr8 + i32.const 288 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 155 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr8 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + set_global $std/typedarray/sub8 + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/typedarray/sub8 + i32.const 0 + i32.const 0 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + end + drop + block $~lib/internal/typedarray/TypedArray#get:length|inlined.6 (result i32) + get_global $std/typedarray/sub8 + set_local $0 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 0 + i32.shr_s + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 159 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/sub8 + i32.const 312 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 160 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr8 + i32.const 336 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 161 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + i32.const 5 + call $~lib/internal/typedarray/TypedArray#constructor + set_global $std/typedarray/arr32 + get_global $std/typedarray/arr32 + i32.const 0 + i32.const 1 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr32 + i32.const 1 + i32.const 2 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr32 + i32.const 2 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr32 + i32.const 3 + i32.const 4 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr32 + i32.const 4 + i32.const 5 + call $~lib/internal/typedarray/TypedArray#__set + get_global $std/typedarray/arr32 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr32 + i32.const 376 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 171 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/typedarray/arr32 + i32.const 0 + i32.const 0 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + end + drop + get_global $std/typedarray/arr32 + i32.const 416 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 174 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr32 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr32 + i32.const 456 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 177 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 2 + set_global $~argc + get_global $std/typedarray/arr32 + i32.const 2 + i32.const -2 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + end + drop + get_global $std/typedarray/arr32 + i32.const 496 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 180 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr32 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill + drop + get_global $std/typedarray/arr32 + i32.const 536 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 183 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr32 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + set_global $std/typedarray/sub32 + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/typedarray/sub32 + i32.const 0 + i32.const 0 + i32.const 0 + call $~lib/internal/typedarray/TypedArray#fill|trampoline + end + drop + block $~lib/internal/typedarray/TypedArray#get:length|inlined.8 (result i32) + get_global $std/typedarray/sub32 + set_local $0 + get_local $0 + i32.load offset=8 + get_local $0 + i32.load offset=4 + i32.sub + i32.const 2 + i32.shr_s + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 187 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/sub32 + i32.const 576 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 188 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/typedarray/arr32 + i32.const 616 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 189 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + get_global $std/typedarray/MAX_F64LENGTH + call $~lib/internal/typedarray/TypedArray#constructor + drop ) (func $null (; 44 ;) (type $v) ) diff --git a/tests/compiler/switch.optimized.wat b/tests/compiler/switch.optimized.wat index 0330d840..fcef43d7 100644 --- a/tests/compiler/switch.optimized.wat +++ b/tests/compiler/switch.optimized.wat @@ -3,639 +3,468 @@ (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (type $FUNCSIG$i (func (result i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\t\00\00\00s\00w\00i\00t\00c\00h\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $switch/doSwitch (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $switch/doSwitch (; 1 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (block $case4|0 - (block $case2|0 - (if - (i32.ne - (get_local $0) - (i32.const 1) - ) - (block - (br_if $case2|0 - (i32.eqz - (tee_local $1 - (get_local $0) - ) - ) - ) - (br_if $case4|0 - (i32.eq - (get_local $1) - (i32.const 2) - ) - ) - (br_if $case4|0 - (i32.eq - (get_local $1) - (i32.const 3) - ) - ) - (br $case2|0) - ) - ) - (return - (i32.const 1) - ) - ) - (return - (i32.const 0) - ) - ) - (i32.const 23) + block $case4|0 + block $case2|0 + get_local $0 + i32.const 1 + i32.ne + if + get_local $0 + tee_local $1 + i32.eqz + br_if $case2|0 + get_local $1 + i32.const 2 + i32.eq + br_if $case4|0 + get_local $1 + i32.const 3 + i32.eq + br_if $case4|0 + br $case2|0 + end + i32.const 1 + return + end + i32.const 0 + return + end + i32.const 23 ) - (func $switch/doSwitchDefaultOmitted (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $switch/doSwitchDefaultOmitted (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (block $break|0 - (block $case2|0 - (if - (i32.ne - (get_local $0) - (i32.const 1) - ) - (block - (br_if $case2|0 - (i32.eq - (tee_local $1 - (get_local $0) - ) - (i32.const 2) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $1) - (i32.const 3) - ) - ) - (br $break|0) - ) - ) - (return - (i32.const 1) - ) - ) - (return - (i32.const 23) - ) - ) - (i32.const 0) + block $break|0 + block $case2|0 + get_local $0 + i32.const 1 + i32.ne + if + get_local $0 + tee_local $1 + i32.const 2 + i32.eq + br_if $case2|0 + get_local $1 + i32.const 3 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + return + end + i32.const 23 + return + end + i32.const 0 ) - (func $switch/doSwitchBreakCase (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (block $break|0 - (br_if $break|0 - (i32.eq - (get_local $0) - (i32.const 1) - ) - ) - (return - (i32.const 2) - ) - ) - (i32.const 1) + (func $switch/doSwitchBreakCase (; 3 ;) (type $ii) (param $0 i32) (result i32) + block $break|0 + get_local $0 + i32.const 1 + i32.eq + br_if $break|0 + i32.const 2 + return + end + i32.const 1 ) - (func $switch/doSwitchBreakDefault (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (block $break|0 - (block $case1|0 - (br_if $break|0 - (i32.ne - (get_local $0) - (i32.const 1) - ) - ) - (return - (i32.const 1) - ) - ) - ) - (i32.const 2) + (func $switch/doSwitchBreakDefault (; 4 ;) (type $ii) (param $0 i32) (result i32) + block $break|0 + block $case1|0 + get_local $0 + i32.const 1 + i32.ne + br_if $break|0 + i32.const 1 + return + unreachable + end + unreachable + end + i32.const 2 ) - (func $switch/doSwitchFallThroughCase (; 5 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (if - (i32.ne - (get_local $0) - (i32.const 1) - ) - (return - (i32.const 2) - ) - ) - (i32.const 1) + (func $switch/doSwitchFallThroughCase (; 5 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 1 + i32.ne + if + i32.const 2 + return + end + i32.const 1 ) - (func $switch/doSwitchFallThroughDefault (; 6 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (if - (i32.eq - (get_local $0) - (i32.const 1) - ) - (return - (i32.const 1) - ) - ) - (i32.const 2) + (func $switch/doSwitchFallThroughDefault (; 6 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 + i32.const 1 + i32.eq + if + i32.const 1 + return + end + i32.const 2 ) - (func $switch/doSwitchEmpty (; 7 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) - (i32.const 2) + (func $switch/doSwitchEmpty (; 7 ;) (type $FUNCSIG$i) (result i32) + i32.const 2 ) - (func $start (; 8 ;) (; has Stack IR ;) (type $v) - (if - (call $switch/doSwitch - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitch - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitch - (i32.const 2) - ) - (i32.const 23) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitch - (i32.const 3) - ) - (i32.const 23) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $switch/doSwitch - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 14) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $switch/doSwitch - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitch - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitch - (i32.const 2) - ) - (i32.const 23) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitch - (i32.const 3) - ) - (i32.const 23) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $switch/doSwitch - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $switch/doSwitchDefaultOmitted - (i32.const 0) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 38) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchDefaultOmitted - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchDefaultOmitted - (i32.const 2) - ) - (i32.const 23) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchDefaultOmitted - (i32.const 3) - ) - (i32.const 23) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 41) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $switch/doSwitchDefaultOmitted - (i32.const 4) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 42) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchBreakCase - (i32.const 0) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 51) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchBreakCase - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 52) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchBreakCase - (i32.const 2) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 53) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchBreakDefault - (i32.const 0) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 62) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchBreakDefault - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 63) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchBreakDefault - (i32.const 2) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 64) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchFallThroughCase - (i32.const 0) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 73) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchFallThroughCase - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 74) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchFallThroughCase - (i32.const 2) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 75) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchFallThroughDefault - (i32.const 0) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 84) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchFallThroughDefault - (i32.const 1) - ) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 85) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchFallThroughDefault - (i32.const 2) - ) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 86) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchEmpty) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 92) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchEmpty) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 93) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (call $switch/doSwitchEmpty) - (i32.const 2) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 94) - (i32.const 0) - ) - (unreachable) - ) - ) + (func $start (; 8 ;) (type $v) + i32.const 0 + call $switch/doSwitch + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitch + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitch + i32.const 23 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + call $switch/doSwitch + i32.const 23 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + call $switch/doSwitch + if + i32.const 0 + i32.const 8 + i32.const 14 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitch + if + i32.const 0 + i32.const 8 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitch + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitch + i32.const 23 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + call $switch/doSwitch + i32.const 23 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + call $switch/doSwitch + if + i32.const 0 + i32.const 8 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchDefaultOmitted + if + i32.const 0 + i32.const 8 + i32.const 38 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchDefaultOmitted + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchDefaultOmitted + i32.const 23 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + call $switch/doSwitchDefaultOmitted + i32.const 23 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 41 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + call $switch/doSwitchDefaultOmitted + if + i32.const 0 + i32.const 8 + i32.const 42 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchBreakCase + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 51 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchBreakCase + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 52 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchBreakCase + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 53 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchBreakDefault + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 62 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchBreakDefault + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 63 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchBreakDefault + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 64 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchFallThroughCase + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 73 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchFallThroughCase + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 74 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchFallThroughCase + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 75 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchFallThroughDefault + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 84 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchFallThroughDefault + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 85 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchFallThroughDefault + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 86 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $switch/doSwitchEmpty + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 92 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $switch/doSwitchEmpty + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 93 + i32.const 0 + call $~lib/env/abort + unreachable + end + call $switch/doSwitchEmpty + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 94 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 9 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 9 ;) (type $v) + nop ) ) diff --git a/tests/compiler/switch.untouched.wat b/tests/compiler/switch.untouched.wat index 739f009d..0f9ccc01 100644 --- a/tests/compiler/switch.untouched.wat +++ b/tests/compiler/switch.untouched.wat @@ -2,779 +2,563 @@ (type $ii (func (param i32) (result i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\t\00\00\00s\00w\00i\00t\00c\00h\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $HEAP_BASE i32 (i32.const 32)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $switch/doSwitch (; 1 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (block $break|0 - (block $case4|0 - (block $case3|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $1 - (get_local $0) - ) - (br_if $case0|0 - (i32.eq - (get_local $1) - (i32.const 1) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $1) - (i32.const 0) - ) - ) - (br_if $case3|0 - (i32.eq - (get_local $1) - (i32.const 2) - ) - ) - (br_if $case4|0 - (i32.eq - (get_local $1) - (i32.const 3) - ) - ) - (br $case2|0) - ) - (return - (i32.const 1) - ) - ) - ) - (return - (i32.const 0) - ) - ) - ) - (return - (i32.const 23) - ) - ) - (unreachable) + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $0 + set_local $1 + get_local $1 + i32.const 1 + i32.eq + br_if $case0|0 + get_local $1 + i32.const 0 + i32.eq + br_if $case1|0 + get_local $1 + i32.const 2 + i32.eq + br_if $case3|0 + get_local $1 + i32.const 3 + i32.eq + br_if $case4|0 + br $case2|0 + end + i32.const 1 + return + end + end + i32.const 0 + return + end + end + i32.const 23 + return + unreachable + end + unreachable + unreachable ) (func $switch/doSwitchDefaultOmitted (; 2 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (block $break|0 - (block $case2|0 - (block $case1|0 - (block $case0|0 - (set_local $1 - (get_local $0) - ) - (br_if $case0|0 - (i32.eq - (get_local $1) - (i32.const 1) - ) - ) - (br_if $case1|0 - (i32.eq - (get_local $1) - (i32.const 2) - ) - ) - (br_if $case2|0 - (i32.eq - (get_local $1) - (i32.const 3) - ) - ) - (br $break|0) - ) - (return - (i32.const 1) - ) - ) - ) - (return - (i32.const 23) - ) - ) - (i32.const 0) + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + get_local $0 + set_local $1 + get_local $1 + i32.const 1 + i32.eq + br_if $case0|0 + get_local $1 + i32.const 2 + i32.eq + br_if $case1|0 + get_local $1 + i32.const 3 + i32.eq + br_if $case2|0 + br $break|0 + end + i32.const 1 + return + end + end + i32.const 23 + return + end + i32.const 0 ) (func $switch/doSwitchBreakCase (; 3 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (block $break|0 - (block $case1|0 - (block $case0|0 - (set_local $1 - (get_local $0) - ) - (br_if $case0|0 - (i32.eq - (get_local $1) - (i32.const 1) - ) - ) - (br $case1|0) - ) - (br $break|0) - ) - (return - (i32.const 2) - ) - ) - (i32.const 1) + block $break|0 + block $case1|0 + block $case0|0 + get_local $0 + set_local $1 + get_local $1 + i32.const 1 + i32.eq + br_if $case0|0 + br $case1|0 + end + br $break|0 + end + i32.const 2 + return + end + i32.const 1 ) (func $switch/doSwitchBreakDefault (; 4 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (block $break|0 - (block $case1|0 - (block $case0|0 - (set_local $1 - (get_local $0) - ) - (br_if $case0|0 - (i32.eq - (get_local $1) - (i32.const 1) - ) - ) - (br $case1|0) - ) - (return - (i32.const 1) - ) - ) - (br $break|0) - ) - (i32.const 2) + block $break|0 + block $case1|0 + block $case0|0 + get_local $0 + set_local $1 + get_local $1 + i32.const 1 + i32.eq + br_if $case0|0 + br $case1|0 + end + i32.const 1 + return + end + br $break|0 + end + i32.const 2 ) (func $switch/doSwitchFallThroughCase (; 5 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (block $break|0 - (block $case1|0 - (block $case0|0 - (set_local $1 - (get_local $0) - ) - (br_if $case1|0 - (i32.eq - (get_local $1) - (i32.const 1) - ) - ) - (br $case0|0) - ) - (return - (i32.const 2) - ) - ) - ) - (i32.const 1) + block $break|0 + block $case1|0 + block $case0|0 + get_local $0 + set_local $1 + get_local $1 + i32.const 1 + i32.eq + br_if $case1|0 + br $case0|0 + end + i32.const 2 + return + end + end + i32.const 1 ) (func $switch/doSwitchFallThroughDefault (; 6 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - (block $break|0 - (block $case1|0 - (block $case0|0 - (set_local $1 - (get_local $0) - ) - (br_if $case0|0 - (i32.eq - (get_local $1) - (i32.const 1) - ) - ) - (br $case1|0) - ) - (return - (i32.const 1) - ) - ) - ) - (i32.const 2) + block $break|0 + block $case1|0 + block $case0|0 + get_local $0 + set_local $1 + get_local $1 + i32.const 1 + i32.eq + br_if $case0|0 + br $case1|0 + end + i32.const 1 + return + end + end + i32.const 2 ) (func $switch/doSwitchEmpty (; 7 ;) (type $ii) (param $0 i32) (result i32) - (drop - (get_local $0) - ) - (i32.const 2) + get_local $0 + drop + i32.const 2 ) (func $start (; 8 ;) (type $v) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitch - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 10) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitch - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 11) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitch - (i32.const 2) - ) - (i32.const 23) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 12) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitch - (i32.const 3) - ) - (i32.const 23) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 13) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitch - (i32.const 4) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 14) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitch - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitch - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitch - (i32.const 2) - ) - (i32.const 23) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitch - (i32.const 3) - ) - (i32.const 23) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 27) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitch - (i32.const 4) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 28) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchDefaultOmitted - (i32.const 0) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 38) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchDefaultOmitted - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 39) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchDefaultOmitted - (i32.const 2) - ) - (i32.const 23) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 40) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchDefaultOmitted - (i32.const 3) - ) - (i32.const 23) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 41) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchDefaultOmitted - (i32.const 4) - ) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 42) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchBreakCase - (i32.const 0) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 51) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchBreakCase - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 52) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchBreakCase - (i32.const 2) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 53) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchBreakDefault - (i32.const 0) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 62) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchBreakDefault - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 63) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchBreakDefault - (i32.const 2) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 64) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchFallThroughCase - (i32.const 0) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 73) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchFallThroughCase - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 74) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchFallThroughCase - (i32.const 2) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 75) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchFallThroughDefault - (i32.const 0) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 84) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchFallThroughDefault - (i32.const 1) - ) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 85) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchFallThroughDefault - (i32.const 2) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 86) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchEmpty - (i32.const 0) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 92) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchEmpty - (i32.const 1) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 93) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (call $switch/doSwitchEmpty - (i32.const 2) - ) - (i32.const 2) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 94) - (i32.const 0) - ) - (unreachable) - ) - ) + i32.const 0 + call $switch/doSwitch + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 10 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitch + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 11 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitch + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 12 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + call $switch/doSwitch + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 13 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + call $switch/doSwitch + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 14 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitch + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitch + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitch + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + call $switch/doSwitch + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 27 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + call $switch/doSwitch + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 28 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchDefaultOmitted + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 38 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchDefaultOmitted + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 39 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchDefaultOmitted + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 40 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 3 + call $switch/doSwitchDefaultOmitted + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 41 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 4 + call $switch/doSwitchDefaultOmitted + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 42 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchBreakCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 51 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchBreakCase + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 52 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchBreakCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 53 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchBreakDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 62 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchBreakDefault + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 63 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchBreakDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 64 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchFallThroughCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 73 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchFallThroughCase + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 74 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchFallThroughCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 75 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchFallThroughDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 84 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchFallThroughDefault + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 85 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchFallThroughDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 86 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 0 + call $switch/doSwitchEmpty + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 92 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + call $switch/doSwitchEmpty + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 93 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2 + call $switch/doSwitchEmpty + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 94 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 9 ;) (type $v) ) diff --git a/tests/compiler/ternary.optimized.wat b/tests/compiler/ternary.optimized.wat index f4eb234b..3bbd8da2 100644 --- a/tests/compiler/ternary.optimized.wat +++ b/tests/compiler/ternary.optimized.wat @@ -1,24 +1,21 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $ternary/a (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 0 ;) (; has Stack IR ;) (type $v) - (set_global $ternary/a - (i32.const 1) - ) - (set_global $ternary/a - (i32.const 1) - ) - (set_global $ternary/a - (i32.const 1) - ) + (func $start (; 0 ;) (type $v) + i32.const 1 + set_global $ternary/a + i32.const 1 + set_global $ternary/a + i32.const 1 + set_global $ternary/a ) - (func $null (; 1 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 1 ;) (type $v) + nop ) ) diff --git a/tests/compiler/ternary.untouched.wat b/tests/compiler/ternary.untouched.wat index 57f87711..cd3202df 100644 --- a/tests/compiler/ternary.untouched.wat +++ b/tests/compiler/ternary.untouched.wat @@ -1,7 +1,7 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $ternary/a (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 8)) @@ -9,24 +9,18 @@ (export "table" (table $0)) (start $start) (func $start (; 0 ;) (type $v) - (drop - (i32.const 1) - ) - (drop - (i32.const 1) - ) - (drop - (i32.const 1) - ) - (set_global $ternary/a - (i32.const 1) - ) - (set_global $ternary/a - (i32.const 1) - ) - (set_global $ternary/a - (i32.const 1) - ) + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + set_global $ternary/a + i32.const 1 + set_global $ternary/a + i32.const 1 + set_global $ternary/a ) (func $null (; 1 ;) (type $v) ) diff --git a/tests/compiler/typealias.optimized.wat b/tests/compiler/typealias.optimized.wat index 5fff5c87..fb635ddf 100644 --- a/tests/compiler/typealias.optimized.wat +++ b/tests/compiler/typealias.optimized.wat @@ -2,15 +2,15 @@ (type $ii (func (param i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $start) (export "memory" (memory $0)) (export "table" (table $0)) (export "alias" (func $typealias/alias)) - (func $typealias/alias (; 0 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - (get_local $0) + (func $typealias/alias (; 0 ;) (type $ii) (param $0 i32) (result i32) + get_local $0 ) - (func $start (; 1 ;) (; has Stack IR ;) (type $v) - (nop) + (func $start (; 1 ;) (type $v) + nop ) ) diff --git a/tests/compiler/typealias.untouched.wat b/tests/compiler/typealias.untouched.wat index dc63129d..478c79f2 100644 --- a/tests/compiler/typealias.untouched.wat +++ b/tests/compiler/typealias.untouched.wat @@ -2,7 +2,7 @@ (type $ii (func (param i32) (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $HEAP_BASE i32 (i32.const 8)) (export "memory" (memory $0)) @@ -10,10 +10,10 @@ (export "alias" (func $typealias/alias)) (start $start) (func $typealias/alias (; 0 ;) (type $ii) (param $0 i32) (result i32) - (get_local $0) + get_local $0 ) (func $start (; 1 ;) (type $v) - (nop) + nop ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/unary.optimized.wat b/tests/compiler/unary.optimized.wat index 145a019c..d66b2ef9 100644 --- a/tests/compiler/unary.optimized.wat +++ b/tests/compiler/unary.optimized.wat @@ -1,7 +1,7 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $unary/i (mut i32) (i32.const 0)) (global $unary/I (mut i64) (i64.const 0)) @@ -10,347 +10,231 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 0 ;) (; has Stack IR ;) (type $v) + (func $start (; 0 ;) (type $v) (local $0 i32) (local $1 i64) (local $2 f32) (local $3 f64) - (set_global $unary/i - (i32.add - (get_global $unary/i) - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.sub - (get_global $unary/i) - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.add - (get_global $unary/i) - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.sub - (get_global $unary/i) - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.const 1) - ) - (set_global $unary/i - (i32.const -1) - ) - (set_global $unary/i - (i32.const 0) - ) - (set_global $unary/i - (i32.const -2) - ) - (set_global $unary/i - (i32.sub - (i32.const 0) - (get_global $unary/i) - ) - ) - (set_global $unary/i - (i32.eqz - (get_global $unary/i) - ) - ) - (set_global $unary/i - (i32.xor - (get_global $unary/i) - (i32.const -1) - ) - ) - (set_global $unary/i - (i32.add - (get_global $unary/i) - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.sub - (get_global $unary/i) - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.add - (tee_local $0 - (get_global $unary/i) - ) - (i32.const 1) - ) - ) - (set_global $unary/i - (get_local $0) - ) - (set_global $unary/i - (i32.sub - (tee_local $0 - (get_global $unary/i) - ) - (i32.const 1) - ) - ) - (set_global $unary/i - (get_local $0) - ) - (set_global $unary/I - (i64.add - (get_global $unary/I) - (i64.const 1) - ) - ) - (set_global $unary/I - (i64.sub - (get_global $unary/I) - (i64.const 1) - ) - ) - (set_global $unary/I - (i64.add - (get_global $unary/I) - (i64.const 1) - ) - ) - (set_global $unary/I - (i64.sub - (get_global $unary/I) - (i64.const 1) - ) - ) - (set_global $unary/I - (i64.const 1) - ) - (set_global $unary/I - (i64.const -1) - ) - (set_global $unary/I - (i64.const 0) - ) - (set_global $unary/I - (i64.const -2) - ) - (set_global $unary/I - (i64.sub - (i64.const 0) - (get_global $unary/I) - ) - ) - (set_global $unary/I - (i64.extend_u/i32 - (i64.eqz - (get_global $unary/I) - ) - ) - ) - (set_global $unary/I - (i64.xor - (get_global $unary/I) - (i64.const -1) - ) - ) - (set_global $unary/I - (i64.add - (get_global $unary/I) - (i64.const 1) - ) - ) - (set_global $unary/I - (i64.sub - (get_global $unary/I) - (i64.const 1) - ) - ) - (set_global $unary/I - (i64.add - (tee_local $1 - (get_global $unary/I) - ) - (i64.const 1) - ) - ) - (set_global $unary/I - (get_local $1) - ) - (set_global $unary/I - (i64.sub - (tee_local $1 - (get_global $unary/I) - ) - (i64.const 1) - ) - ) - (set_global $unary/I - (get_local $1) - ) - (set_global $unary/f - (f32.add - (get_global $unary/f) - (f32.const 1) - ) - ) - (set_global $unary/f - (f32.sub - (get_global $unary/f) - (f32.const 1) - ) - ) - (set_global $unary/f - (f32.add - (get_global $unary/f) - (f32.const 1) - ) - ) - (set_global $unary/f - (f32.sub - (get_global $unary/f) - (f32.const 1) - ) - ) - (set_global $unary/f - (f32.const 1.25) - ) - (set_global $unary/f - (f32.const -1.25) - ) - (set_global $unary/i - (i32.const 0) - ) - (set_global $unary/f - (f32.neg - (get_global $unary/f) - ) - ) - (set_global $unary/i - (f32.eq - (get_global $unary/f) - (f32.const 0) - ) - ) - (set_global $unary/f - (f32.add - (get_global $unary/f) - (f32.const 1) - ) - ) - (set_global $unary/f - (f32.sub - (get_global $unary/f) - (f32.const 1) - ) - ) - (set_global $unary/f - (f32.add - (tee_local $2 - (get_global $unary/f) - ) - (f32.const 1) - ) - ) - (set_global $unary/f - (get_local $2) - ) - (set_global $unary/f - (f32.sub - (tee_local $2 - (get_global $unary/f) - ) - (f32.const 1) - ) - ) - (set_global $unary/f - (get_local $2) - ) - (set_global $unary/F - (f64.add - (get_global $unary/F) - (f64.const 1) - ) - ) - (set_global $unary/F - (f64.sub - (get_global $unary/F) - (f64.const 1) - ) - ) - (set_global $unary/F - (f64.add - (get_global $unary/F) - (f64.const 1) - ) - ) - (set_global $unary/F - (f64.sub - (get_global $unary/F) - (f64.const 1) - ) - ) - (set_global $unary/F - (f64.const 1.25) - ) - (set_global $unary/F - (f64.const -1.25) - ) - (set_global $unary/I - (i64.const 0) - ) - (set_global $unary/F - (f64.neg - (get_global $unary/F) - ) - ) - (set_global $unary/I - (i64.extend_u/i32 - (f64.eq - (get_global $unary/F) - (f64.const 0) - ) - ) - ) - (set_global $unary/F - (f64.add - (get_global $unary/F) - (f64.const 1) - ) - ) - (set_global $unary/F - (f64.sub - (get_global $unary/F) - (f64.const 1) - ) - ) - (set_global $unary/F - (f64.add - (tee_local $3 - (get_global $unary/F) - ) - (f64.const 1) - ) - ) - (set_global $unary/F - (get_local $3) - ) - (set_global $unary/F - (f64.sub - (tee_local $3 - (get_global $unary/F) - ) - (f64.const 1) - ) - ) - (set_global $unary/F - (get_local $3) - ) + get_global $unary/i + i32.const 1 + i32.add + set_global $unary/i + get_global $unary/i + i32.const 1 + i32.sub + set_global $unary/i + get_global $unary/i + i32.const 1 + i32.add + set_global $unary/i + get_global $unary/i + i32.const 1 + i32.sub + set_global $unary/i + i32.const 1 + set_global $unary/i + i32.const -1 + set_global $unary/i + i32.const 0 + set_global $unary/i + i32.const -2 + set_global $unary/i + i32.const 0 + get_global $unary/i + i32.sub + set_global $unary/i + get_global $unary/i + i32.eqz + set_global $unary/i + get_global $unary/i + i32.const -1 + i32.xor + set_global $unary/i + get_global $unary/i + i32.const 1 + i32.add + set_global $unary/i + get_global $unary/i + i32.const 1 + i32.sub + set_global $unary/i + get_global $unary/i + tee_local $0 + i32.const 1 + i32.add + set_global $unary/i + get_local $0 + set_global $unary/i + get_global $unary/i + tee_local $0 + i32.const 1 + i32.sub + set_global $unary/i + get_local $0 + set_global $unary/i + get_global $unary/I + i64.const 1 + i64.add + set_global $unary/I + get_global $unary/I + i64.const 1 + i64.sub + set_global $unary/I + get_global $unary/I + i64.const 1 + i64.add + set_global $unary/I + get_global $unary/I + i64.const 1 + i64.sub + set_global $unary/I + i64.const 1 + set_global $unary/I + i64.const -1 + set_global $unary/I + i64.const 0 + set_global $unary/I + i64.const -2 + set_global $unary/I + i64.const 0 + get_global $unary/I + i64.sub + set_global $unary/I + get_global $unary/I + i64.eqz + i64.extend_u/i32 + set_global $unary/I + get_global $unary/I + i64.const -1 + i64.xor + set_global $unary/I + get_global $unary/I + i64.const 1 + i64.add + set_global $unary/I + get_global $unary/I + i64.const 1 + i64.sub + set_global $unary/I + get_global $unary/I + tee_local $1 + i64.const 1 + i64.add + set_global $unary/I + get_local $1 + set_global $unary/I + get_global $unary/I + tee_local $1 + i64.const 1 + i64.sub + set_global $unary/I + get_local $1 + set_global $unary/I + get_global $unary/f + f32.const 1 + f32.add + set_global $unary/f + get_global $unary/f + f32.const 1 + f32.sub + set_global $unary/f + get_global $unary/f + f32.const 1 + f32.add + set_global $unary/f + get_global $unary/f + f32.const 1 + f32.sub + set_global $unary/f + f32.const 1.25 + set_global $unary/f + f32.const -1.25 + set_global $unary/f + i32.const 0 + set_global $unary/i + get_global $unary/f + f32.neg + set_global $unary/f + get_global $unary/f + f32.const 0 + f32.eq + set_global $unary/i + get_global $unary/f + f32.const 1 + f32.add + set_global $unary/f + get_global $unary/f + f32.const 1 + f32.sub + set_global $unary/f + get_global $unary/f + tee_local $2 + f32.const 1 + f32.add + set_global $unary/f + get_local $2 + set_global $unary/f + get_global $unary/f + tee_local $2 + f32.const 1 + f32.sub + set_global $unary/f + get_local $2 + set_global $unary/f + get_global $unary/F + f64.const 1 + f64.add + set_global $unary/F + get_global $unary/F + f64.const 1 + f64.sub + set_global $unary/F + get_global $unary/F + f64.const 1 + f64.add + set_global $unary/F + get_global $unary/F + f64.const 1 + f64.sub + set_global $unary/F + f64.const 1.25 + set_global $unary/F + f64.const -1.25 + set_global $unary/F + i64.const 0 + set_global $unary/I + get_global $unary/F + f64.neg + set_global $unary/F + get_global $unary/F + f64.const 0 + f64.eq + i64.extend_u/i32 + set_global $unary/I + get_global $unary/F + f64.const 1 + f64.add + set_global $unary/F + get_global $unary/F + f64.const 1 + f64.sub + set_global $unary/F + get_global $unary/F + tee_local $3 + f64.const 1 + f64.add + set_global $unary/F + get_local $3 + set_global $unary/F + get_global $unary/F + tee_local $3 + f64.const 1 + f64.sub + set_global $unary/F + get_local $3 + set_global $unary/F ) - (func $null (; 1 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 1 ;) (type $v) + nop ) ) diff --git a/tests/compiler/unary.untouched.wat b/tests/compiler/unary.untouched.wat index 583bd59f..00180507 100644 --- a/tests/compiler/unary.untouched.wat +++ b/tests/compiler/unary.untouched.wat @@ -1,7 +1,7 @@ (module (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $unary/i (mut i32) (i32.const 0)) (global $unary/I (mut i64) (i64.const 0)) @@ -16,525 +16,355 @@ (local $1 i64) (local $2 f32) (local $3 f64) - (drop - (i32.const 1) - ) - (drop - (i32.const -1) - ) - (drop - (i32.eqz - (i32.const 1) - ) - ) - (drop - (i32.xor - (i32.const 1) - (i32.const -1) - ) - ) - (drop - (f64.const 1.25) - ) - (drop - (f64.const -1.25) - ) - (drop - (f64.eq - (f64.const 1.25) - (f64.const 0) - ) - ) - (drop - (get_global $unary/i) - ) - (drop - (i32.sub - (i32.const 0) - (get_global $unary/i) - ) - ) - (drop - (i32.eqz - (get_global $unary/i) - ) - ) - (drop - (i32.xor - (get_global $unary/i) - (i32.const -1) - ) - ) - (set_global $unary/i - (i32.add - (get_global $unary/i) - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.sub - (get_global $unary/i) - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.add - (get_global $unary/i) - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.sub - (get_global $unary/i) - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.const 1) - ) - (set_global $unary/i - (i32.const -1) - ) - (set_global $unary/i - (i32.eqz - (i32.const 1) - ) - ) - (set_global $unary/i - (i32.xor - (i32.const 1) - (i32.const -1) - ) - ) - (set_global $unary/i - (get_global $unary/i) - ) - (set_global $unary/i - (i32.sub - (i32.const 0) - (get_global $unary/i) - ) - ) - (set_global $unary/i - (i32.eqz - (get_global $unary/i) - ) - ) - (set_global $unary/i - (i32.xor - (get_global $unary/i) - (i32.const -1) - ) - ) - (set_global $unary/i - (block (result i32) - (set_global $unary/i - (i32.add - (get_global $unary/i) - (i32.const 1) - ) - ) - (get_global $unary/i) - ) - ) - (set_global $unary/i - (block (result i32) - (set_global $unary/i - (i32.sub - (get_global $unary/i) - (i32.const 1) - ) - ) - (get_global $unary/i) - ) - ) - (set_global $unary/i - (block (result i32) - (set_global $unary/i - (i32.add - (tee_local $0 - (get_global $unary/i) - ) - (i32.const 1) - ) - ) - (get_local $0) - ) - ) - (set_global $unary/i - (block (result i32) - (set_global $unary/i - (i32.sub - (tee_local $0 - (get_global $unary/i) - ) - (i32.const 1) - ) - ) - (get_local $0) - ) - ) - (drop - (get_global $unary/I) - ) - (drop - (i64.sub - (i64.const 0) - (get_global $unary/I) - ) - ) - (drop - (i64.eqz - (get_global $unary/I) - ) - ) - (drop - (i64.xor - (get_global $unary/I) - (i64.const -1) - ) - ) - (set_global $unary/I - (i64.add - (get_global $unary/I) - (i64.const 1) - ) - ) - (set_global $unary/I - (i64.sub - (get_global $unary/I) - (i64.const 1) - ) - ) - (set_global $unary/I - (i64.add - (get_global $unary/I) - (i64.const 1) - ) - ) - (set_global $unary/I - (i64.sub - (get_global $unary/I) - (i64.const 1) - ) - ) - (set_global $unary/I - (i64.const 1) - ) - (set_global $unary/I - (i64.const -1) - ) - (set_global $unary/I - (i64.extend_u/i32 - (i64.eqz - (i64.const 1) - ) - ) - ) - (set_global $unary/I - (i64.xor - (i64.const 1) - (i64.const -1) - ) - ) - (set_global $unary/I - (get_global $unary/I) - ) - (set_global $unary/I - (i64.sub - (i64.const 0) - (get_global $unary/I) - ) - ) - (set_global $unary/I - (i64.extend_u/i32 - (i64.eqz - (get_global $unary/I) - ) - ) - ) - (set_global $unary/I - (i64.xor - (get_global $unary/I) - (i64.const -1) - ) - ) - (set_global $unary/I - (block (result i64) - (set_global $unary/I - (i64.add - (get_global $unary/I) - (i64.const 1) - ) - ) - (get_global $unary/I) - ) - ) - (set_global $unary/I - (block (result i64) - (set_global $unary/I - (i64.sub - (get_global $unary/I) - (i64.const 1) - ) - ) - (get_global $unary/I) - ) - ) - (set_global $unary/I - (block (result i64) - (set_global $unary/I - (i64.add - (tee_local $1 - (get_global $unary/I) - ) - (i64.const 1) - ) - ) - (get_local $1) - ) - ) - (set_global $unary/I - (block (result i64) - (set_global $unary/I - (i64.sub - (tee_local $1 - (get_global $unary/I) - ) - (i64.const 1) - ) - ) - (get_local $1) - ) - ) - (drop - (get_global $unary/f) - ) - (drop - (f32.neg - (get_global $unary/f) - ) - ) - (drop - (f32.eq - (get_global $unary/f) - (f32.const 0) - ) - ) - (set_global $unary/f - (f32.add - (get_global $unary/f) - (f32.const 1) - ) - ) - (set_global $unary/f - (f32.sub - (get_global $unary/f) - (f32.const 1) - ) - ) - (set_global $unary/f - (f32.add - (get_global $unary/f) - (f32.const 1) - ) - ) - (set_global $unary/f - (f32.sub - (get_global $unary/f) - (f32.const 1) - ) - ) - (set_global $unary/f - (f32.const 1.25) - ) - (set_global $unary/f - (f32.const -1.25) - ) - (set_global $unary/i - (f64.eq - (f64.const 1.25) - (f64.const 0) - ) - ) - (set_global $unary/f - (get_global $unary/f) - ) - (set_global $unary/f - (f32.neg - (get_global $unary/f) - ) - ) - (set_global $unary/i - (f32.eq - (get_global $unary/f) - (f32.const 0) - ) - ) - (set_global $unary/f - (block (result f32) - (set_global $unary/f - (f32.add - (get_global $unary/f) - (f32.const 1) - ) - ) - (get_global $unary/f) - ) - ) - (set_global $unary/f - (block (result f32) - (set_global $unary/f - (f32.sub - (get_global $unary/f) - (f32.const 1) - ) - ) - (get_global $unary/f) - ) - ) - (set_global $unary/f - (block (result f32) - (set_global $unary/f - (f32.add - (tee_local $2 - (get_global $unary/f) - ) - (f32.const 1) - ) - ) - (get_local $2) - ) - ) - (set_global $unary/f - (block (result f32) - (set_global $unary/f - (f32.sub - (tee_local $2 - (get_global $unary/f) - ) - (f32.const 1) - ) - ) - (get_local $2) - ) - ) - (drop - (get_global $unary/F) - ) - (drop - (f64.neg - (get_global $unary/F) - ) - ) - (drop - (f64.eq - (get_global $unary/F) - (f64.const 0) - ) - ) - (set_global $unary/F - (f64.add - (get_global $unary/F) - (f64.const 1) - ) - ) - (set_global $unary/F - (f64.sub - (get_global $unary/F) - (f64.const 1) - ) - ) - (set_global $unary/F - (f64.add - (get_global $unary/F) - (f64.const 1) - ) - ) - (set_global $unary/F - (f64.sub - (get_global $unary/F) - (f64.const 1) - ) - ) - (set_global $unary/F - (f64.const 1.25) - ) - (set_global $unary/F - (f64.const -1.25) - ) - (set_global $unary/I - (i64.extend_u/i32 - (f64.eq - (f64.const 1.25) - (f64.const 0) - ) - ) - ) - (set_global $unary/F - (get_global $unary/F) - ) - (set_global $unary/F - (f64.neg - (get_global $unary/F) - ) - ) - (set_global $unary/I - (i64.extend_u/i32 - (f64.eq - (get_global $unary/F) - (f64.const 0) - ) - ) - ) - (set_global $unary/F - (block (result f64) - (set_global $unary/F - (f64.add - (get_global $unary/F) - (f64.const 1) - ) - ) - (get_global $unary/F) - ) - ) - (set_global $unary/F - (block (result f64) - (set_global $unary/F - (f64.sub - (get_global $unary/F) - (f64.const 1) - ) - ) - (get_global $unary/F) - ) - ) - (set_global $unary/F - (block (result f64) - (set_global $unary/F - (f64.add - (tee_local $3 - (get_global $unary/F) - ) - (f64.const 1) - ) - ) - (get_local $3) - ) - ) - (set_global $unary/F - (block (result f64) - (set_global $unary/F - (f64.sub - (tee_local $3 - (get_global $unary/F) - ) - (f64.const 1) - ) - ) - (get_local $3) - ) - ) + i32.const 1 + drop + i32.const -1 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const -1 + i32.xor + drop + f64.const 1.25 + drop + f64.const -1.25 + drop + f64.const 1.25 + f64.const 0 + f64.eq + drop + get_global $unary/i + drop + i32.const 0 + get_global $unary/i + i32.sub + drop + get_global $unary/i + i32.eqz + drop + get_global $unary/i + i32.const -1 + i32.xor + drop + get_global $unary/i + i32.const 1 + i32.add + set_global $unary/i + get_global $unary/i + i32.const 1 + i32.sub + set_global $unary/i + get_global $unary/i + i32.const 1 + i32.add + set_global $unary/i + get_global $unary/i + i32.const 1 + i32.sub + set_global $unary/i + i32.const 1 + set_global $unary/i + i32.const -1 + set_global $unary/i + i32.const 1 + i32.eqz + set_global $unary/i + i32.const 1 + i32.const -1 + i32.xor + set_global $unary/i + get_global $unary/i + set_global $unary/i + i32.const 0 + get_global $unary/i + i32.sub + set_global $unary/i + get_global $unary/i + i32.eqz + set_global $unary/i + get_global $unary/i + i32.const -1 + i32.xor + set_global $unary/i + block (result i32) + get_global $unary/i + i32.const 1 + i32.add + set_global $unary/i + get_global $unary/i + end + set_global $unary/i + block (result i32) + get_global $unary/i + i32.const 1 + i32.sub + set_global $unary/i + get_global $unary/i + end + set_global $unary/i + block (result i32) + get_global $unary/i + tee_local $0 + i32.const 1 + i32.add + set_global $unary/i + get_local $0 + end + set_global $unary/i + block (result i32) + get_global $unary/i + tee_local $0 + i32.const 1 + i32.sub + set_global $unary/i + get_local $0 + end + set_global $unary/i + get_global $unary/I + drop + i64.const 0 + get_global $unary/I + i64.sub + drop + get_global $unary/I + i64.eqz + drop + get_global $unary/I + i64.const -1 + i64.xor + drop + get_global $unary/I + i64.const 1 + i64.add + set_global $unary/I + get_global $unary/I + i64.const 1 + i64.sub + set_global $unary/I + get_global $unary/I + i64.const 1 + i64.add + set_global $unary/I + get_global $unary/I + i64.const 1 + i64.sub + set_global $unary/I + i64.const 1 + set_global $unary/I + i64.const -1 + set_global $unary/I + i64.const 1 + i64.eqz + i64.extend_u/i32 + set_global $unary/I + i64.const 1 + i64.const -1 + i64.xor + set_global $unary/I + get_global $unary/I + set_global $unary/I + i64.const 0 + get_global $unary/I + i64.sub + set_global $unary/I + get_global $unary/I + i64.eqz + i64.extend_u/i32 + set_global $unary/I + get_global $unary/I + i64.const -1 + i64.xor + set_global $unary/I + block (result i64) + get_global $unary/I + i64.const 1 + i64.add + set_global $unary/I + get_global $unary/I + end + set_global $unary/I + block (result i64) + get_global $unary/I + i64.const 1 + i64.sub + set_global $unary/I + get_global $unary/I + end + set_global $unary/I + block (result i64) + get_global $unary/I + tee_local $1 + i64.const 1 + i64.add + set_global $unary/I + get_local $1 + end + set_global $unary/I + block (result i64) + get_global $unary/I + tee_local $1 + i64.const 1 + i64.sub + set_global $unary/I + get_local $1 + end + set_global $unary/I + get_global $unary/f + drop + get_global $unary/f + f32.neg + drop + get_global $unary/f + f32.const 0 + f32.eq + drop + get_global $unary/f + f32.const 1 + f32.add + set_global $unary/f + get_global $unary/f + f32.const 1 + f32.sub + set_global $unary/f + get_global $unary/f + f32.const 1 + f32.add + set_global $unary/f + get_global $unary/f + f32.const 1 + f32.sub + set_global $unary/f + f32.const 1.25 + set_global $unary/f + f32.const -1.25 + set_global $unary/f + f64.const 1.25 + f64.const 0 + f64.eq + set_global $unary/i + get_global $unary/f + set_global $unary/f + get_global $unary/f + f32.neg + set_global $unary/f + get_global $unary/f + f32.const 0 + f32.eq + set_global $unary/i + block (result f32) + get_global $unary/f + f32.const 1 + f32.add + set_global $unary/f + get_global $unary/f + end + set_global $unary/f + block (result f32) + get_global $unary/f + f32.const 1 + f32.sub + set_global $unary/f + get_global $unary/f + end + set_global $unary/f + block (result f32) + get_global $unary/f + tee_local $2 + f32.const 1 + f32.add + set_global $unary/f + get_local $2 + end + set_global $unary/f + block (result f32) + get_global $unary/f + tee_local $2 + f32.const 1 + f32.sub + set_global $unary/f + get_local $2 + end + set_global $unary/f + get_global $unary/F + drop + get_global $unary/F + f64.neg + drop + get_global $unary/F + f64.const 0 + f64.eq + drop + get_global $unary/F + f64.const 1 + f64.add + set_global $unary/F + get_global $unary/F + f64.const 1 + f64.sub + set_global $unary/F + get_global $unary/F + f64.const 1 + f64.add + set_global $unary/F + get_global $unary/F + f64.const 1 + f64.sub + set_global $unary/F + f64.const 1.25 + set_global $unary/F + f64.const -1.25 + set_global $unary/F + f64.const 1.25 + f64.const 0 + f64.eq + i64.extend_u/i32 + set_global $unary/I + get_global $unary/F + set_global $unary/F + get_global $unary/F + f64.neg + set_global $unary/F + get_global $unary/F + f64.const 0 + f64.eq + i64.extend_u/i32 + set_global $unary/I + block (result f64) + get_global $unary/F + f64.const 1 + f64.add + set_global $unary/F + get_global $unary/F + end + set_global $unary/F + block (result f64) + get_global $unary/F + f64.const 1 + f64.sub + set_global $unary/F + get_global $unary/F + end + set_global $unary/F + block (result f64) + get_global $unary/F + tee_local $3 + f64.const 1 + f64.add + set_global $unary/F + get_local $3 + end + set_global $unary/F + block (result f64) + get_global $unary/F + tee_local $3 + f64.const 1 + f64.sub + set_global $unary/F + get_local $3 + end + set_global $unary/F ) (func $null (; 1 ;) (type $v) ) diff --git a/tests/compiler/void.optimized.wat b/tests/compiler/void.optimized.wat index c0c3d854..4c376c51 100644 --- a/tests/compiler/void.optimized.wat +++ b/tests/compiler/void.optimized.wat @@ -2,20 +2,19 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $void/anInt (; 0 ;) (; has Stack IR ;) (type $i) (result i32) - (i32.const 2) + (func $void/anInt (; 0 ;) (type $i) (result i32) + i32.const 2 ) - (func $start (; 1 ;) (; has Stack IR ;) (type $v) - (drop - (call $void/anInt) - ) + (func $start (; 1 ;) (type $v) + call $void/anInt + drop ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/void.untouched.wat b/tests/compiler/void.untouched.wat index 424a287c..72d1ef66 100644 --- a/tests/compiler/void.untouched.wat +++ b/tests/compiler/void.untouched.wat @@ -2,7 +2,7 @@ (type $i (func (result i32))) (type $v (func)) (memory $0 0) - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $void/u8Val1 (mut i32) (i32.const 1)) (global $void/u8Val2 (mut i32) (i32.const 255)) @@ -11,21 +11,17 @@ (export "table" (table $0)) (start $start) (func $void/anInt (; 0 ;) (type $i) (result i32) - (i32.const 2) + i32.const 2 ) (func $start (; 1 ;) (type $v) - (drop - (i32.const 1) - ) - (drop - (call $void/anInt) - ) - (drop - (i32.add - (get_global $void/u8Val1) - (get_global $void/u8Val2) - ) - ) + i32.const 1 + drop + call $void/anInt + drop + get_global $void/u8Val1 + get_global $void/u8Val2 + i32.add + drop ) (func $null (; 2 ;) (type $v) ) diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index bef82890..1784151f 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -1,246 +1,182 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\08\00\00\00w\00h\00i\00l\00e\00.\00t\00s") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $while/n (mut i32) (i32.const 10)) (global $while/m (mut i32) (i32.const 0)) (global $while/o (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 1 ;) (; has Stack IR ;) (type $v) + (func $start (; 1 ;) (type $v) (local $0 i32) - (loop $continue|0 - (if - (get_global $while/n) - (block - (set_global $while/n - (i32.sub - (get_global $while/n) - (i32.const 1) - ) - ) - (set_global $while/m - (i32.add - (get_global $while/m) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (if - (get_global $while/n) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $while/m) - (i32.const 10) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $while/n - (i32.const 10) - ) - (set_global $while/m - (i32.const 0) - ) - (loop $continue|1 - (if - (get_global $while/n) - (block - (set_global $while/n - (i32.sub - (get_global $while/n) - (i32.const 1) - ) - ) - (set_global $while/m - (i32.add - (get_global $while/m) - (i32.const 1) - ) - ) - (loop $continue|2 - (if - (get_global $while/n) - (block - (set_global $while/n - (i32.sub - (get_global $while/n) - (i32.const 1) - ) - ) - (set_global $while/o - (i32.add - (get_global $while/o) - (i32.const 1) - ) - ) - (br $continue|2) - ) - ) - ) - (if - (get_global $while/n) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 21) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $while/o) - (i32.const 9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 22) - (i32.const 2) - ) - (unreachable) - ) - ) - (br $continue|1) - ) - ) - ) - (if - (get_global $while/n) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $while/m) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $while/o) - (i32.const 9) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $while/n - (i32.const 1) - ) - (set_global $while/m - (i32.const 0) - ) - (loop $continue|3 - (set_global $while/n - (i32.sub - (tee_local $0 - (get_global $while/n) - ) - (i32.const 1) - ) - ) - (if - (get_local $0) - (block - (set_global $while/m - (i32.add - (get_global $while/m) - (i32.const 1) - ) - ) - (set_local $0 - (get_global $while/m) - ) - ) - ) - (br_if $continue|3 - (get_local $0) - ) - ) - (if - (i32.ne - (get_global $while/n) - (i32.const -1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.ne - (get_global $while/m) - (i32.const 1) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 32) - (i32.const 0) - ) - (unreachable) - ) - ) + loop $continue|0 + get_global $while/n + if + get_global $while/n + i32.const 1 + i32.sub + set_global $while/n + get_global $while/m + i32.const 1 + i32.add + set_global $while/m + br $continue|0 + end + end + get_global $while/n + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $while/m + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 10 + set_global $while/n + i32.const 0 + set_global $while/m + loop $continue|1 + get_global $while/n + if + get_global $while/n + i32.const 1 + i32.sub + set_global $while/n + get_global $while/m + i32.const 1 + i32.add + set_global $while/m + loop $continue|2 + get_global $while/n + if + get_global $while/n + i32.const 1 + i32.sub + set_global $while/n + get_global $while/o + i32.const 1 + i32.add + set_global $while/o + br $continue|2 + end + end + get_global $while/n + if + i32.const 0 + i32.const 8 + i32.const 21 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_global $while/o + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 22 + i32.const 2 + call $~lib/env/abort + unreachable + end + br $continue|1 + end + end + get_global $while/n + if + i32.const 0 + i32.const 8 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $while/m + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $while/o + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $while/n + i32.const 0 + set_global $while/m + loop $continue|3 + get_global $while/n + tee_local $0 + i32.const 1 + i32.sub + set_global $while/n + get_local $0 + if + get_global $while/m + i32.const 1 + i32.add + set_global $while/m + get_global $while/m + set_local $0 + end + get_local $0 + br_if $continue|3 + end + get_global $while/n + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $while/m + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 8 + i32.const 32 + i32.const 0 + call $~lib/env/abort + unreachable + end ) - (func $null (; 2 ;) (; has Stack IR ;) (type $v) - (nop) + (func $null (; 2 ;) (type $v) + nop ) ) diff --git a/tests/compiler/while.untouched.wat b/tests/compiler/while.untouched.wat index d49ffe93..ca31b082 100644 --- a/tests/compiler/while.untouched.wat +++ b/tests/compiler/while.untouched.wat @@ -1,11 +1,11 @@ (module (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\08\00\00\00w\00h\00i\00l\00e\00.\00t\00s\00") - (table 1 anyfunc) + (table $0 1 anyfunc) (elem (i32.const 0) $null) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $while/n (mut i32) (i32.const 10)) (global $while/m (mut i32) (i32.const 0)) (global $while/o (mut i32) (i32.const 0)) @@ -15,278 +15,202 @@ (start $start) (func $start (; 1 ;) (type $v) (local $0 i32) - (block $break|0 - (loop $continue|0 - (if - (get_global $while/n) - (block - (block - (set_global $while/n - (i32.sub - (get_global $while/n) - (i32.const 1) - ) - ) - (set_global $while/m - (i32.add - (get_global $while/m) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $while/n) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 8) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $while/m) - (i32.const 10) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 9) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $while/n - (i32.const 10) - ) - (set_global $while/m - (i32.const 0) - ) - (block $break|1 - (loop $continue|1 - (if - (get_global $while/n) - (block - (block - (set_global $while/n - (i32.sub - (get_global $while/n) - (i32.const 1) - ) - ) - (set_global $while/m - (i32.add - (get_global $while/m) - (i32.const 1) - ) - ) - (block $break|2 - (loop $continue|2 - (if - (get_global $while/n) - (block - (block - (set_global $while/n - (i32.sub - (get_global $while/n) - (i32.const 1) - ) - ) - (set_global $while/o - (i32.add - (get_global $while/o) - (i32.const 1) - ) - ) - ) - (br $continue|2) - ) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $while/n) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 21) - (i32.const 2) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $while/o) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 22) - (i32.const 2) - ) - (unreachable) - ) - ) - ) - (br $continue|1) - ) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $while/n) - (i32.const 0) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 24) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $while/m) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 25) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $while/o) - (i32.const 9) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 26) - (i32.const 0) - ) - (unreachable) - ) - ) - (set_global $while/n - (i32.const 1) - ) - (set_global $while/m - (i32.const 0) - ) - (block $break|3 - (loop $continue|3 - (if - (if (result i32) - (tee_local $0 - (block (result i32) - (set_global $while/n - (i32.sub - (tee_local $0 - (get_global $while/n) - ) - (i32.const 1) - ) - ) - (get_local $0) - ) - ) - (block (result i32) - (set_global $while/m - (i32.add - (get_global $while/m) - (i32.const 1) - ) - ) - (get_global $while/m) - ) - (get_local $0) - ) - (block - (nop) - (br $continue|3) - ) - ) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $while/n) - (i32.const -1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 31) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eq - (get_global $while/m) - (i32.const 1) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 8) - (i32.const 32) - (i32.const 0) - ) - (unreachable) - ) - ) + block $break|0 + loop $continue|0 + get_global $while/n + if + block + get_global $while/n + i32.const 1 + i32.sub + set_global $while/n + get_global $while/m + i32.const 1 + i32.add + set_global $while/m + end + br $continue|0 + end + end + end + get_global $while/n + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 8 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $while/m + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 9 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 10 + set_global $while/n + i32.const 0 + set_global $while/m + block $break|1 + loop $continue|1 + get_global $while/n + if + block + get_global $while/n + i32.const 1 + i32.sub + set_global $while/n + get_global $while/m + i32.const 1 + i32.add + set_global $while/m + block $break|2 + loop $continue|2 + get_global $while/n + if + block + get_global $while/n + i32.const 1 + i32.sub + set_global $while/n + get_global $while/o + i32.const 1 + i32.add + set_global $while/o + end + br $continue|2 + end + end + end + get_global $while/n + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 21 + i32.const 2 + call $~lib/env/abort + unreachable + end + get_global $while/o + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 22 + i32.const 2 + call $~lib/env/abort + unreachable + end + end + br $continue|1 + end + end + end + get_global $while/n + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 24 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $while/m + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 25 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $while/o + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 26 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $while/n + i32.const 0 + set_global $while/m + block $break|3 + loop $continue|3 + block (result i32) + get_global $while/n + tee_local $0 + i32.const 1 + i32.sub + set_global $while/n + get_local $0 + end + tee_local $0 + if (result i32) + get_global $while/m + i32.const 1 + i32.add + set_global $while/m + get_global $while/m + else + get_local $0 + end + if + nop + br $continue|3 + end + end + end + get_global $while/n + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 31 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $while/m + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 32 + i32.const 0 + call $~lib/env/abort + unreachable + end ) (func $null (; 2 ;) (type $v) )